Ajout de PlayerSource avec contrôle complet AVTransport (Play/Pause/Stop/Seek/LoadUri) dans le pipeline audio - Introduit PlayerSource comme nœud source audio avec gestion complète du cycle de vie UPnP - Implémente les commandes LoadUri, LoadNextUri, Play, Pause, Stop, Seek - Gestion des transitions gapless avec TrackBoundary pour un bitstream propre - Révision du pipeline audio pour utiliser PlayerSource au lieu de la logique de contrôle existante - Mise à jour des handlers UPnP pour utiliser PlayerHandle au lieu du canal de contrôle - Suppression des anciennes commandes PipelineControl et logique de gestion de source - Ajout de gestion d'événements PlayerEvent pour mise à jour de l'état UPnP - Migration vers StreamingOggFlacSink pour la diffusion audio
49 lines
1.6 KiB
Rust
Executable File
49 lines
1.6 KiB
Rust
Executable File
//! Extensions pour pmoaudio
|
|
//!
|
|
//! Cette crate fournit des nodes d'extension pour pmoaudio qui dépendent
|
|
//! d'autres crates du projet. Elle permet d'éviter les dépendances cycliques
|
|
//! en plaçant ces extensions en "bout de chaîne" de dépendances.
|
|
//!
|
|
//! # Features
|
|
//!
|
|
//! - `cache-sink` : Active le `FlacCacheSink` qui encode l'audio en FLAC et le stocke dans pmoaudiocache
|
|
//! - `playlist` : Active l'intégration avec pmoplaylist (sources et sinks)
|
|
//! - `all` : Active toutes les features d'un coup
|
|
//!
|
|
//! # Architecture
|
|
//!
|
|
//! Cette crate dépend de :
|
|
//! - `pmoaudio` : Types de base (AudioSegment, AudioError, etc.)
|
|
//! - `pmoaudiocache` (optionnel) : Cache audio pour le stockage FLAC
|
|
//! - `pmoflac` (optionnel) : Encodage FLAC
|
|
//! - `pmometadata` (optionnel) : Gestion des métadonnées
|
|
//! - `pmoplaylist` (optionnel) : Intégration playlist
|
|
//!
|
|
//! Aucune des crates ci-dessus ne dépend de `pmoaudio-ext`, évitant ainsi
|
|
//! tout cycle de dépendances.
|
|
|
|
#[cfg(any(feature = "cache-sink", feature = "http-stream"))]
|
|
pub mod sinks;
|
|
|
|
#[cfg(any(feature = "cache-sink", feature = "http-stream"))]
|
|
pub mod nodes;
|
|
|
|
#[cfg(any(feature = "playlist", feature = "http-stream"))]
|
|
pub mod sources;
|
|
|
|
// Re-exports pour faciliter l'utilisation
|
|
#[cfg(any(feature = "cache-sink", feature = "http-stream"))]
|
|
pub use sinks::*;
|
|
|
|
#[cfg(any(feature = "cache-sink", feature = "http-stream"))]
|
|
pub use nodes::*;
|
|
|
|
#[cfg(feature = "playlist")]
|
|
pub use sources::PlaylistSource;
|
|
|
|
#[cfg(feature = "http-stream")]
|
|
pub use sources::UriSource;
|
|
|
|
#[cfg(feature = "http-stream")]
|
|
pub use sources::{PlayerCommand, PlayerEvent, PlayerHandle, PlayerSource};
|