gstreamer/
control_binding.rs1use glib::{prelude::*, translate::*};
4
5use crate::{ffi, ClockTime, ControlBinding};
6
7pub trait ControlBindingExtManual: IsA<ControlBinding> + 'static {
8 fn property_name(&self) -> &glib::GStr {
9 unsafe {
10 let ptr: *mut ffi::GstControlBinding = self.as_ref().to_glib_none().0;
11 glib::GStr::from_ptr((*ptr).name)
12 }
13 }
14
15 fn property_spec(&self) -> &glib::ParamSpec {
16 unsafe {
17 let ptr: *mut ffi::GstControlBinding = self.as_ref().to_glib_none().0;
18 glib::ParamSpec::from_glib_ptr_borrow(&(*ptr).pspec)
19 }
20 }
21
22 #[doc(alias = "get_g_value_array")]
23 #[doc(alias = "gst_control_binding_get_g_value_array")]
24 fn g_value_array(
25 &self,
26 timestamp: ClockTime,
27 interval: ClockTime,
28 values: &mut [glib::Value],
29 ) -> Result<(), glib::error::BoolError> {
30 let n_values = values.len() as u32;
31 unsafe {
32 glib::result_from_gboolean!(
33 crate::ffi::gst_control_binding_get_g_value_array(
34 self.as_ref().to_glib_none().0,
35 timestamp.into_glib(),
36 interval.into_glib(),
37 n_values,
38 values.as_mut_ptr() as *mut glib::gobject_ffi::GValue,
39 ),
40 "Failed to get value array"
41 )
42 }
43 }
44}
45
46impl<O: IsA<ControlBinding>> ControlBindingExtManual for O {}