Commit Graph

47 Commits

Author SHA1 Message Date
39dbf56416 Amélioration de l'overlay de couverture d'album
### Modifications principales

- Les métadonnées sont maintenant visibles par défaut à l'ouverture de l'overlay
- Ajout d'une barre de progression interactive dans le panneau des métadonnées (support souris et tactile)
- Style glassmorphism appliqué à l'overlay (fond transparent 35%, blur 30px, bordure subtile)
- Panneau réduit à 70% de largeur pour un look plus élégant
- Fermeture ergonomique sur mobile via swipe down (seuil 100px) avec feedback visuel
- Bouton X conservé pour desktop
- Blocage du pull-to-refresh Android

### Corrections supplémentaires

- Support tactile de la barre de progression principale (hors overlay)
- Utilisation de `100dvh` au lieu de `100vh` pour compatibilité avec les barres de navigation mobiles
- Corrections TypeScript pour les événements tactiles
2026-01-17 19:01:40 +01:00
4f8f902f3f Fix backend mutex poisoned panic on OpenHome stop
Fix backend mutex poisoned panic when stopping playback on OpenHome renderer

This commit addresses a panic that occurred when stopping playback on OpenHome renderers, which was caused by:

1. Mutex poisoning from unhandled panics in backend operations
2. A regression revealed after initial fixes, where inconsistent renderer state caused index out of bounds errors

Changes include:
- Added defensive error handling for mutex operations to prevent poisoning
- Implemented bounds-checking for current_index in sync_queue to handle inconsistent renderer states
- Removed redundant clear_queue calls that were causing additional failures
- Improved error tolerance in queue operations

The fix ensures that the backend mutex remains healthy and that inconsistent renderer states are handled gracefully rather than causing panics.
2026-01-17 13:40:23 +01:00
90af7cf772 Corrige le transfert de queue entre renderers
Le transfert de la queue de lecture entre renderers était corrompu car le binding de playlist était réinitialisé, effaçant les items transférés. Correction en transférant directement le binding sans déclencher de rafraîchissement, préservant ainsi le current_index et la position de lecture.

- Fichiers modifiés : pmocontrol/src/control_point.rs
- Version mise à jour : 0.3.7
2026-01-17 09:17:16 +01:00
066e2fe008 Corrige le bug d'URL relative pour la cover dans pmoqobuz
Correction du bug où l'URL de la cover générée par pmoqobuz était relative au lieu d'être absolue, comme pour le flux audio. Ajout de la conversion de l'URL de la cover en URL absolue dans la fonction adapt_playlist_items_to_qobuz. Version mise à jour de 0.3.5 à 0.3.6.
2026-01-16 23:35:07 +01:00
02cff8e913 Refactoriser MusicRenderer pour un comportement stateful complet
Cette modification refactorise l'architecture pour que chaque `MusicRenderer` gère son propre thread de surveillance (watcher), au lieu de déléguer le polling au `ControlPoint` centralisé. 

- Ajout d'un module `watcher.rs` avec `WatchStrategy`, `WatchedState` et fonctions helper
- Implémentation de `start_watching()` et `stop_watching()` dans `MusicRenderer`
- Centralisation de la gestion du watcher dans le constructeur et les méthodes `has_been_seen_now()`/`mark_as_offline()`
- Suppression du polling central (~140 lignes) dans `control_point.rs`
- Simplification du `registry.rs` avec suppression des appels manuels `start/stop_watching()`
- Correction du bug dans `refresh_device_presence()` pour le traitement offline→online
- Préparation pour le support futur des notifications push (OpenHome, Chromecast)

L'architecture est maintenant plus robuste avec une meilleure encapsulation, cohérence des événements et une gestion automatique du watcher.
2026-01-16 20:52:29 +01:00
c524ba57e5 Bump version to 0.3.4
Update version number in Cargo.toml and version.txt to 0.3.4
2026-01-16 13:21:46 +01:00
c1bf488ab2 Mise à jour de la version vers 0.3.3
Mise à jour de la version dans Cargo.toml et version.txt vers 0.3.3

- Suppression de l'étape d'extraction de version dans le workflow build-push.yaml
- Amélioration de la cible Makefile sync-version pour utiliser un fichier de dépendance
- Ajout de messages de documentation lors du push avec jj
2026-01-11 16:39:42 +01:00
01abf5d8bc Mise à jour de la version et synchronisation du fichier version.txt
Mise à jour de la version dans PMOMusic/Cargo.toml de 0.3.1 à 0.3.2.
Ajout du fichier version.txt contenant la version 0.3.2.
Mise à jour du Makefile pour synchroniser automatiquement version.txt depuis PMOMusic/Cargo.toml lors de la mise à jour de la version.
Ajout de la cible sync-version dans le Makefile pour permettre une synchronisation manuelle du fichier version.txt.
2026-01-11 16:31:52 +01:00
646633af6b Mise à jour de la version et améliorations du workflow
Mise à jour de la version de PMOMusic de 0.1.0 à 0.3.1

