Files
pmomusic/pmowebrenderer/src/lib.rs
Eric Coissac 306e691c61 Refactor WebRenderer to use server-side streaming with OGG-FLAC sink
This commit refactors the WebRenderer to use a server-side streaming architecture with OGG-FLAC sink instead of the previous WebSocket-based approach. The changes include:

- Replaced WebSocket communication with HTTP streaming using DirectOggFlacSink
- Implemented a new pipeline architecture with dedicated handlers for UPnP commands
- Added new modules for registration, registry, and streaming
- Updated the renderer to work with a pipeline control system
- Removed old WebSocket session management
- Added support for HTTP streaming with gapless playback
- Updated dependencies and features for the new architecture

The WebRenderer now acts as a MediaRenderer UPnP device that serves audio streams via HTTP endpoints, with commands relayed to the audio pipeline through a new control system.
2026-02-26 20:05:42 +01:00

30 lines
859 B
Rust

//! PMO Web Renderer — Transforme un navigateur en MediaRenderer UPnP privé
//!
//! Architecture serveur-side streaming :
//! - Le serveur ouvre la source audio (fichier/HTTP) et l'encode en FLAC
//! - Le navigateur lit un flux FLAC via GET /api/webrenderer/{id}/stream
//! - Les commandes UPnP sont relayées vers le pipeline audio via PipelineControl
mod error;
mod handlers;
mod messages;
mod pipeline;
mod register;
mod registry;
mod renderer;
mod state;
mod stream;
#[cfg(feature = "pmoserver")]
mod config;
pub use error::WebRendererError;
pub use messages::PlaybackState;
pub use pipeline::{PipelineControl, PipelineHandle};
pub use registry::{RendererRegistry, WebRendererInstance};
pub use renderer::{FactoryError, WebRendererFactory};
pub use state::{RendererState, SharedState};
#[cfg(feature = "pmoserver")]
pub use config::WebRendererExt;