mirror of
https://github.com/onyx-and-iris/vban-cli.git
synced 2026-04-16 02:23:30 +00:00
add gainlayer command group
add GainlayerHelpFormatter
This commit is contained in:
51
src/vban_cli/gainlayer.py
Normal file
51
src/vban_cli/gainlayer.py
Normal file
@@ -0,0 +1,51 @@
|
||||
from typing import Annotated
|
||||
|
||||
from cyclopts import App, Argument, Parameter
|
||||
|
||||
from . import console
|
||||
from .context import Context
|
||||
from .help import GainlayerHelpFormatter
|
||||
|
||||
app = App(name='gainlayer', help_formatter=GainlayerHelpFormatter())
|
||||
|
||||
|
||||
@app.meta.default
|
||||
def launcher(
|
||||
gainlayer_index: Annotated[int, Argument()] = None,
|
||||
*tokens: Annotated[str, Parameter(show=False, allow_leading_hyphen=True)],
|
||||
index: Annotated[int, Argument()] = None,
|
||||
ctx: Annotated[Context, Parameter(show=False)] = None,
|
||||
):
|
||||
"""Control the gainlayers."""
|
||||
additional_kwargs = {}
|
||||
command, bound, _ = app.parse_args(tokens)
|
||||
if index is not None and gainlayer_index is not None:
|
||||
additional_kwargs['strip_index'] = index
|
||||
additional_kwargs['gainlayer_index'] = gainlayer_index
|
||||
else:
|
||||
raise ValueError('Both gainlayer_index and index must be provided.')
|
||||
if ctx is not None:
|
||||
additional_kwargs['ctx'] = ctx
|
||||
|
||||
return command(*bound.args, **bound.kwargs, **additional_kwargs)
|
||||
|
||||
|
||||
@app.command(name='level')
|
||||
def level(
|
||||
new_level: Annotated[float, Argument()] = None,
|
||||
*,
|
||||
strip_index: Annotated[int, Parameter(show=False)] = None,
|
||||
gainlayer_index: Annotated[int, Parameter(show=False)] = None,
|
||||
ctx: Annotated[Context, Parameter(show=False)] = None,
|
||||
):
|
||||
"""Get or set the level of the specified gainlayer.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
new_level : float
|
||||
If provided, sets the level to this value. If not provided, the current level is printed.
|
||||
"""
|
||||
if new_level is None:
|
||||
console.out.print(ctx.client.strip[strip_index].gainlayer[gainlayer_index].gain)
|
||||
return
|
||||
ctx.client.strip[strip_index].gainlayer[gainlayer_index].gain = new_level
|
||||
Reference in New Issue
Block a user