Trait gstreamer::DeviceMonitorExt[][src]

pub trait DeviceMonitorExt {
    fn add_filter<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b Caps>>>(
        classes: P,
        caps: Q
    ) -> u32;
fn get_bus(&self) -> Bus;
fn get_devices(&self) -> Vec<Device>;
fn get_providers(&self) -> Vec<String>;
fn get_show_all_devices(&self) -> bool;
fn remove_filter(&self, filter_id: u32) -> bool;
fn set_show_all_devices(&self, show_all: bool);
fn start(&self) -> Result<(), BoolError>;
fn stop(&self);
fn get_property_show_all(&self) -> bool;
fn set_property_show_all(&self, show_all: bool);
fn connect_property_show_all_notify<F: Fn(&Self) + Send + Sync + 'static>(
        f: F
    ) -> SignalHandlerId; }

Trait containing all DeviceMonitor methods.



Required Methods

Adds a filter for which Device will be monitored, any device that matches all these classes and the Caps will be returned.

If this function is called multiple times to add more filters, each will be matched independently. That is, adding more filters will not further restrict what devices are matched.

The Caps supported by the device as returned by DeviceExt::get_caps are not intersected with caps filters added using this function.

Filters must be added before the DeviceMonitor is started.


device classes to use as filter or None for any class


the Caps to filter or None for ANY


The id of the new filter or 0 if no provider matched the filter's classes.

Gets the Bus of this DeviceMonitor


a Bus

Important traits for Vec<u8>

Gets a list of devices from all of the relevant monitors. This may actually probe the hardware if the monitor is not currently started.


a glib::List of Device

Important traits for Vec<u8>

Get a list of the currently selected device provider factories.



A list of device provider factory names that are currently being monitored by self or None when nothing is being monitored.

Get if self is curretly showing all devices, even those from hidden providers.


true when all devices will be shown.

Removes a filter from the DeviceMonitor using the id that was returned by DeviceMonitorExt::add_filter.


the id of the filter


true of the filter id was valid, false otherwise

Set if all devices should be visible, even those devices from hidden providers. Setting show_all to true might show some devices multiple times.


show all devices

Starts monitoring the devices, one this has succeeded, the MessageType::DeviceAdded and MessageType::DeviceRemoved messages will be emitted on the bus when the list of devices changes.


true if the device monitoring could be started

Stops monitoring the devices.