Commit Graph

708 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
220eeb1244 Merge pull request 'push-xmrpvpxvppzw' (#43) from push-xmrpvpxvppzw into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 29m41s
Reviewed-on: #43
2026-01-10 16:45:55 +01:00
c9f15289d0 Ajout d'un padding à la liste des pistes
Ajout d'un padding de 10px à gauche et à droite dans la liste des pistes pour améliorer l'espacement et l'alignement visuel.
2026-01-10 16:44:29 +01:00
c745179200 Implémentation du seek audio avec support des Range requests
Ajout de la fonctionnalité de seek audio dans les renderers avec support des Range requests HTTP pour permettre le seek pendant le téléchargement.

- Ajout de la route /control/renderers/{renderer_id}/seek pour le seek par secondes
- Implémentation du support des Range requests dans le serveur de fichiers (pmocache)
- Mise à jour des dépendances avec http-range-header, tower, tower-http
- Amélioration de l'interface utilisateur avec une barre de progression interactive dans CurrentTrack.vue
- Support du seek pendant le téléchargement avec streaming progressif
- Gestion des erreurs et timeouts pour les commandes de seek
2026-01-10 16:35:52 +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
4324e1499a Merge pull request 'push-yosuotuuuukv' (#42) from push-yosuotuuuukv into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 28m50s
Reviewed-on: #42
2026-01-09 21:56:41 +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
58ac28489c Optimize UPnP discovery and server response handling
Refactor UPnP discovery to use a thread pool for fetching device descriptions, improving performance and responsiveness. Also, use spawn_blocking in server endpoints to prevent blocking the async runtime when performing sync operations. Additionally, add read timeout to SSDP socket and handle WouldBlock errors gracefully.

Refactorisation du contrôle des renderers et amélioration de l'interface utilisateur

Refactorisation complète du composant VolumeControl avec gestion d'erreur améliorée et debounce.

Migration de l'interface de contrôle des renderers :
- Suppression de l'ancienne barre d'onglets en bas
- Intégration d'une nouvelle barre d'infos en bas avec les détails du renderer actif
- Création d'un nouveau drawer pour la sélection des renderers
- Déplacement des informations du renderer de l'onglet vers la barre d'infos

Améliorations UI/UX :
- Nouvelle interface de contrôle des renderers dans le drawer avec boutons de lecture/pause
- Mise à jour des styles et animations pour une meilleure expérience utilisateur
- Adaptation responsive pour les appareils mobiles
2026-01-09 21:55:26 +01:00
256495b483 Refactorisation du composant RendererTabContent
Migration vers un format de code plus cohérent avec des indentations et sauts de ligne uniformes. Correction des espaces et mise à jour des styles pour une meilleure lisibilité et maintenabilité.
2026-01-09 19:26:19 +01:00
2ebbed2ffc Refactor QueueViewer component and update UnifiedControlView
This commit includes a refactor of the QueueViewer component to improve code formatting and readability, along with adding a scrollable area fix to ensure items are not hidden under a fixed bar. Additionally, the padding-bottom in UnifiedControlView has been removed as it's now handled by the QueueViewer component.
2026-01-09 17:49:12 +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
d708bb6035 Remove debug traces
Supprime les traces de débogage (tracing::warn) inutiles dans les fichiers principaux du projet.

- PMOMusic/src/main.rs
- pmomediaserver/src/paradise_streaming.rs
- pmoupnp/src/upnp_server.rs

Ces traces étaient utilisées pour le débogage pendant le développement et ne sont plus nécessaires dans la version finale.
2026-01-09 08:12:31 +01:00
3d533e1989 Merge pull request 'feat: Améliorations et corrections dans la gestion des devices UPnP' (#41) from push-xpzxtzwxzktm into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 28m39s
Reviewed-on: #41
2026-01-08 15:57:15 +01:00
60785745aa feat: Améliorations et corrections dans la gestion des devices UPnP
- Correction des erreurs dans la génération des éléments XML pour les conteneurs
- Amélioration de la gestion des caches (cover et audio) dans ParadiseStreaming
- Optimisation des annonces SSDP avec des messages plus clairs
- Ajout de logs de debug pour faciliter le débogage
- Correction de la gestion des notifications GENA pour le ContentDirectory
- Amélioration de la documentation et des commentaires dans les fichiers modifiés
2026-01-08 15:53:31 +01:00
9ff85bbd10 Merge pull request 'Correction de petits bugs d'interface' (#40) from push-ynozoummpwzw into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 28m23s
Reviewed-on: #40
2026-01-04 20:52:00 +01:00
7546072d2b Correction de petits bugs d'interface 2026-01-04 20:45:51 +01:00
c53ccf2f93 Merge pull request 'Réannonce les devices online toutes les deux minutes.' (#39) from push-zvuqonwpzxrq into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 28m39s
Reviewed-on: #39
2026-01-04 09:46:46 +01:00
048718c895 Réannonce les devices online toutes les deux minutes. 2026-01-04 09:45:00 +01:00
7e14d36230 Merge pull request 'corrige un bug de détection des servers online' (#38) from push-vnqkompntkws into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 28m35s
Reviewed-on: #38
2026-01-04 09:13:11 +01:00
a143e39422 corrige un bug de détection des servers on line 2026-01-04 09:09:35 +01:00
f5d055be6f Actualiser version.txt
All checks were successful
Build and Push Docker Image / build (push) Successful in 28m30s
version-0.20
2026-01-04 00:08:21 +01:00
e42a7b1ef2 Merge pull request 'Refactoring complet de PMO contrôle.' (#37) from push-wkzrllnusrys into main
Some checks failed
Build and Push Docker Image / build (push) Has been cancelled
Reviewed-on: #37
2026-01-04 00:07:42 +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
a4301140d8 Migration vers une forme unifiée des cargos 2025-12-30 16:49:29 +01:00
64450185c5 énorme refactoring de PMOcontrol step 1 2025-12-30 16:49:29 +01:00
000d378789 Merge pull request 'push-mvtuzlstzutl' (#35) from push-mvtuzlstzutl into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 29m38s
Reviewed-on: #35
version-0.1
2025-12-28 16:31:41 +01:00
02a44e9e75 Debug playlist lecture 2025-12-28 16:31:02 +01:00
2f77913caa Enrichissement de la source Qobuz 2025-12-28 15:00:06 +01:00
2353cd736d Merge pull request 'Debug dans pmoaudiocache pour les piste non complètement téléchargées' (#34) from push-wzwlxvklsnuw into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 28m25s
Reviewed-on: #34
2025-12-28 14:20:57 +01:00
572f6e4301 Debug dans pmoaudiocache pour les piste non complètement téléchargées 2025-12-28 14:20:14 +01:00
5cb8cc2f31 Merge pull request 'Debug qobuz, pas encore parfait mais presque.' (#33) from push-ryzlqtmkoyxw into main
Some checks failed
Build and Push Docker Image / build (push) Has been cancelled
Reviewed-on: #33
2025-12-28 13:53:53 +01:00
2b69350162 Debug qobuz pas encore parfait mais mieux 2025-12-28 13:52:31 +01:00
0c64ed1a9a Autorise la configuration des noms UPNP. 2025-12-28 12:37:38 +01:00
876b1e0147 update de qobuz pour utiliser les sources lazy 2025-12-28 12:37:10 +01:00
b915481595 Merge pull request 'Fin provisoire du débugage de PMO contrôle' (#32) from push-nlwpnmvzzmvs into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 28m17s
Reviewed-on: #32
2025-12-28 09:45:43 +01:00
9fe4819640 Fin provisoire du débugage de PMO contrôle 2025-12-28 09:36:55 +01:00
7976ce096e Merge pull request 'push-wmwyloupzyyo' (#31) from push-wmwyloupzyyo into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 29m40s
Reviewed-on: #31
2025-12-27 22:58:58 +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
ed46ee8109 Merge pull request 'push-xwqwmkpwtxqk' (#30) from push-xwqwmkpwtxqk into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 28m32s
Reviewed-on: #30
2025-12-27 18:06:34 +01:00
dec48a3130 Lenteur détection des serveurs. 2025-12-27 18:05:03 +01:00
46625c20ec Petit débugage de la user interface. 2025-12-27 17:02:29 +01:00
125b5bbc2f Simplification du code OpenHome environ tous les workarounds. 2025-12-27 17:02:29 +01:00
0a50ca38ac Merge pull request 'Amélioration de l'interface utilisateur.' (#29) from push-lxpmrvpuzxkw into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 28m27s
Reviewed-on: #29
2025-12-27 15:28:05 +01:00
40cce9f894 Rends les items de la queue de lecture cliquables. 2025-12-27 15:12:57 +01:00
6d9c50d454 Debug online 2025-12-27 14:47:12 +01:00
6b5282903e Grosse correction sur l'interface graphique et débugage de Open Home.
All checks were successful
Build and Push Docker Image / build (push) Successful in 28m52s
2025-12-27 13:46:17 +01:00
d6f8d94ca5 Plus de dashboard. 2025-12-27 11:21:49 +01:00