vmr-http/src/vmr_http/web/strip/denoiser.py

31 lines
1002 B
Python

"""module for strip denoiser related endpoints."""
from fastapi import APIRouter, Depends
from vmr_http.dependencies import get_voicemeeter_client
from vmr_http.models.strip import StripDenoiserParams
router = APIRouter()
@router.patch('')
@router.put('')
def update_strip_denoiser_params(index: int, params: StripDenoiserParams, voicemeeter=Depends(get_voicemeeter_client)):
"""Update one or more denoiser parameters for the specified strip index."""
strip_denoiser = voicemeeter.strip[index].denoiser
updated = {}
for key, value in params.model_dump(exclude_unset=True).items():
setattr(strip_denoiser, key, value)
updated[key] = getattr(strip_denoiser, key)
return updated
@router.get('/knob')
def get_strip_denoiser_knob(
index: int,
voicemeeter=Depends(get_voicemeeter_client),
):
"""Get the denoiser knob value for the specified strip index."""
strip_denoiser = voicemeeter.strip[index].denoiser
return {'knob': strip_denoiser.knob}