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::translate::*;
8
9glib::wrapper! {
10 #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
11 pub struct AudioStreamAlign(Boxed<ffi::GstAudioStreamAlign>);
12
13 match fn {
14 copy => |ptr| ffi::gst_audio_stream_align_copy(ptr),
15 free => |ptr| ffi::gst_audio_stream_align_free(ptr),
16 type_ => || ffi::gst_audio_stream_align_get_type(),
17 }
18}
19
20impl AudioStreamAlign {
21 #[doc(alias = "gst_audio_stream_align_new")]
22 pub fn new(
23 rate: i32,
24 alignment_threshold: gst::ClockTime,
25 discont_wait: gst::ClockTime,
26 ) -> AudioStreamAlign {
27 assert_initialized_main_thread!();
28 unsafe {
29 from_glib_full(ffi::gst_audio_stream_align_new(
30 rate,
31 alignment_threshold.into_glib(),
32 discont_wait.into_glib(),
33 ))
34 }
35 }
36
37 #[doc(alias = "gst_audio_stream_align_get_alignment_threshold")]
38 #[doc(alias = "get_alignment_threshold")]
39 pub fn alignment_threshold(&self) -> gst::ClockTime {
40 unsafe {
41 try_from_glib(ffi::gst_audio_stream_align_get_alignment_threshold(
42 self.to_glib_none().0,
43 ))
44 .expect("mandatory glib value is None")
45 }
46 }
47
48 #[doc(alias = "gst_audio_stream_align_get_discont_wait")]
49 #[doc(alias = "get_discont_wait")]
50 pub fn discont_wait(&self) -> gst::ClockTime {
51 unsafe {
52 try_from_glib(ffi::gst_audio_stream_align_get_discont_wait(
53 self.to_glib_none().0,
54 ))
55 .expect("mandatory glib value is None")
56 }
57 }
58
59 #[doc(alias = "gst_audio_stream_align_get_rate")]
60 #[doc(alias = "get_rate")]
61 pub fn rate(&self) -> i32 {
62 unsafe { ffi::gst_audio_stream_align_get_rate(self.to_glib_none().0) }
63 }
64
65 #[doc(alias = "gst_audio_stream_align_get_samples_since_discont")]
66 #[doc(alias = "get_samples_since_discont")]
67 pub fn samples_since_discont(&self) -> u64 {
68 unsafe { ffi::gst_audio_stream_align_get_samples_since_discont(self.to_glib_none().0) }
69 }
70
71 #[doc(alias = "gst_audio_stream_align_get_timestamp_at_discont")]
72 #[doc(alias = "get_timestamp_at_discont")]
73 pub fn timestamp_at_discont(&self) -> Option<gst::ClockTime> {
74 unsafe {
75 from_glib(ffi::gst_audio_stream_align_get_timestamp_at_discont(
76 self.to_glib_none().0,
77 ))
78 }
79 }
80
81 #[doc(alias = "gst_audio_stream_align_mark_discont")]
82 pub fn mark_discont(&mut self) {
83 unsafe {
84 ffi::gst_audio_stream_align_mark_discont(self.to_glib_none_mut().0);
85 }
86 }
87
88 #[doc(alias = "gst_audio_stream_align_set_alignment_threshold")]
89 pub fn set_alignment_threshold(&mut self, alignment_threshold: gst::ClockTime) {
90 unsafe {
91 ffi::gst_audio_stream_align_set_alignment_threshold(
92 self.to_glib_none_mut().0,
93 alignment_threshold.into_glib(),
94 );
95 }
96 }
97
98 #[doc(alias = "gst_audio_stream_align_set_discont_wait")]
99 pub fn set_discont_wait(&mut self, discont_wait: gst::ClockTime) {
100 unsafe {
101 ffi::gst_audio_stream_align_set_discont_wait(
102 self.to_glib_none_mut().0,
103 discont_wait.into_glib(),
104 );
105 }
106 }
107
108 #[doc(alias = "gst_audio_stream_align_set_rate")]
109 pub fn set_rate(&mut self, rate: i32) {
110 unsafe {
111 ffi::gst_audio_stream_align_set_rate(self.to_glib_none_mut().0, rate);
112 }
113 }
114}
115
116unsafe impl Send for AudioStreamAlign {}
117unsafe impl Sync for AudioStreamAlign {}
118