pub struct LocalServer<T>where
    T: LocalPlayerInterface + 'static,{ /* private fields */ }
Expand description

Local version of Server that doesn’t require T to be Send and Sync.

If your type is already Send and Sync, consider using Server instead because LocalServer has an overhead of sending messages across threads.

For more information, see Server documentations.

Implementations§

source§

impl<T> LocalServer<T>where T: LocalPlayerInterface + 'static,

source

pub fn new(bus_name_suffix: &str, imp: T) -> Self

Creates a new LocalServer with the given bus name suffix and implementation, imp, which must implement LocalRootInterface and LocalPlayerInterface.

To start the connection, LocalServer::init_and_run 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”.

source

pub fn init_and_run(&self) -> LocalServerRunTask

Returns a task that initializes the connection and run the server until the server and the task is dropped.

The task must be awaited as soon as possible after creating the server.

The returned task is no-op if the server has been ran before.

source

pub fn imp(&self) -> &T

Returns a reference to the underlying implementation.

source

pub async fn connection(&self) -> Result<&Connection>

Returns a reference to the inner Connection.

If you needed to call this, consider filing an issue.

source

pub async fn emit(&self, signal: Signal) -> Result<()>

Emits the given signal.

source

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.

LocalServer::track_list_properties_changed or LocalServer::playlists_properties_changed are used to emit PropertiesChanged for the TrackList or Playlists interfaces respectively.

source§

impl<T> LocalServer<T>where T: LocalTrackListInterface + 'static,

source

pub fn new_with_track_list(bus_name_suffix: &str, imp: T) -> Self

Creates a new LocalServer with the given bus name suffix and implementation, which must implement TrackListInterface in addition to LocalRootInterface and LocalPlayerInterface.

See also LocalServer::new.

source

pub async fn track_list_emit(&self, signal: TrackListSignal) -> Result<()>

Emits the given signal on the TrackList interface.

source

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> LocalServer<T>where T: LocalPlaylistsInterface + 'static,

source

pub fn new_with_playlists(bus_name_suffix: &str, imp: T) -> Self

Creates a new LocalServer with the given bus name suffix and implementation, which must implement LocalPlaylistsInterface in addition to LocalRootInterface and LocalPlayerInterface.

See also LocalServer::new.

source

pub async fn playlists_emit(&self, signal: PlaylistsSignal) -> Result<()>

Emits the given signal on the Playlists interface.

source

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> LocalServer<T>where T: LocalTrackListInterface + LocalPlaylistsInterface + 'static,

source

pub fn new_with_all(bus_name_suffix: &str, imp: T) -> Self

Creates a new LocalServer with the given bus name suffix and implementation, which must implement LocalTrackListInterface and LocalPlaylistsInterface in addition to LocalRootInterface and LocalPlayerInterface.

See also LocalServer::new.

Trait Implementations§

source§

impl<T> Debug for LocalServer<T>where T: LocalPlayerInterface + 'static,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for LocalServer<T>

§

impl<T> !Send for LocalServer<T>

§

impl<T> !Sync for LocalServer<T>

§

impl<T> Unpin for LocalServer<T>

§

impl<T> !UnwindSafe for LocalServer<T>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more