device_monitor.rs 3.48 KB
Newer Older
Sebastian Dröge's avatar
Sebastian Dröge committed
1
// This file was generated by gir (33e9567+) from gir-files (???)
2 3 4
// DO NOT EDIT

use Bus;
Sebastian Dröge's avatar
Sebastian Dröge committed
5
use Caps;
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
use Device;
use Object;
use ffi;
use glib;
use glib::Value;
use glib::object::IsA;
use glib::translate::*;
use gobject_ffi;

glib_wrapper! {
    pub struct DeviceMonitor(Object<ffi::GstDeviceMonitor>): Object;

    match fn {
        get_type => || ffi::gst_device_monitor_get_type(),
    }
}

impl DeviceMonitor {
    pub fn new() -> DeviceMonitor {
25
        assert_initialized_main_thread!();
26 27 28 29 30 31 32 33 34 35
        unsafe {
            from_glib_full(ffi::gst_device_monitor_new())
        }
    }
}

unsafe impl Send for DeviceMonitor {}
unsafe impl Sync for DeviceMonitor {}

pub trait DeviceMonitorExt {
Sebastian Dröge's avatar
Sebastian Dröge committed
36
    fn add_filter<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b Caps>>>(&self, classes: P, caps: Q) -> u32;
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59

    fn get_bus(&self) -> Option<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) -> bool;

    fn stop(&self);

    fn get_property_show_all(&self) -> bool;

    fn set_property_show_all(&self, show_all: bool);
}

impl<O: IsA<DeviceMonitor> + IsA<glib::object::Object>> DeviceMonitorExt for O {
Sebastian Dröge's avatar
Sebastian Dröge committed
60 61 62 63 64 65 66 67 68
    fn add_filter<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b Caps>>>(&self, classes: P, caps: Q) -> u32 {
        let classes = classes.into();
        let classes = classes.to_glib_none();
        let caps = caps.into();
        let caps = caps.to_glib_none();
        unsafe {
            ffi::gst_device_monitor_add_filter(self.to_glib_none().0, classes.0, caps.0)
        }
    }
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131

    fn get_bus(&self) -> Option<Bus> {
        unsafe {
            from_glib_full(ffi::gst_device_monitor_get_bus(self.to_glib_none().0))
        }
    }

    fn get_devices(&self) -> Vec<Device> {
        unsafe {
            FromGlibPtrContainer::from_glib_full(ffi::gst_device_monitor_get_devices(self.to_glib_none().0))
        }
    }

    fn get_providers(&self) -> Vec<String> {
        unsafe {
            FromGlibPtrContainer::from_glib_full(ffi::gst_device_monitor_get_providers(self.to_glib_none().0))
        }
    }

    fn get_show_all_devices(&self) -> bool {
        unsafe {
            from_glib(ffi::gst_device_monitor_get_show_all_devices(self.to_glib_none().0))
        }
    }

    fn remove_filter(&self, filter_id: u32) -> bool {
        unsafe {
            from_glib(ffi::gst_device_monitor_remove_filter(self.to_glib_none().0, filter_id))
        }
    }

    fn set_show_all_devices(&self, show_all: bool) {
        unsafe {
            ffi::gst_device_monitor_set_show_all_devices(self.to_glib_none().0, show_all.to_glib());
        }
    }

    fn start(&self) -> bool {
        unsafe {
            from_glib(ffi::gst_device_monitor_start(self.to_glib_none().0))
        }
    }

    fn stop(&self) {
        unsafe {
            ffi::gst_device_monitor_stop(self.to_glib_none().0);
        }
    }

    fn get_property_show_all(&self) -> bool {
        let mut value = Value::from(&false);
        unsafe {
            gobject_ffi::g_object_get_property(self.to_glib_none().0, "show-all".to_glib_none().0, value.to_glib_none_mut().0);
        }
        value.get().unwrap()
    }

    fn set_property_show_all(&self, show_all: bool) {
        unsafe {
            gobject_ffi::g_object_set_property(self.to_glib_none().0, "show-all".to_glib_none().0, Value::from(&show_all).to_glib_none().0);
        }
    }
}