Struct mpris_server::Server
source · pub struct Server<T>where
T: PlayerInterface + 'static,{ /* 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.
Implementations§
source§impl<T> Server<T>where
T: PlayerInterface + 'static,
impl<T> Server<T>where T: PlayerInterface + 'static,
sourcepub fn new(bus_name_suffix: &str, imp: T) -> Result<Self>
pub 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.
To start the connection, Server::init must be called.
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 async fn init(&self) -> Result<()>
pub async fn init(&self) -> Result<()>
Initializes the connection.
This is a no-op if the connection has already been initialized.
This is also called automatically when emitting signals and properties changed.
sourcepub async fn connection(&self) -> Result<&Connection>
pub async fn connection(&self) -> Result<&Connection>
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 Into<BitFlags<Property>>
) -> Result<()>
pub async fn properties_changed( &self, properties: impl Into<BitFlags<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 fn new_with_track_list(bus_name_suffix: &str, imp: T) -> Result<Self>
pub 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 Into<BitFlags<TrackListProperty>>
) -> Result<()>
pub async fn track_list_properties_changed( &self, properties: impl Into<BitFlags<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 fn new_with_playlists(bus_name_suffix: &str, imp: T) -> Result<Self>
pub 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 Into<BitFlags<PlaylistsProperty>>
) -> Result<()>
pub async fn playlists_properties_changed( &self, properties: impl Into<BitFlags<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 fn new_with_all(bus_name_suffix: &str, imp: T) -> Result<Self>
pub 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.