Files
pmomusic/Cargo.toml
Eric Coissac 1e882ba6c3 feat: implémentation du WebRenderer UPnP privé par navigateur
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
2026-02-19 16:15:18 +01:00

61 lines
1.2 KiB
TOML

[workspace]
resolver = "3"
members = [
"PMOMusic",
"pmoupnp",
"pmomediarenderer",
"pmowebrenderer",
"pmomediaserver",
"pmoconfig",
"pmoutils",
"pmodidl",
"pmoserver",
"pmoapp",
"pmocache",
"pmocovers",
"pmoaudiocache",
"pmoaudio",
"pmoqobuz",
"pmoparadise",
"pmoradiofrance",
"pmosource",
"pmoplaylist",
"pmoflac",
"pmometadata",
"pmocontrol",
]
[workspace.dependencies]
# Core
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
# Async runtime
tokio = { version = "1.35", features = ["full"] }
tokio-util = { version = "0.7", features = ["io"] }
async-trait = "0.1"
# Error handling
anyhow = "1.0"
thiserror = "2.0"
# Logging
tracing = "0.1.41"
tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] }
# HTTP/XML
reqwest = { version = "0.12", default-features = false }
ureq = "3.1"
quick-xml = { version = "0.38", features = ["serialize"] }
axum = "0.8.4"
futures = "0.3"
# Utilities
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1.18", features = ["v4"] }
crossbeam-channel = "0.5"
rand = "0.9"
# Testing
tokio-test = "0.4"