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
.