From 7f10f55086430de353e4e572a5c6949f1795e41a Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Sat, 10 Jan 2026 18:14:46 +0100 Subject: [PATCH] =?UTF-8?q?Impl=C3=A9mentation=20du=20sleep=20timer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajout de la fonctionnalité de sleep timer pour les renderers audio. - Création du composant TimerControl.vue avec interface utilisateur interactive - Implémentation des API endpoints pour gérer le sleep timer (start, update, cancel, get) - Intégration du système de timer dans le control point avec surveillance par thread dédié - Ajout de la logique de timer dans les renderers (sleep_timer.rs) - Mise à jour des types et événements SSE pour le sleep timer - Intégration du timer dans la barre de bas de l'application Cette fonctionnalité permet aux utilisateurs de configurer un timer qui arrêtera automatiquement la lecture après une durée définie, avec une interface intuitive et des notifications en temps réel. --- .../components/pmocontrol/TimerControl.vue | 527 ++++++++++++++++++ .../src/components/unified/BottomTabBar.vue | 6 + pmoapp/webapp/src/services/pmocontrol/api.ts | 62 +++ .../webapp/src/services/pmocontrol/types.ts | 44 ++ pmocontrol/src/control_point.rs | 86 +++ pmocontrol/src/model.rs | 20 + pmocontrol/src/music_renderer/mod.rs | 2 + .../src/music_renderer/musicrenderer.rs | 73 +++ pmocontrol/src/music_renderer/sleep_timer.rs | 199 +++++++ pmocontrol/src/openapi.rs | 26 + pmocontrol/src/pmoserver_ext.rs | 226 +++++++- pmocontrol/src/sse.rs | 95 ++++ 12 files changed, 1365 insertions(+), 1 deletion(-) create mode 100644 pmoapp/webapp/src/components/pmocontrol/TimerControl.vue create mode 100644 pmocontrol/src/music_renderer/sleep_timer.rs diff --git a/pmoapp/webapp/src/components/pmocontrol/TimerControl.vue b/pmoapp/webapp/src/components/pmocontrol/TimerControl.vue new file mode 100644 index 00000000..5c0e0a92 --- /dev/null +++ b/pmoapp/webapp/src/components/pmocontrol/TimerControl.vue @@ -0,0 +1,527 @@ + + + + + diff --git a/pmoapp/webapp/src/components/unified/BottomTabBar.vue b/pmoapp/webapp/src/components/unified/BottomTabBar.vue index 4d617c0f..19c648fd 100644 --- a/pmoapp/webapp/src/components/unified/BottomTabBar.vue +++ b/pmoapp/webapp/src/components/unified/BottomTabBar.vue @@ -2,6 +2,7 @@ import { computed } from "vue"; import { Server, Music2 } from "lucide-vue-next"; import StatusBadge from "@/components/pmocontrol/StatusBadge.vue"; +import TimerControl from "@/components/pmocontrol/TimerControl.vue"; import type { RendererSummary, RendererState, @@ -112,6 +113,11 @@ function handleRendererDrawerClick() { + +
+ +
+