mirror of
https://github.com/onyx-and-iris/vmr-http.git
synced 2026-04-06 18:09:11 +00:00
gainlayer router implemented
reorganise package structure and update imports. patch bump
This commit is contained in:
44
src/vmr_http/web/bus/bus.py
Normal file
44
src/vmr_http/web/bus/bus.py
Normal file
@@ -0,0 +1,44 @@
|
||||
"""module for bus-related endpoints."""
|
||||
|
||||
from fastapi import APIRouter, Depends
|
||||
|
||||
from vmr_http.dependencies import get_voicemeeter_client
|
||||
from vmr_http.models.bus import BusParams
|
||||
from vmr_http.web import eq
|
||||
|
||||
from . import mode
|
||||
|
||||
router = APIRouter()
|
||||
router.include_router(mode.router, prefix='/mode', tags=['bus mode'])
|
||||
router.include_router(eq.create_router(eq_kind='bus'), prefix='/eq', tags=['bus eq'])
|
||||
|
||||
|
||||
@router.patch('', tags=['bus'])
|
||||
@router.put('', tags=['bus'])
|
||||
async def update_bus_params(index: int, params: BusParams, voicemeeter=Depends(get_voicemeeter_client)):
|
||||
"""Update one or more parameters for the specified bus index."""
|
||||
bus = voicemeeter.bus[index]
|
||||
updated = {}
|
||||
for key, value in params.model_dump(exclude_unset=True).items():
|
||||
setattr(bus, key, value)
|
||||
updated[key] = getattr(bus, key)
|
||||
return updated
|
||||
|
||||
|
||||
@router.get('/gain', tags=['bus'])
|
||||
async def get_gain(index: int, voicemeeter=Depends(get_voicemeeter_client)):
|
||||
"""Get the current gain value for the specified bus index."""
|
||||
return {'gain': voicemeeter.bus[index].gain}
|
||||
|
||||
|
||||
@router.get('/mute', tags=['bus'])
|
||||
async def get_mute(index: int, voicemeeter=Depends(get_voicemeeter_client)):
|
||||
"""Get the current mute status for the specified bus index."""
|
||||
return {'mute': voicemeeter.bus[index].mute}
|
||||
|
||||
|
||||
@router.get('/mono', tags=['bus'])
|
||||
async def get_mono(index: int, voicemeeter=Depends(get_voicemeeter_client)):
|
||||
"""Get the current mono status for the specified bus index."""
|
||||
opts = ['Off', 'On', 'Stereo Reverse']
|
||||
return {'mono': opts[voicemeeter.bus[index].mono]}
|
||||
Reference in New Issue
Block a user