Struct mpris_server::Server
source · pub struct Server<T> { /* private fields */ }Expand description
Thin wrapper around zbus::Connection that calls to T’s implementation
of RootInterface, PlayerInterface, TrackListInterface, and
PlaylistsInterface to implement org.mpris.MediaPlayer2 and its
sub-interfaces.
When implementing using Server, it is important to note that properties
changed signals are not emitted automatically; they must be emitted
manually using Server::properties_changed,
Server::track_list_properties_changed, or
Server::playlists_properties_changed, when they changed internally.
Implementations§
source§impl<T> Server<T>where
T: PlayerInterface + 'static,
impl<T> Server<T>where
T: PlayerInterface + 'static,
sourcepub async fn new(bus_name_suffix: &str, imp: T) -> Result<Self>
pub async fn new(bus_name_suffix: &str, imp: T) -> Result<Self>
Creates a new Server with the given bus name suffix and
implementation, imp, which must implement RootInterface and
PlayerInterface.
The resulting bus name will be
org.mpris.MediaPlayer2.<bus_name_suffix>, where
<bus_name_suffix>must be a unique identifier, such as one based on a
UNIX process id. For example, this could be:
org.mpris.MediaPlayer2.vlc.instance7389
Note: According to the D-Bus specification, the unique
identifier “must only contain the ASCII characters
[A-Z][a-z][0-9]_-” and “must not begin with a digit”.
sourcepub fn connection(&self) -> &Connection
Available on crate feature unstable only.
pub fn connection(&self) -> &Connection
unstable only.Returns a reference to the inner Connection.
If you needed to call this, consider filing an issue.
sourcepub async fn properties_changed(
&self,
properties: impl IntoIterator<Item = Property>
) -> Result<()>
pub async fn properties_changed( &self, properties: impl IntoIterator<Item = Property> ) -> Result<()>
Emits the PropertiesChanged signal for the given properties.
This categorizes the property in the changed or invalidated
properties as defined by the spec.
Server::track_list_properties_changed or
Server::playlists_properties_changed are used
to emit PropertiesChanged for the TrackList or Playlists
interfaces respectively.
source§impl<T> Server<T>where
T: TrackListInterface + 'static,
impl<T> Server<T>where
T: TrackListInterface + 'static,
sourcepub async fn new_with_track_list(bus_name_suffix: &str, imp: T) -> Result<Self>
pub async fn new_with_track_list(bus_name_suffix: &str, imp: T) -> Result<Self>
Creates a new Server with the given bus name suffix and
implementation, which must implement TrackListInterface in addition
to RootInterface and PlayerInterface.
See also Server::new.
sourcepub async fn track_list_emit(&self, signal: TrackListSignal) -> Result<()>
pub async fn track_list_emit(&self, signal: TrackListSignal) -> Result<()>
Emits the given signal on the TrackList interface.
sourcepub async fn track_list_properties_changed(
&self,
properties: impl IntoIterator<Item = TrackListProperty>
) -> Result<()>
pub async fn track_list_properties_changed( &self, properties: impl IntoIterator<Item = TrackListProperty> ) -> Result<()>
Emits the PropertiesChanged signal for the given properties.
This categorizes the property in the changed or invalidated
properties as defined by the spec.
source§impl<T> Server<T>where
T: PlaylistsInterface + 'static,
impl<T> Server<T>where
T: PlaylistsInterface + 'static,
sourcepub async fn new_with_playlists(bus_name_suffix: &str, imp: T) -> Result<Self>
pub async fn new_with_playlists(bus_name_suffix: &str, imp: T) -> Result<Self>
Creates a new Server with the given bus name suffix and
implementation, which must implement PlaylistsInterface in addition
to RootInterface and PlayerInterface.
See also Server::new.
sourcepub async fn playlists_emit(&self, signal: PlaylistsSignal) -> Result<()>
pub async fn playlists_emit(&self, signal: PlaylistsSignal) -> Result<()>
Emits the given signal on the Playlists interface.
sourcepub async fn playlists_properties_changed(
&self,
properties: impl IntoIterator<Item = PlaylistsProperty>
) -> Result<()>
pub async fn playlists_properties_changed( &self, properties: impl IntoIterator<Item = PlaylistsProperty> ) -> Result<()>
Emits the PropertiesChanged signal for the given properties.
This categorizes the property in the changed or invalidated
properties as defined by the spec.
source§impl<T> Server<T>where
T: TrackListInterface + PlaylistsInterface + 'static,
impl<T> Server<T>where
T: TrackListInterface + PlaylistsInterface + 'static,
sourcepub async fn new_with_all(bus_name_suffix: &str, imp: T) -> Result<Self>
pub async fn new_with_all(bus_name_suffix: &str, imp: T) -> Result<Self>
Creates a new Server with the given bus name suffix and
implementation, which must implement TrackListInterface and
PlaylistsInterface in addition to RootInterface and
PlayerInterface.
See also Server::new.