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.
This commit is contained in:
2026-01-16 20:51:27 +01:00
parent 7b5eb5a4da
commit 02cff8e913
11 changed files with 940 additions and 502 deletions

View File

@@ -1,6 +1,6 @@
[package]
name = "PMOMusic"
version = "0.3.4"
version = "0.3.5"
edition = "2024"
[dependencies]