MoosicBox UPnP
MoosicBox-specific UPnP player implementation for controlling media playback on UPnP/DLNA devices.
This crate provides the MoosicBox integration layer on top of switchy_upnp, including:
- Player:
UPnPplayer implementation that integrates withMoosicBoxplayback system - Listener: Event listener service for monitoring
UPnPdevice state changes
Features
api- Actix-web API supportlistener- Event listener service forUPnPdevice monitoringopenapi- OpenAPI/utoipa schema supportplayer-UPnPplayer implementationsimulator- SimulatedUPnPdevices for testing
Installation
Add to your Cargo.toml:
[]
= { = "0.1.0" }
Usage
use UpnpPlayer;
// UpnpPlayer::new(
// source_to_music_api,
// device,
// service,
// source,
// handle,
// )
Public API
player::UpnpPlayer- Main UPnP player type used by MoosicBox playback.
- Constructor:
UpnpPlayer::new(source_to_music_api, device, service, source, handle). - Implements
moosicbox_player::Playerfor playback control andTryFrom<UpnpPlayer> for AudioOutputFactoryfor audio output integration.
player::UpnpAvTransportService- Wrapper around a discovered UPnP AVTransport service.
- Implements
TryFrom<UpnpAvTransportService> for AudioOutputFactory.
player::DEFAULT_SEEK_RETRY_OPTIONS- Default retry policy used for UPnP seek behavior.
listenermodule (enabled bylistenerfeature)- Service lifecycle entry points:
Service::new(UpnpContext::new()),Service::handle(),Service::start(). Handle::subscribe_media_info(interval, instance_id, udn, service_id, action)Handle::subscribe_position_info(interval, instance_id, udn, service_id, action)Handle::subscribe_transport_info(interval, instance_id, udn, service_id, action)Handle::unsubscribe(subscription_id)- Shutdown support via
listener::Commandertrait (handle.shutdown()). - Callback types:
MediaInfoSubscriptionAction,PositionInfoSubscriptionAction,TransportInfoSubscriptionAction
- Service lifecycle entry points:
License
MPL-2.0