- Correction de l'indentation dans le fichier de workflow
- Ajout d'une étape pour extraire la version depuis Cargo.toml
- Ajout d'une cible Makefile pour incrémenter automatiquement le numéro de version patch
- Ajout de cibles Makefile pour gérer les commits avec jj (jeff) : bump-version, jjnew, jjpush, jjfetch
- Suppression du fichier version.txt inutile
2026-01-11 16:15:13 +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
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
a4301140d8 Migration vers une forme unifiée des cargos 2025-12-30 16:49:29 +01:00
68e6f528e5 debugage lazy cache 2025-12-17 07:23:25 +01:00
9f62191830 webui control point step 2 2025-12-06 12:48:21 +01:00
23705c9c21 Eh bien, je ne sais plus à quoi ça correspond. 2025-12-06 12:48:21 +01:00
0a03f72467 Changement du mécanisme d'attention sur les channels Radio Paradise. 2025-12-06 12:48:21 +01:00
6ae06b38e1 Gestion des notifications 2025-12-06 12:48:21 +01:00
ccd2112305 debug du upnp mediaserver 2025-12-06 12:48:21 +01:00
66416dafa8 Fin de la correction de l'implémentation par ChatGPT. 2025-11-16 21:34:16 +01:00
97a383c079 Tentative de gestion d'un historique 2025-11-16 08:02:50 +01:00
40950164e9 Ajout d'un noeud puis vers le cache audio 2025-11-03 14:45:37 +01:00
217ebb84c9 Debuggage du streaming des block radioparadise 2025-10-29 22:35:53 +01:00
1e0a0e2acb On continue le refactoring des sources 2025-10-29 22:35:10 +01:00
208fe8be76 amélioration de la webapp 2025-10-20 16:18:21 +02:00
23c6d8b7a7 Ajount d'un viewer radio paradise 2025-10-20 16:18:21 +02:00
fb0394b427 Faire fonctionner le media server 2025-10-18 21:29:43 +02:00
ff515e22bd nouveau mediarenderer 2025-10-18 14:33:52 +02:00
2eec78ab4f ashboard dans le webapp qui liste dynamiquement toutes les APIs OpenAPI disponibles dans PMOMusic 2025-10-17 14:36:13 +02:00
823617c5f3 Refactoring de l'API rest des musicsources 2025-10-17 12:56:12 +02:00
1f263c2295 ajoute une vue dans l'application web sur l'openAPI 2025-10-17 12:28:35 +02:00
218e527e24 Ajoute la source pmoparadise au mediaserver 2025-10-17 12:16:12 +02:00
622c1d952e ajoute les sources au renderer 2025-10-17 09:32:12 +02:00
6a87046845 Ajoute un media server à l'application PMOMusic 2025-10-17 09:18:36 +02:00
3f85067426 Sort la partie média renderer de pmoupnp pour en faire une crate independante 2025-10-16 22:00:16 +02:00
e7e6727123 Mise à jour de la doc des caches 2025-10-16 20:57:10 +02:00
ff2e998794 API de l'éta interne sur serveur web 2025-10-10 12:27:24 +02:00
9bf5bc7fe2 Ajoute pmocovers 2025-10-07 11:41:10 +02:00
e260330877 Revue de code et refactoring 2025-10-07 08:32:48 +02:00
c57ef5df30 Connection de la couche sspd aux instances 2025-10-06 15:06:32 +02:00
f87f467680 Sort webapp du pmoserver dans la crate pmoapp 2025-10-06 11:28:24 +02:00
05a9c7100a Sort le serveur dans une crate pmoserver 2025-10-06 06:28:48 +02:00
e5f5686ba1 Revenons sur les devices 2025-10-05 22:03:13 +02:00
c9d357d647 Fin du debuggage 2025-10-05 22:03:13 +02:00
4a0595ecb0 Gros refactoring 2025-10-05 22:03:13 +02:00
4f999c8a3c Començons un Mediarenderer 2025-10-05 22:03:13 +02:00
c2390893b6 On essaie de faire démarer un serveur web 2025-10-05 22:03:13 +02:00
731e58b1d0 on redemare en Rust
This commit contains the following changes:
     M .gitignore
     A Cargo.lock
     A Cargo.toml
     A PMOMusic/Cargo.toml
     A PMOMusic/src/main.rs
     D README.md
     A Readme.md
2025-10-05 21:29:10 +02:00