Implémentation du sleep timer

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.
This commit is contained in:
2026-01-10 18:14:46 +01:00
parent 220eeb1244
commit 7f10f55086
12 changed files with 1365 additions and 1 deletions

View File

@@ -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() {
</div>
</div>
<!-- Sleep Timer (si un renderer est actif) -->
<div v-if="activeRenderer" class="timer-section">
<TimerControl :renderer-id="activeRenderer.id" />
</div>
<!-- Bouton pour ouvrir le drawer des renderers (droite) -->
<button
class="drawer-button renderer-drawer-button"