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 release_bus_name(&self) -> Result<bool>
pub async fn release_bus_name(&self) -> Result<bool>
Releases the bus name of the server.
The bus name is automatically released when the server is dropped. But if you want to release it manually, you can call this method.
Unless an error is encountered, returns Ok(true) if name was
previously registered with the bus and it has now been successfully
deregistered, Ok(false) if name was not previously registered or
already deregistered.
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.