add button mapings

This commit is contained in:
marios8543 2025-05-09 20:08:36 +03:00
parent cafd5064dc
commit 66cd01b4a6

View File

@ -5,8 +5,16 @@
# ANDROID AUTO: Play, Pause, Toggle play, Next track, Previous track, Home, Phone, Call end,
# Voice command, Left, Right, Up, Down, Scroll wheel, Back, Enter
BUTTON_MAPPINGS = {
def send_to_radio(btn):
tunerlist.send_button(btn)
def send_to_aa(btn):
queue.put_nowait(dumps({"button": btn}))
BUTTON_MAPPINGS = {
"VOL_UP": (send_to_radio, "VOL_UP"),
"VOL_DOWN": (send_to_radio, "VOL_DOWN"),
"PAUSE": (send_to_radio, "PAUSE")
}
# -----------------------------------------------------------------------------------------
@ -21,12 +29,6 @@ from fastapi.responses import PlainTextResponse, JSONResponse
from asyncio import create_task, CancelledError, Queue
from uvicorn import run
def send_to_radio(btn):
tunerlist.send_button(btn)
def send_to_aa(btn):
queue.put_nowait(dumps({"button": btn}))
app = FastAPI()
background_tasks = []
@ -75,10 +77,9 @@ async def button_listener():
try:
while True:
button = await buttons.queue.get()
if button in ("VOL_UP", "VOL_DOWN", "PAUSE"):
create_task(tunerlist.send_button(button))
else:
pass
if button in BUTTON_MAPPINGS:
func, arg = BUTTON_MAPPINGS[button]
func(arg)
except CancelledError:
pass
@ -113,18 +114,11 @@ async def websocket_endpoint(websocket: WebSocket):
async def state_endpoint():
return dumps(state_to_send)
@app.get("/button", response_class=PlainTextResponse)
async def button_endpoint(request: Request):
btn = request.query_params.get("btn")
if btn is None:
return "No button specified"
await tunerlist.send_button(btn)
return btn
@app.get("/btn", response_class=PlainTextResponse)
async def emulated_button(request: Request):
btn = request.query_params.get("btn")
print("CD Changer button: ", btn)
buttons.queue.put_nowait(btn)
if __name__ == "__main__":
run(app=app, host="0.0.0.0", port=5959, log_level="info")