Files
pmomusic/pmomediarenderer
Eric Coissac 03775f7574 Add CurrentSpeed to GetTransportInfo
This commit adds the CurrentSpeed field to the GetTransportInfo action, including updates to the action definition, handler, and web renderer. The speed is set to '1' as a default value.
2026-02-21 09:43:39 +01:00
..
2026-02-21 09:43:39 +01:00

pmomediarenderer

Implémentation d'un MediaRenderer UPnP audio-only conforme à la spécification UPnP AV Architecture.

Description

Cette crate fournit un MediaRenderer UPnP qui permet de recevoir et lire du contenu audio depuis un serveur UPnP (MediaServer). Elle a été extraite de la crate pmoupnp pour permettre une meilleure modularité.

Architecture

Le MediaRenderer est composé de trois services obligatoires :

  • AVTransport : Contrôle de la lecture (play, pause, stop, seek, next, previous, etc.)
  • RenderingControl : Contrôle du volume et du mute
  • ConnectionManager : Gestion des connexions et des protocoles supportés

Device UPnP

  • Type : urn:schemas-upnp-org:device:MediaRenderer:1
  • Services : AVTransport:1, RenderingControl:1, ConnectionManager:1

Utilisation

use pmomediarenderer::MEDIA_RENDERER;
use pmoupnp::UpnpServer;

// Le device est déjà configuré avec tous ses services
let renderer = MEDIA_RENDERER.clone();

// Créer une instance du renderer
let instance = renderer.create_instance();

// Enregistrer le renderer sur un serveur UPnP
server.register_device(renderer).await?;

Dépendances

  • pmoupnp : Fournit l'infrastructure UPnP de base (devices, services, actions, state variables)
  • pmodidl : Pour la gestion des métadonnées DIDL-Lite
  • once_cell : Pour les initialisations lazy
  • bevy_reflect : Pour la réflexion et l'introspection

Services

AVTransport

Service de contrôle de transport audio conforme UPnP AVTransport:1. Gère la lecture de contenu audio.

Actions supportées :

  • SetAVTransportURI
  • SetNextAVTransportURI
  • Play
  • Pause
  • Stop
  • Seek
  • Next
  • Previous
  • GetTransportInfo
  • GetPositionInfo
  • GetMediaInfo
  • GetDeviceCapabilities
  • GetTransportSettings
  • GetCurrentTransportActions

RenderingControl

Service de contrôle de rendu conforme UPnP RenderingControl:1. Gère le volume et le mute.

Actions supportées :

  • GetVolume
  • SetVolume
  • GetMute
  • SetMute

ConnectionManager

Service de gestion des connexions conforme UPnP ConnectionManager:1. Gère les protocoles supportés.

Actions supportées :

  • GetProtocolInfo
  • GetCurrentConnectionIDs
  • GetCurrentConnectionInfo

Licence

Voir le fichier LICENSE à la racine du projet.