Ajout de la fonctionnalité WebRenderer permettant à chaque navigateur connecté de devenir un MediaRenderer UPnP privé. - Création du crate pmowebrenderer avec l'architecture complète - Implémentation des handlers SOAP → WebSocket pour les services AVTransport, RenderingControl et ConnectionManager - Intégration avec le ControlPoint pour l'enregistrement dynamique des renderers - Gestion des sessions avec timeout et cleanup automatique - Support des commandes de transport (play, pause, stop, seek) et du contrôle du volume - Mise à jour des dépendances dans Cargo.toml et Cargo.lock - Documentation de l'architecture dans Blackboard/Architecture/webrenderer.md
39 lines
1010 B
TOML
39 lines
1010 B
TOML
[package]
|
|
name = "pmowebrenderer"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[dependencies]
|
|
pmoupnp = { path = "../pmoupnp" }
|
|
pmomediarenderer = { path = "../pmomediarenderer" }
|
|
pmoserver = { path = "../pmoserver", optional = true }
|
|
pmocontrol = { path = "../pmocontrol", optional = true }
|
|
pmoconfig = { path = "../pmoconfig" }
|
|
|
|
# Async runtime
|
|
tokio = { workspace = true, features = ["full"] }
|
|
async-trait = { workspace = true }
|
|
|
|
# WebSocket
|
|
axum = { workspace = true, features = ["ws"] }
|
|
axum-extra = { version = "0.9", features = ["typed-header"] }
|
|
tower-http = { version = "0.6", features = ["fs", "trace"] }
|
|
futures = "0.3"
|
|
|
|
# Serialization
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
|
|
# Utilities
|
|
uuid = { workspace = true, features = ["v4", "serde"] }
|
|
parking_lot = "0.12"
|
|
thiserror = { workspace = true }
|
|
tracing = { workspace = true }
|
|
|
|
pmodidl = { path = "../pmodidl" }
|
|
pmoutils = { path = "../pmoutils" }
|
|
|
|
[features]
|
|
default = []
|
|
pmoserver = ["dep:pmoserver", "dep:pmocontrol"]
|