pub struct Coordinator { /* private fields */ }
Expand description

Client abstraction for the fuchsia.hardware.display.Coordinator protocol. Instances can be safely cloned and passed across threads.

Implementations§

source§

impl Coordinator

source

pub async fn init() -> Result<Coordinator>

Establishes a connection to the display-coordinator device and initialize a Coordinator instance with the initial set of available displays. The returned Coordinator will maintain FIDL connection to the underlying device as long as it is alive or the connection is closed by the peer.

Returns an error if

  • No display-coordinator device is found within TIMEOUT.
  • An initial OnDisplaysChanged event is not received from the display driver within TIMEOUT seconds.

Current limitations:

  • This function connects to the first display-coordinator device that it observes. It currently does not support selection of a specific device if multiple display-coordinator devices are present.
source

pub async fn init_with_proxy(proxy: CoordinatorProxy) -> Result<Coordinator>

Initialize a Coordinator instance from a pre-established channel.

Returns an error if

  • An initial OnDisplaysChanged event is not received from the display driver within TIMEOUT seconds.
source

pub fn displays(&self) -> Vec<DisplayInfo>

Returns a copy of the list of displays that are currently known to be present on the system.

source

pub fn proxy(&self) -> CoordinatorProxy

Returns a clone of the underlying FIDL client proxy.

Note: This can be helpful to prevent holding the inner RwLock when awaiting a chained FIDL call over a proxy.

source

pub fn add_vsync_listener( &self, id: Option<DisplayId> ) -> Result<UnboundedReceiver<VsyncEvent>>

Tell the driver to enable vsync notifications and register a channel to listen to vsync events.

source

pub async fn handle_events(&self) -> Result<()>

Returns a Future that represents the FIDL event handling task. Once scheduled on an executor, this task will continuously handle incoming FIDL events from the display stack and the returned Future will not terminate until the FIDL channel is closed.

This task can be scheduled safely on any thread.

source

pub async fn create_layer(&self) -> Result<LayerId>

Allocates a new virtual hardware layer that is not associated with any display and has no configuration.

source

pub fn create_event(&self) -> Result<Event>

Creates and registers a zircon event with the display driver. The returned event can be used as a fence in a display configuration.

source

pub async fn apply_config( &self, configs: &[DisplayConfig] ) -> Result<(), ConfigError>

Apply a display configuration. The client is expected to receive a vsync event once the configuration is successfully applied. Returns an error if the FIDL message cannot be sent.

source

pub async fn get_recent_applied_config_stamp(&self) -> Result<u64, Error>

Get the config stamp value of the most recent applied config in apply_config. Returns an error if the FIDL message cannot be sent.

Trait Implementations§

source§

impl Clone for Coordinator

source§

fn clone(&self) -> Coordinator

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Coordinator

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Encode<Ambiguous1> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
§

impl<T> Encode<Ambiguous2> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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 T
where 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.

§

impl<T> IntoAny for T
where T: 'static + Send + Sync,

§

fn into_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Cast the given object into a dyn std::any::Any.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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