gstreamer/auto/
control_binding.rs1use crate::{ffi, ClockTime, Object};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "GstControlBinding")]
11 pub struct ControlBinding(Object<ffi::GstControlBinding, ffi::GstControlBindingClass>) @extends Object;
12
13 match fn {
14 type_ => || ffi::gst_control_binding_get_type(),
15 }
16}
17
18impl ControlBinding {
19 pub const NONE: Option<&'static ControlBinding> = None;
20}
21
22unsafe impl Send for ControlBinding {}
23unsafe impl Sync for ControlBinding {}
24
25pub trait ControlBindingExt: IsA<ControlBinding> + 'static {
26 #[doc(alias = "gst_control_binding_get_value")]
27 #[doc(alias = "get_value")]
28 fn value(&self, timestamp: ClockTime) -> Option<glib::Value> {
29 unsafe {
30 from_glib_full(ffi::gst_control_binding_get_value(
31 self.as_ref().to_glib_none().0,
32 timestamp.into_glib(),
33 ))
34 }
35 }
36
37 #[doc(alias = "gst_control_binding_is_disabled")]
44 fn is_disabled(&self) -> bool {
45 unsafe {
46 from_glib(ffi::gst_control_binding_is_disabled(
47 self.as_ref().to_glib_none().0,
48 ))
49 }
50 }
51
52 #[doc(alias = "gst_control_binding_set_disabled")]
53 fn set_disabled(&self, disabled: bool) {
54 unsafe {
55 ffi::gst_control_binding_set_disabled(
56 self.as_ref().to_glib_none().0,
57 disabled.into_glib(),
58 );
59 }
60 }
61
62 #[doc(alias = "gst_control_binding_sync_values")]
63 fn sync_values(
64 &self,
65 object: &impl IsA<Object>,
66 timestamp: ClockTime,
67 last_sync: impl Into<Option<ClockTime>>,
68 ) -> bool {
69 unsafe {
70 from_glib(ffi::gst_control_binding_sync_values(
71 self.as_ref().to_glib_none().0,
72 object.as_ref().to_glib_none().0,
73 timestamp.into_glib(),
74 last_sync.into().into_glib(),
75 ))
76 }
77 }
78
79 fn object(&self) -> Option<Object> {
80 ObjectExt::property(self.as_ref(), "object")
81 }
82}
83
84impl<O: IsA<ControlBinding>> ControlBindingExt for O {}