Commit Graph

42 Commits

Author SHA1 Message Date
c3a9e3ea7b Refactor queue management and transport control across all renderer backends
This commit refactors queue management and transport control to use a unified approach across all renderer backends (UPnP, OpenHome, Arylic TCP, Chromecast, LinkPlay). Key changes include:

1. Introduces `RendererBackend` and `QueueTransportControl` traits to provide consistent queue access and transport control operations
2. Moves queue management from the `MusicRenderer` struct to individual backend implementations
3. Implements `play_from_queue`, `play_next`, `play_previous`, and `play_from_index` methods in all backends
4. Simplifies `MusicRenderer` methods to delegate to backend-specific implementations
5. Removes direct queue access methods from `MusicRenderer` and centralizes queue operations in backend traits
6. Updates all backend implementations (UPnP, OpenHome, Arylic TCP, Chromecast, LinkPlay) to implement the new queue transport control traits

This change provides a more consistent and maintainable way to handle queue operations across different renderer types, ensuring that queue management and playback navigation work uniformly regardless of the underlying backend.
2026-01-11 00:07:02 +01:00
7f10f55086 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.
2026-01-10 20:45:51 +01:00
56e1f4c0fb Unified playback behavior and playlist binding detachment
This commit ensures unified playback behavior across all backends by automatically playing the current track from the queue when available. It also detaches playlist bindings from source renderers during control point operations, improving consistency and reliability of music playback transitions.
2026-01-10 14:58:53 +01:00
bd8f87fbe4 Ajout de la fonctionnalité de transfert de queue entre renderers
Implémentation complète de la fonctionnalité de transfert de queue entre renderers :
- Ajout d'une nouvelle API POST /renderers/{id}/queue/transfer
- Intégration dans le backend avec la méthode transfer_queue dans ControlPoint
- Mise à jour des structures de données pour inclure l'ID de playlist dans les snapshots
- Ajout d'une interface utilisateur dans RendererDrawer avec menu déroulant pour le transfert
- Gestion des écouteurs d'événements pour fermer le menu en dehors
- Support du transfert de la queue avec préservation de la playlist binding
- Ajout de tests et documentation OpenAPI
2026-01-09 21:55:26 +01:00
38f49d4439 Implémentation du menu déroulant pour les actions d'éléments dans le ServerDrawer
Ajout d'un menu déroulant avec les actions 'Ajouter à la queue' et 'Ajouter après' pour les éléments dans le ServerDrawer.

- Remplacement des fonctions handlePlayItem et handleQueueItem par des fonctions plus spécifiques (handlePlayItem, handleAddToQueue, handleAddAfterCurrent)
- Ajout d'une gestion du menu déroulant avec ouverture/fermeture
- Intégration du composant useRenderers pour les actions de lecture
- Mise à jour des styles pour le menu déroulant avec animations
- Correction de l'alignement du backdrop sur mobile
- Amélioration des transitions et animations du drawer
- Ajout de la fonction addAfterCurrent dans l'API et le control point
- Support de l'ajout d'éléments après le morceau actuel dans les queues
2026-01-09 17:26:46 +01:00
5320545d56 Debugging de la nouvelle implémentation. 2026-01-03 23:59:45 +01:00
9c90e706f1 Enorme refactoring de PMO control step 2 2026-01-03 08:00:08 +01:00
64450185c5 énorme refactoring de PMOcontrol step 1 2025-12-30 16:49:29 +01:00
02a44e9e75 Debug playlist lecture 2025-12-28 16:31:02 +01:00
9fe4819640 Fin provisoire du débugage de PMO contrôle 2025-12-28 09:36:55 +01:00
0cbd0c9b30 Remise au propre des abstractions de PMOcontrol. 2025-12-27 22:42:13 +01:00
0abe66f7fb On corrige le bug des serveur de musique autre que le PMO serveur. 2025-12-27 22:06:20 +01:00
40cce9f894 Rends les items de la queue de lecture cliquables. 2025-12-27 15:12:57 +01:00
ea6ddf90c0 Debug DeleteId de openhome 2025-12-26 22:26:59 +01:00
d35e17ae95 Découverte upnp 2025-12-26 20:45:16 +01:00
4124fe2083 update de la queue openhome 2025-12-26 20:45:16 +01:00
c3588de340 Debug des lecteurs Chromecast. 2025-12-23 12:30:36 +01:00
a753fbf910 Debug, mise à jour des playlists Open Home. 2025-12-22 14:30:59 +01:00
4713b7b121 Première implémentation chromecast 2025-12-22 10:18:15 +01:00
1a7e5dd790 Debug openhome 2025-12-21 21:04:31 +01:00
5f7ffe1bbe debug openhome 2025-12-17 21:28:21 +01:00
90399b408a correction for lazy playlist and lazy cache 2025-12-15 12:17:33 +01:00
31ee25c7f2 Abstraction de la gestion des queues de lecture 2025-12-08 17:40:23 +01:00
380e105873 Des debug après la simplification 2025-12-06 12:48:21 +01:00
daef8d6150 Simplification de la web UI en reposant davantage sur le serveur. 2025-12-06 12:48:21 +01:00
4d79c6d883 Débugage de la WebUI non complètement convaincants. 2025-12-06 12:48:21 +01:00
27aa70d81f debugagen openhome 2025-12-06 12:48:21 +01:00
2ffd3b5fb5 Gestion des renderes openhome 2025-12-06 12:48:21 +01:00
9f62191830 webui control point step 2 2025-12-06 12:48:21 +01:00
75878be564 Deboguage pmo_remote_control 2025-12-06 12:48:21 +01:00
1432f2507c Correction de la gestion des listes de playback. 2025-12-06 12:48:21 +01:00
72bf73ef10 Implémentation de l'API REST De PMOControl. 2025-12-06 12:48:21 +01:00
825254a2bb Prise en compte des métadonnées dans PMO Contrôle 2025-12-06 12:48:21 +01:00
f99ab2a41e Mise en place de la synchronisation de la playlist du point de contrôle avec celle du serveur de média. 2025-12-06 12:48:21 +01:00
aeb9332387 Mise en place d'un bus d'événements pour les serveurs de médias. 2025-12-06 12:48:21 +01:00
ea1774f216 Premier exemple pour tester si le controle point marche 2025-12-06 12:48:21 +01:00
f434c521e8 On fait la même chose maintenant coté serveur de musique. 2025-12-06 12:48:21 +01:00
7b1d35cebc Fixing MusicRenderer contrat 2025-12-06 12:48:21 +01:00
0e70a91ff9 Add a LinkPlayRenderer 2025-12-06 12:48:21 +01:00
f096a8cd8f Couche d'abstraction supplementaire 2025-12-06 12:48:21 +01:00
cf2636a992 Ajout du rendering control 2025-12-06 12:48:21 +01:00
3ec692ea6f implémentation concrète de DeviceDescriptionProvider 2025-12-06 12:48:21 +01:00