initial commit

This commit is contained in:
2026-04-04 22:03:11 +01:00
commit f3b3cfd8f2
10 changed files with 1155 additions and 0 deletions

0
src/vmr_http/__init__.py Normal file
View File

19
src/vmr_http/app.py Normal file
View File

@@ -0,0 +1,19 @@
from contextlib import asynccontextmanager
import voicemeeterlib
from fastapi import FastAPI
from .web import bus, strip
@asynccontextmanager
async def lifespan(app):
app.state.voicemeeter = voicemeeterlib.connect("potato", sync=True)
app.state.voicemeeter.login()
yield
app.state.voicemeeter.logout()
app = FastAPI(lifespan=lifespan)
app.include_router(strip.router, prefix="/strip")
app.include_router(bus.router, prefix="/bus")

View File

@@ -0,0 +1,5 @@
from fastapi import Request
def get_voicemeeter_client(request: Request):
return request.app.state.voicemeeter

3
src/vmr_http/web/bus.py Normal file
View File

@@ -0,0 +1,3 @@
from fastapi import APIRouter
router = APIRouter()

10
src/vmr_http/web/strip.py Normal file
View File

@@ -0,0 +1,10 @@
from fastapi import APIRouter, Depends
from vmr_http.dependencies import get_voicemeeter_client
router = APIRouter()
@router.get("/{index}/gain")
async def get_gain(index: int, voicemeeter=Depends(get_voicemeeter_client)):
return {"gain": voicemeeter.strip[index].gain}