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
63 lines
2.0 KiB
TOML
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"
|
|
]
|