diff --git a/pmoaudio-ext/src/sinks/flac_cache_sink.rs b/pmoaudio-ext/src/sinks/flac_cache_sink.rs index 2d349d66..62be634e 100755 --- a/pmoaudio-ext/src/sinks/flac_cache_sink.rs +++ b/pmoaudio-ext/src/sinks/flac_cache_sink.rs @@ -653,10 +653,7 @@ impl AudioPipelineNode for FlacCacheSink { // Transférer le playlist_handle_pending à la logique si présent #[cfg(feature = "playlist")] if let Some(handle) = self.playlist_handle_pending.take() { - // FIXME: Node devrait exposer une méthode logic_mut() pour permettre - // la configuration post-construction. Pour l'instant, on ignore ce handle. - // L'utilisateur devra configurer la playlist avant construction. - let _ = handle; + self.inner.logic_mut().set_playlist_handle(handle); } Box::new(self.inner).run(stop_token).await diff --git a/pmoaudio/src/pipeline.rs b/pmoaudio/src/pipeline.rs index 5977b788..7cffac38 100755 --- a/pmoaudio/src/pipeline.rs +++ b/pmoaudio/src/pipeline.rs @@ -482,6 +482,15 @@ impl Node { pub fn logic(&self) -> &L { &self.logic } + + /// Retourne une référence mutable vers la logique métier du nœud + /// + /// Permet de configurer la logique après construction mais avant run(). + /// Utile pour définir des options qui ne peuvent pas être connues + /// au moment de la construction du nœud. + pub fn logic_mut(&mut self) -> &mut L { + &mut self.logic + } } #[async_trait::async_trait]