Control play/pause and next/prev track with buttons on media screens

This commit is contained in:
2024-05-16 16:16:22 +01:00
parent c7b0b99a25
commit d148cc0b02
2 changed files with 25 additions and 3 deletions

11
api.py
View File

@@ -70,6 +70,15 @@ class Api:
else: dir = "down"
self.__post(f"/api/services/media_player/volume_{dir}", {"entity_id": entity_id})
self.__post(f"/api/services/media_player/volume_{dir}", {"entity_id": entity_id})
def nextTrack(self, entity_id: str) -> None:
self.__post("/api/services/media_player/media_next_track", {"entity_id": entity_id})
def prevTrack(self, entity_id: str) -> None:
self.__post("/api/services/media_player/media_previous_track", {"entity_id": entity_id})
def playPause(self, entity_id: str) -> None:
self.__post("/api/services/media_player/media_play_pause", {"entity_id": entity_id})
def toggleLight(self, entity_id: str) -> None:
self.__post(f"/api/services/light/toggle", {"entity_id": entity_id})
self.__post("/api/services/light/toggle", {"entity_id": entity_id})

17
app.py
View File

@@ -212,15 +212,28 @@ class App:
def __handleMediaScreenButtons(self) -> bool:
up = self.lcd.up["v"]
down = self.lcd.down["v"]
keyA = self.lcd.keyA["v"]
keyX = self.lcd.keyX["v"]
keyY = self.lcd.keyY["v"]
self.lcd.up["v"] = False
self.lcd.down["v"] = False
self.lcd.keyA["v"] = False
self.lcd.keyX["v"] = False
self.lcd.keyY["v"] = False
a = False
e = SCREENS[self.screen]["entity"]
if (up):
self.api.changeVolume(SCREENS[self.screen]["entity"])
self.api.changeVolume(e)
a = True
elif (down):
self.api.changeVolume(SCREENS[self.screen]["entity"], False)
self.api.changeVolume(e, False)
a = True
if (keyX):
self.api.nextTrack(e)
elif (keyY):
self.api.prevTrack(e)
if (keyA):
self.api.playPause(e)
return a
# if (a): self.__handleMediaScreenButtons()