2 Commits

Author SHA1 Message Date
a82cbd2bc6 update bus mode PATCH endpoint
accepting {mode: value} is a little redundant but I prefer it to modifying the bus endpoint.

added bus mode PATCH example to README

patch bump
2026-04-05 02:26:26 +01:00
6d01b8d2d3 add bus mono route
patch bump
2026-04-05 02:13:45 +01:00
5 changed files with 23 additions and 4 deletions

View File

@@ -66,6 +66,18 @@ curl -X 'GET' \
-H 'accept: application/json'
```
*Set Bus 2 Mode*
```console
curl -X 'PATCH' \
'http://127.0.0.1:8000/bus/2/mode' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"mode": "Composite"
}'
```
*Healthcheck*
```console

View File

@@ -1,6 +1,6 @@
[project]
name = "vmr-http"
version = "0.3.1"
version = "0.3.3"
description = "HTTP API for controlling Voicemeeter"
readme = "README.md"
authors = [{ name = "onyx-and-iris", email = "code@onyxandiris.online" }]

View File

@@ -33,3 +33,10 @@ async def get_gain(index: int, voicemeeter=Depends(get_voicemeeter_client)):
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('/{index}/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]}

View File

@@ -1,6 +1,6 @@
"""module for bus mode related endpoints."""
from fastapi import APIRouter, Depends, HTTPException
from fastapi import APIRouter, Body, Depends, HTTPException
from vmr_http.dependencies import get_voicemeeter_client
@@ -25,7 +25,7 @@ _reversed_busmodes = {v: k for k, v in _readable_busmodes.items()}
@router.patch('/{index}/mode')
@router.put('/{index}/mode')
async def update_bus_mode(index: int, mode: str, voicemeeter=Depends(get_voicemeeter_client)):
async def update_bus_mode(index: int, mode: str = Body(..., embed=True), voicemeeter=Depends(get_voicemeeter_client)):
"""Update the bus mode for the specified bus index."""
if mode not in _reversed_busmodes:
raise HTTPException(

2
uv.lock generated
View File

@@ -1151,7 +1151,7 @@ wheels = [
[[package]]
name = "vmr-http"
version = "0.3.1"
version = "0.3.3"
source = { editable = "." }
dependencies = [
{ name = "fastapi" },