Files
pmomusic/pmomediaserver/Cargo.toml
Eric Coissac 5c5e1d534b feat: Implémentation complète de la source Radio France avec intégration UPnP et serveur HTTP
Ajout de la source Radio France avec :
- Implémentation du trait MusicSource pour l'intégration UPnP
- Routes HTTP API REST pour l'accès aux stations et flux AAC
- Proxy streaming avec tracking des connexions
- Génération dynamique de l'arborescence UPnP
- Cache multi-niveaux (stations, métadonnées, covers)
- Support des ~70 stations (standalone, groupes, radios ICI)

Fichiers créés :
- pmoradiofrance/src/source.rs (implémentation MusicSource)
- pmoradiofrance/src/server_ext.rs (routes HTTP et proxy streaming)
- pmoradiofrance/assets/radiofrance-logo.webp (logo placeholder)

Fichiers modifiés :
- pmoradiofrance/src/lib.rs (re-exports et modules)
- pmoradiofrance/Cargo.toml (dépendances server)
- Cargo.toml (workspace)
- pmomediaserver/Cargo.toml (feature radiofrance)
- PMOMusic/Cargo.toml (feature radiofrance)
- PMOMusic/src/main.rs (enregistrement automatique)

Tests et validation : compilation OK, pattern respecté, feature-gating cohérent
2026-01-23 12:20:43 +01:00

63 lines
2.0 KiB
TOML

[package]
name = "pmomediaserver"
version = "0.1.0"
edition = "2024"
[dependencies]
pmoupnp = { path = "../pmoupnp" }
pmodidl = { path = "../pmodidl" }
pmosource = { path = "../pmosource" }
pmoserver = { path = "../pmoserver" }
once_cell = "1.20"
bevy_reflect = "0.17.1"
tokio = { workspace = true, features = ["sync"] }
async-trait = { workspace = true }
tracing = { workspace = true }
quick-xml = { workspace = true }
thiserror = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
pmoutils = { path = "../pmoutils" }
# Optional dependencies
axum = { version = "0.8", optional = true }
utoipa = { version = "5.3", optional = true }
pmoqobuz = { path = "../pmoqobuz", optional = true }
pmoparadise = { path = "../pmoparadise", optional = true }
pmoradiofrance = { path = "../pmoradiofrance", optional = true }
pmoconfig = { path = "../pmoconfig", optional = true }
anyhow = { version = "1.0", optional = true }
pmoaudiocache = { path = "../pmoaudiocache", optional = true }
pmocovers = { path = "../pmocovers", optional = true, features = ["pmoserver"] }
pmoplaylist = { path = "../pmoplaylist", optional = true }
tokio-util = { version = "0.7", features = ["io"], optional = true }
[features]
default = ["pmosource/server"]
# Feature pour activer l'API REST de gestion des sources
api = ["dep:axum", "dep:utoipa", "pmosource/server"]
# Feature pour activer le support Qobuz configuré
qobuz = ["api", "dep:pmoqobuz", "dep:pmoconfig", "pmoqobuz/server"]
# Feature pour activer le support Radio Paradise
paradise = [
"api",
"dep:pmoparadise",
"pmoparadise/full",
"dep:anyhow",
"dep:pmoaudiocache",
"dep:pmocovers",
"pmocovers/pmoserver",
"dep:pmoplaylist",
"dep:tokio-util"
]
# Feature pour activer l'API REST de Radio Paradise (en plus de la source UPnP)
paradise-api = ["paradise", "pmoparadise/pmoserver"]
# Feature pour activer le support Radio France
radiofrance = [
"api",
"dep:pmoradiofrance",
"pmoradiofrance/server",
"dep:pmoconfig"
]