gstreamer_audio/auto/
audio_base_src.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6use crate::ffi;
7use glib::{
8    prelude::*,
9    signal::{connect_raw, SignalHandlerId},
10    translate::*,
11};
12use std::boxed::Box as Box_;
13
14glib::wrapper! {
15    #[doc(alias = "GstAudioBaseSrc")]
16    pub struct AudioBaseSrc(Object<ffi::GstAudioBaseSrc, ffi::GstAudioBaseSrcClass>) @extends gst_base::BaseSrc, gst::Element, gst::Object;
17
18    match fn {
19        type_ => || ffi::gst_audio_base_src_get_type(),
20    }
21}
22
23impl AudioBaseSrc {
24    pub const NONE: Option<&'static AudioBaseSrc> = None;
25}
26
27unsafe impl Send for AudioBaseSrc {}
28unsafe impl Sync for AudioBaseSrc {}
29
30mod sealed {
31    pub trait Sealed {}
32    impl<T: super::IsA<super::AudioBaseSrc>> Sealed for T {}
33}
34
35pub trait AudioBaseSrcExt: IsA<AudioBaseSrc> + sealed::Sealed + 'static {
36    //#[doc(alias = "gst_audio_base_src_create_ringbuffer")]
37    //fn create_ringbuffer(&self) -> /*Ignored*/Option<AudioRingBuffer> {
38    //    unsafe { TODO: call ffi:gst_audio_base_src_create_ringbuffer() }
39    //}
40
41    #[doc(alias = "gst_audio_base_src_get_provide_clock")]
42    #[doc(alias = "get_provide_clock")]
43    #[doc(alias = "provide-clock")]
44    fn is_provide_clock(&self) -> bool {
45        unsafe {
46            from_glib(ffi::gst_audio_base_src_get_provide_clock(
47                self.as_ref().to_glib_none().0,
48            ))
49        }
50    }
51
52    //#[doc(alias = "gst_audio_base_src_get_slave_method")]
53    //#[doc(alias = "get_slave_method")]
54    //#[doc(alias = "slave-method")]
55    //fn slave_method(&self) -> /*Ignored*/AudioBaseSrcSlaveMethod {
56    //    unsafe { TODO: call ffi:gst_audio_base_src_get_slave_method() }
57    //}
58
59    #[doc(alias = "gst_audio_base_src_set_provide_clock")]
60    #[doc(alias = "provide-clock")]
61    fn set_provide_clock(&self, provide: bool) {
62        unsafe {
63            ffi::gst_audio_base_src_set_provide_clock(
64                self.as_ref().to_glib_none().0,
65                provide.into_glib(),
66            );
67        }
68    }
69
70    //#[doc(alias = "gst_audio_base_src_set_slave_method")]
71    //#[doc(alias = "slave-method")]
72    //fn set_slave_method(&self, method: /*Ignored*/AudioBaseSrcSlaveMethod) {
73    //    unsafe { TODO: call ffi:gst_audio_base_src_set_slave_method() }
74    //}
75
76    #[doc(alias = "actual-buffer-time")]
77    fn actual_buffer_time(&self) -> i64 {
78        ObjectExt::property(self.as_ref(), "actual-buffer-time")
79    }
80
81    #[doc(alias = "actual-latency-time")]
82    fn actual_latency_time(&self) -> i64 {
83        ObjectExt::property(self.as_ref(), "actual-latency-time")
84    }
85
86    #[doc(alias = "buffer-time")]
87    fn buffer_time(&self) -> i64 {
88        ObjectExt::property(self.as_ref(), "buffer-time")
89    }
90
91    #[doc(alias = "buffer-time")]
92    fn set_buffer_time(&self, buffer_time: i64) {
93        ObjectExt::set_property(self.as_ref(), "buffer-time", buffer_time)
94    }
95
96    #[doc(alias = "latency-time")]
97    fn latency_time(&self) -> i64 {
98        ObjectExt::property(self.as_ref(), "latency-time")
99    }
100
101    #[doc(alias = "latency-time")]
102    fn set_latency_time(&self, latency_time: i64) {
103        ObjectExt::set_property(self.as_ref(), "latency-time", latency_time)
104    }
105
106    #[doc(alias = "actual-buffer-time")]
107    fn connect_actual_buffer_time_notify<F: Fn(&Self) + Send + Sync + 'static>(
108        &self,
109        f: F,
110    ) -> SignalHandlerId {
111        unsafe extern "C" fn notify_actual_buffer_time_trampoline<
112            P: IsA<AudioBaseSrc>,
113            F: Fn(&P) + Send + Sync + 'static,
114        >(
115            this: *mut ffi::GstAudioBaseSrc,
116            _param_spec: glib::ffi::gpointer,
117            f: glib::ffi::gpointer,
118        ) {
119            let f: &F = &*(f as *const F);
120            f(AudioBaseSrc::from_glib_borrow(this).unsafe_cast_ref())
121        }
122        unsafe {
123            let f: Box_<F> = Box_::new(f);
124            connect_raw(
125                self.as_ptr() as *mut _,
126                b"notify::actual-buffer-time\0".as_ptr() as *const _,
127                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
128                    notify_actual_buffer_time_trampoline::<Self, F> as *const (),
129                )),
130                Box_::into_raw(f),
131            )
132        }
133    }
134
135    #[doc(alias = "actual-latency-time")]
136    fn connect_actual_latency_time_notify<F: Fn(&Self) + Send + Sync + 'static>(
137        &self,
138        f: F,
139    ) -> SignalHandlerId {
140        unsafe extern "C" fn notify_actual_latency_time_trampoline<
141            P: IsA<AudioBaseSrc>,
142            F: Fn(&P) + Send + Sync + 'static,
143        >(
144            this: *mut ffi::GstAudioBaseSrc,
145            _param_spec: glib::ffi::gpointer,
146            f: glib::ffi::gpointer,
147        ) {
148            let f: &F = &*(f as *const F);
149            f(AudioBaseSrc::from_glib_borrow(this).unsafe_cast_ref())
150        }
151        unsafe {
152            let f: Box_<F> = Box_::new(f);
153            connect_raw(
154                self.as_ptr() as *mut _,
155                b"notify::actual-latency-time\0".as_ptr() as *const _,
156                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
157                    notify_actual_latency_time_trampoline::<Self, F> as *const (),
158                )),
159                Box_::into_raw(f),
160            )
161        }
162    }
163
164    #[doc(alias = "buffer-time")]
165    fn connect_buffer_time_notify<F: Fn(&Self) + Send + Sync + 'static>(
166        &self,
167        f: F,
168    ) -> SignalHandlerId {
169        unsafe extern "C" fn notify_buffer_time_trampoline<
170            P: IsA<AudioBaseSrc>,
171            F: Fn(&P) + Send + Sync + 'static,
172        >(
173            this: *mut ffi::GstAudioBaseSrc,
174            _param_spec: glib::ffi::gpointer,
175            f: glib::ffi::gpointer,
176        ) {
177            let f: &F = &*(f as *const F);
178            f(AudioBaseSrc::from_glib_borrow(this).unsafe_cast_ref())
179        }
180        unsafe {
181            let f: Box_<F> = Box_::new(f);
182            connect_raw(
183                self.as_ptr() as *mut _,
184                b"notify::buffer-time\0".as_ptr() as *const _,
185                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
186                    notify_buffer_time_trampoline::<Self, F> as *const (),
187                )),
188                Box_::into_raw(f),
189            )
190        }
191    }
192
193    #[doc(alias = "latency-time")]
194    fn connect_latency_time_notify<F: Fn(&Self) + Send + Sync + 'static>(
195        &self,
196        f: F,
197    ) -> SignalHandlerId {
198        unsafe extern "C" fn notify_latency_time_trampoline<
199            P: IsA<AudioBaseSrc>,
200            F: Fn(&P) + Send + Sync + 'static,
201        >(
202            this: *mut ffi::GstAudioBaseSrc,
203            _param_spec: glib::ffi::gpointer,
204            f: glib::ffi::gpointer,
205        ) {
206            let f: &F = &*(f as *const F);
207            f(AudioBaseSrc::from_glib_borrow(this).unsafe_cast_ref())
208        }
209        unsafe {
210            let f: Box_<F> = Box_::new(f);
211            connect_raw(
212                self.as_ptr() as *mut _,
213                b"notify::latency-time\0".as_ptr() as *const _,
214                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
215                    notify_latency_time_trampoline::<Self, F> as *const (),
216                )),
217                Box_::into_raw(f),
218            )
219        }
220    }
221
222    #[doc(alias = "provide-clock")]
223    fn connect_provide_clock_notify<F: Fn(&Self) + Send + Sync + 'static>(
224        &self,
225        f: F,
226    ) -> SignalHandlerId {
227        unsafe extern "C" fn notify_provide_clock_trampoline<
228            P: IsA<AudioBaseSrc>,
229            F: Fn(&P) + Send + Sync + 'static,
230        >(
231            this: *mut ffi::GstAudioBaseSrc,
232            _param_spec: glib::ffi::gpointer,
233            f: glib::ffi::gpointer,
234        ) {
235            let f: &F = &*(f as *const F);
236            f(AudioBaseSrc::from_glib_borrow(this).unsafe_cast_ref())
237        }
238        unsafe {
239            let f: Box_<F> = Box_::new(f);
240            connect_raw(
241                self.as_ptr() as *mut _,
242                b"notify::provide-clock\0".as_ptr() as *const _,
243                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
244                    notify_provide_clock_trampoline::<Self, F> as *const (),
245                )),
246                Box_::into_raw(f),
247            )
248        }
249    }
250
251    #[doc(alias = "slave-method")]
252    fn connect_slave_method_notify<F: Fn(&Self) + Send + Sync + 'static>(
253        &self,
254        f: F,
255    ) -> SignalHandlerId {
256        unsafe extern "C" fn notify_slave_method_trampoline<
257            P: IsA<AudioBaseSrc>,
258            F: Fn(&P) + Send + Sync + 'static,
259        >(
260            this: *mut ffi::GstAudioBaseSrc,
261            _param_spec: glib::ffi::gpointer,
262            f: glib::ffi::gpointer,
263        ) {
264            let f: &F = &*(f as *const F);
265            f(AudioBaseSrc::from_glib_borrow(this).unsafe_cast_ref())
266        }
267        unsafe {
268            let f: Box_<F> = Box_::new(f);
269            connect_raw(
270                self.as_ptr() as *mut _,
271                b"notify::slave-method\0".as_ptr() as *const _,
272                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
273                    notify_slave_method_trampoline::<Self, F> as *const (),
274                )),
275                Box_::into_raw(f),
276            )
277        }
278    }
279}
280
281impl<O: IsA<AudioBaseSrc>> AudioBaseSrcExt for O {}