Bump version from 0.3.11 to 0.3.12 - Update Cargo.toml and version.txt to 0.3.12 - Refactor Radio France source registration to share Arc with API - Enhance API routes to start/stop metadata refresh on stream access - Add cleanup logic for stream disconnection - Improve logging for metadata refresh operations - Update Radio France source methods to be public for external access
pmomediaserver
Implémentation d'un MediaServer UPnP conforme à la spécification UPnP AV Architecture.
Description
Cette crate fournit un MediaServer UPnP qui permet d'exposer et de servir du contenu audio à des clients UPnP (MediaRenderer). Elle suit le même modèle architectural que la crate pmomediarenderer.
Architecture
Le MediaServer est composé de deux services obligatoires :
- ContentDirectory : Gestion du contenu et de la navigation dans la bibliothèque musicale
- ConnectionManager : Gestion des connexions et des protocoles supportés
Device UPnP
- Type :
urn:schemas-upnp-org:device:MediaServer:1 - Services : ContentDirectory:1, ConnectionManager:1
Utilisation
use pmomediaserver::MEDIA_SERVER;
use pmoupnp::UpnpServer;
// Le device est déjà configuré avec tous ses services
let server = MEDIA_SERVER.clone();
// Créer une instance du server
let instance = server.create_instance();
// Enregistrer le server sur un serveur UPnP
upnp_server.register_device(server).await?;
Dépendances
pmoupnp: Fournit l'infrastructure UPnP de base (devices, services, actions, state variables)pmodidl: Pour la gestion des métadonnées DIDL-Liteonce_cell: Pour les initialisations lazybevy_reflect: Pour la réflexion et l'introspection
Services
ContentDirectory
Service de gestion du contenu conforme UPnP ContentDirectory:1. Permet de naviguer et rechercher dans la bibliothèque musicale.
Actions supportées :
- Browse
- Search
- GetSearchCapabilities
- GetSortCapabilities
- GetSystemUpdateID
- CreateObject (optionnel)
- DestroyObject (optionnel)
- UpdateObject (optionnel)
ConnectionManager
Service de gestion des connexions conforme UPnP ConnectionManager:1. Gère les protocoles supportés.
Actions supportées :
- GetProtocolInfo
- GetCurrentConnectionIDs
- GetCurrentConnectionInfo
- PrepareForConnection (optionnel)
- ConnectionComplete (optionnel)
Licence
Voir le fichier LICENSE à la racine du projet.