Commit Graph

6 Commits

Author SHA1 Message Date
9dee193947 ⬆️ version to v0.3.41 — async queue sync refactoring
- Add `SyncCancelled` error variant for non-fatal cancellations
- Refactor queue sync to async via `MusicQueue::schedule_sync()`
  - Extract browse+conversion into internal helper
- Update all `QueueBackend::sync_queue()` signatures to accept cancel token and on_ready callback  
- Implement early-start logic (on pivot preservation or first insert)
 - Add `QueueReadyToPlay` and  ‘ QueueSyncCancelled➔ SSE events
- Replace blocking `refresh_attached_queue_for()` with non-blocking async dispatch in control_point.rs  
- Bump version to v0.3.41
2026-04-09 11:21:11 +02:00
169e536011 🚀 v0.3.32 — Add NoMedia handling & debug logging for Chromecast auto-advance
- Bump version to v0.3.32 (Cargo.toml, Cargo.lock &version.txt)
- Add detailed debug logging in ChromecastRenderer::playback_state()– tracks apps, media entries & player state
- Implement proper handling of PlaybackState::NoMedia to support auto advancing after track ends (Chromecast-specific behavior)
- Reorganize imports in musicrenderer.rs for clarity
- Minor cleanup: remove unused import, fix formatting
2026-04-04 00:03:18 +02:00
5e3fdd1841 + retry logic with exponential backoff for Chromecast connections
- Add `connect_with_retry()` method to handle connection failures with exponential backoff (200ms, 400ms)
- Replace all direct `connect_to_device()` calls with either the new method or an inlined retry loop (for thread-local context)
- Improve robustness of Chromecast operations by automatically reconnecting on transient failures
2026-04-04 00:02:59 +02:00
ea5328450b Implémentation de la détection de flux continu et gestion de la barre de progression
Cette mise à jour implémente la détection des flux continus (radio, streaming) et améliore la gestion de la barre de progression pour ces flux. Les changements incluent : 
- Ajout d'une méthode predicat `is_playing_a_stream()` au niveau de `MusicRenderer`
- Développement d'une fonction utilitaire `is_continuous_stream_url()` pour analyser les headers HTTP
- Mise à jour des backends (UPnP, OpenHome, LinkPlay, ArylicTcp, Chromecast) pour détecter les flux continus
- Ajout d'un flag `continuous_stream` dans chaque backend
- Export du module de détection de flux
- Mise à jour de l'API REST et des événements SSE pour transmettre l'état du flux
- Correction de la gestion de la position de lecture pour les flux continus

Les flux continus sont maintenant correctement détectés via une analyse HTTP des headers, permettant une gestion appropriée de la barre de progression dans l'interface web.
2026-01-31 10:33:06 +01:00
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
9c90e706f1 Enorme refactoring de PMO control step 2 2026-01-03 08:00:08 +01:00