1use crate::ffi;
7use glib::{prelude::*, translate::*};
8
9#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
11#[non_exhaustive]
12#[doc(alias = "GstAudioDitherMethod")]
13pub enum AudioDitherMethod {
14 #[doc(alias = "GST_AUDIO_DITHER_NONE")]
16 None,
17 #[doc(alias = "GST_AUDIO_DITHER_RPDF")]
19 Rpdf,
20 #[doc(alias = "GST_AUDIO_DITHER_TPDF")]
22 Tpdf,
23 #[doc(alias = "GST_AUDIO_DITHER_TPDF_HF")]
25 TpdfHf,
26 #[doc(hidden)]
27 __Unknown(i32),
28}
29
30#[doc(hidden)]
31impl IntoGlib for AudioDitherMethod {
32 type GlibType = ffi::GstAudioDitherMethod;
33
34 #[inline]
35 fn into_glib(self) -> ffi::GstAudioDitherMethod {
36 match self {
37 Self::None => ffi::GST_AUDIO_DITHER_NONE,
38 Self::Rpdf => ffi::GST_AUDIO_DITHER_RPDF,
39 Self::Tpdf => ffi::GST_AUDIO_DITHER_TPDF,
40 Self::TpdfHf => ffi::GST_AUDIO_DITHER_TPDF_HF,
41 Self::__Unknown(value) => value,
42 }
43 }
44}
45
46#[doc(hidden)]
47impl FromGlib<ffi::GstAudioDitherMethod> for AudioDitherMethod {
48 #[inline]
49 unsafe fn from_glib(value: ffi::GstAudioDitherMethod) -> Self {
50 skip_assert_initialized!();
51
52 match value {
53 ffi::GST_AUDIO_DITHER_NONE => Self::None,
54 ffi::GST_AUDIO_DITHER_RPDF => Self::Rpdf,
55 ffi::GST_AUDIO_DITHER_TPDF => Self::Tpdf,
56 ffi::GST_AUDIO_DITHER_TPDF_HF => Self::TpdfHf,
57 value => Self::__Unknown(value),
58 }
59 }
60}
61
62impl StaticType for AudioDitherMethod {
63 #[inline]
64 #[doc(alias = "gst_audio_dither_method_get_type")]
65 fn static_type() -> glib::Type {
66 unsafe { from_glib(ffi::gst_audio_dither_method_get_type()) }
67 }
68}
69
70impl glib::HasParamSpec for AudioDitherMethod {
71 type ParamSpec = glib::ParamSpecEnum;
72 type SetValue = Self;
73 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
74
75 fn param_spec_builder() -> Self::BuilderFn {
76 Self::ParamSpec::builder_with_default
77 }
78}
79
80impl glib::value::ValueType for AudioDitherMethod {
81 type Type = Self;
82}
83
84unsafe impl<'a> glib::value::FromValue<'a> for AudioDitherMethod {
85 type Checker = glib::value::GenericValueTypeChecker<Self>;
86
87 #[inline]
88 unsafe fn from_value(value: &'a glib::Value) -> Self {
89 skip_assert_initialized!();
90 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
91 }
92}
93
94impl ToValue for AudioDitherMethod {
95 #[inline]
96 fn to_value(&self) -> glib::Value {
97 let mut value = glib::Value::for_value_type::<Self>();
98 unsafe {
99 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
100 }
101 value
102 }
103
104 #[inline]
105 fn value_type(&self) -> glib::Type {
106 Self::static_type()
107 }
108}
109
110impl From<AudioDitherMethod> for glib::Value {
111 #[inline]
112 fn from(v: AudioDitherMethod) -> Self {
113 skip_assert_initialized!();
114 ToValue::to_value(&v)
115 }
116}
117
118#[derive(Debug, Eq, PartialEq, Hash, Clone, Copy)]
120#[non_exhaustive]
121#[doc(alias = "GstAudioFormat")]
122pub enum AudioFormat {
123 #[doc(alias = "GST_AUDIO_FORMAT_UNKNOWN")]
125 Unknown,
126 #[doc(alias = "GST_AUDIO_FORMAT_ENCODED")]
128 Encoded,
129 #[doc(alias = "GST_AUDIO_FORMAT_S8")]
131 S8,
132 #[doc(alias = "GST_AUDIO_FORMAT_U8")]
134 U8,
135 #[doc(alias = "GST_AUDIO_FORMAT_S16LE")]
137 S16le,
138 #[doc(alias = "GST_AUDIO_FORMAT_S16BE")]
140 S16be,
141 #[doc(alias = "GST_AUDIO_FORMAT_U16LE")]
143 U16le,
144 #[doc(alias = "GST_AUDIO_FORMAT_U16BE")]
146 U16be,
147 #[doc(alias = "GST_AUDIO_FORMAT_S24_32LE")]
149 S2432le,
150 #[doc(alias = "GST_AUDIO_FORMAT_S24_32BE")]
152 S2432be,
153 #[doc(alias = "GST_AUDIO_FORMAT_U24_32LE")]
155 U2432le,
156 #[doc(alias = "GST_AUDIO_FORMAT_U24_32BE")]
158 U2432be,
159 #[doc(alias = "GST_AUDIO_FORMAT_S32LE")]
161 S32le,
162 #[doc(alias = "GST_AUDIO_FORMAT_S32BE")]
164 S32be,
165 #[doc(alias = "GST_AUDIO_FORMAT_U32LE")]
167 U32le,
168 #[doc(alias = "GST_AUDIO_FORMAT_U32BE")]
170 U32be,
171 #[doc(alias = "GST_AUDIO_FORMAT_S24LE")]
173 S24le,
174 #[doc(alias = "GST_AUDIO_FORMAT_S24BE")]
176 S24be,
177 #[doc(alias = "GST_AUDIO_FORMAT_U24LE")]
179 U24le,
180 #[doc(alias = "GST_AUDIO_FORMAT_U24BE")]
182 U24be,
183 #[doc(alias = "GST_AUDIO_FORMAT_S20LE")]
185 S20le,
186 #[doc(alias = "GST_AUDIO_FORMAT_S20BE")]
188 S20be,
189 #[doc(alias = "GST_AUDIO_FORMAT_U20LE")]
191 U20le,
192 #[doc(alias = "GST_AUDIO_FORMAT_U20BE")]
194 U20be,
195 #[doc(alias = "GST_AUDIO_FORMAT_S18LE")]
197 S18le,
198 #[doc(alias = "GST_AUDIO_FORMAT_S18BE")]
200 S18be,
201 #[doc(alias = "GST_AUDIO_FORMAT_U18LE")]
203 U18le,
204 #[doc(alias = "GST_AUDIO_FORMAT_U18BE")]
206 U18be,
207 #[doc(alias = "GST_AUDIO_FORMAT_F32LE")]
209 F32le,
210 #[doc(alias = "GST_AUDIO_FORMAT_F32BE")]
212 F32be,
213 #[doc(alias = "GST_AUDIO_FORMAT_F64LE")]
215 F64le,
216 #[doc(alias = "GST_AUDIO_FORMAT_F64BE")]
218 F64be,
219 #[doc(hidden)]
220 __Unknown(i32),
221}
222
223impl AudioFormat {
224 #[doc(alias = "gst_audio_format_from_string")]
225 pub fn from_string(format: &str) -> AudioFormat {
226 assert_initialized_main_thread!();
227 unsafe { from_glib(ffi::gst_audio_format_from_string(format.to_glib_none().0)) }
228 }
229}
230
231impl std::fmt::Display for AudioFormat {
232 #[inline]
233 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
234 f.write_str(&self.to_str())
235 }
236}
237
238#[doc(hidden)]
239impl IntoGlib for AudioFormat {
240 type GlibType = ffi::GstAudioFormat;
241
242 fn into_glib(self) -> ffi::GstAudioFormat {
243 match self {
244 Self::Unknown => ffi::GST_AUDIO_FORMAT_UNKNOWN,
245 Self::Encoded => ffi::GST_AUDIO_FORMAT_ENCODED,
246 Self::S8 => ffi::GST_AUDIO_FORMAT_S8,
247 Self::U8 => ffi::GST_AUDIO_FORMAT_U8,
248 Self::S16le => ffi::GST_AUDIO_FORMAT_S16LE,
249 Self::S16be => ffi::GST_AUDIO_FORMAT_S16BE,
250 Self::U16le => ffi::GST_AUDIO_FORMAT_U16LE,
251 Self::U16be => ffi::GST_AUDIO_FORMAT_U16BE,
252 Self::S2432le => ffi::GST_AUDIO_FORMAT_S24_32LE,
253 Self::S2432be => ffi::GST_AUDIO_FORMAT_S24_32BE,
254 Self::U2432le => ffi::GST_AUDIO_FORMAT_U24_32LE,
255 Self::U2432be => ffi::GST_AUDIO_FORMAT_U24_32BE,
256 Self::S32le => ffi::GST_AUDIO_FORMAT_S32LE,
257 Self::S32be => ffi::GST_AUDIO_FORMAT_S32BE,
258 Self::U32le => ffi::GST_AUDIO_FORMAT_U32LE,
259 Self::U32be => ffi::GST_AUDIO_FORMAT_U32BE,
260 Self::S24le => ffi::GST_AUDIO_FORMAT_S24LE,
261 Self::S24be => ffi::GST_AUDIO_FORMAT_S24BE,
262 Self::U24le => ffi::GST_AUDIO_FORMAT_U24LE,
263 Self::U24be => ffi::GST_AUDIO_FORMAT_U24BE,
264 Self::S20le => ffi::GST_AUDIO_FORMAT_S20LE,
265 Self::S20be => ffi::GST_AUDIO_FORMAT_S20BE,
266 Self::U20le => ffi::GST_AUDIO_FORMAT_U20LE,
267 Self::U20be => ffi::GST_AUDIO_FORMAT_U20BE,
268 Self::S18le => ffi::GST_AUDIO_FORMAT_S18LE,
269 Self::S18be => ffi::GST_AUDIO_FORMAT_S18BE,
270 Self::U18le => ffi::GST_AUDIO_FORMAT_U18LE,
271 Self::U18be => ffi::GST_AUDIO_FORMAT_U18BE,
272 Self::F32le => ffi::GST_AUDIO_FORMAT_F32LE,
273 Self::F32be => ffi::GST_AUDIO_FORMAT_F32BE,
274 Self::F64le => ffi::GST_AUDIO_FORMAT_F64LE,
275 Self::F64be => ffi::GST_AUDIO_FORMAT_F64BE,
276 Self::__Unknown(value) => value,
277 }
278 }
279}
280
281#[doc(hidden)]
282impl FromGlib<ffi::GstAudioFormat> for AudioFormat {
283 unsafe fn from_glib(value: ffi::GstAudioFormat) -> Self {
284 skip_assert_initialized!();
285
286 match value {
287 ffi::GST_AUDIO_FORMAT_UNKNOWN => Self::Unknown,
288 ffi::GST_AUDIO_FORMAT_ENCODED => Self::Encoded,
289 ffi::GST_AUDIO_FORMAT_S8 => Self::S8,
290 ffi::GST_AUDIO_FORMAT_U8 => Self::U8,
291 ffi::GST_AUDIO_FORMAT_S16LE => Self::S16le,
292 ffi::GST_AUDIO_FORMAT_S16BE => Self::S16be,
293 ffi::GST_AUDIO_FORMAT_U16LE => Self::U16le,
294 ffi::GST_AUDIO_FORMAT_U16BE => Self::U16be,
295 ffi::GST_AUDIO_FORMAT_S24_32LE => Self::S2432le,
296 ffi::GST_AUDIO_FORMAT_S24_32BE => Self::S2432be,
297 ffi::GST_AUDIO_FORMAT_U24_32LE => Self::U2432le,
298 ffi::GST_AUDIO_FORMAT_U24_32BE => Self::U2432be,
299 ffi::GST_AUDIO_FORMAT_S32LE => Self::S32le,
300 ffi::GST_AUDIO_FORMAT_S32BE => Self::S32be,
301 ffi::GST_AUDIO_FORMAT_U32LE => Self::U32le,
302 ffi::GST_AUDIO_FORMAT_U32BE => Self::U32be,
303 ffi::GST_AUDIO_FORMAT_S24LE => Self::S24le,
304 ffi::GST_AUDIO_FORMAT_S24BE => Self::S24be,
305 ffi::GST_AUDIO_FORMAT_U24LE => Self::U24le,
306 ffi::GST_AUDIO_FORMAT_U24BE => Self::U24be,
307 ffi::GST_AUDIO_FORMAT_S20LE => Self::S20le,
308 ffi::GST_AUDIO_FORMAT_S20BE => Self::S20be,
309 ffi::GST_AUDIO_FORMAT_U20LE => Self::U20le,
310 ffi::GST_AUDIO_FORMAT_U20BE => Self::U20be,
311 ffi::GST_AUDIO_FORMAT_S18LE => Self::S18le,
312 ffi::GST_AUDIO_FORMAT_S18BE => Self::S18be,
313 ffi::GST_AUDIO_FORMAT_U18LE => Self::U18le,
314 ffi::GST_AUDIO_FORMAT_U18BE => Self::U18be,
315 ffi::GST_AUDIO_FORMAT_F32LE => Self::F32le,
316 ffi::GST_AUDIO_FORMAT_F32BE => Self::F32be,
317 ffi::GST_AUDIO_FORMAT_F64LE => Self::F64le,
318 ffi::GST_AUDIO_FORMAT_F64BE => Self::F64be,
319 value => Self::__Unknown(value),
320 }
321 }
322}
323
324impl StaticType for AudioFormat {
325 #[inline]
326 #[doc(alias = "gst_audio_format_get_type")]
327 fn static_type() -> glib::Type {
328 unsafe { from_glib(ffi::gst_audio_format_get_type()) }
329 }
330}
331
332impl glib::HasParamSpec for AudioFormat {
333 type ParamSpec = glib::ParamSpecEnum;
334 type SetValue = Self;
335 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
336
337 fn param_spec_builder() -> Self::BuilderFn {
338 Self::ParamSpec::builder_with_default
339 }
340}
341
342impl glib::value::ValueType for AudioFormat {
343 type Type = Self;
344}
345
346unsafe impl<'a> glib::value::FromValue<'a> for AudioFormat {
347 type Checker = glib::value::GenericValueTypeChecker<Self>;
348
349 #[inline]
350 unsafe fn from_value(value: &'a glib::Value) -> Self {
351 skip_assert_initialized!();
352 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
353 }
354}
355
356impl ToValue for AudioFormat {
357 #[inline]
358 fn to_value(&self) -> glib::Value {
359 let mut value = glib::Value::for_value_type::<Self>();
360 unsafe {
361 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
362 }
363 value
364 }
365
366 #[inline]
367 fn value_type(&self) -> glib::Type {
368 Self::static_type()
369 }
370}
371
372impl From<AudioFormat> for glib::Value {
373 #[inline]
374 fn from(v: AudioFormat) -> Self {
375 skip_assert_initialized!();
376 ToValue::to_value(&v)
377 }
378}
379
380#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
382#[non_exhaustive]
383#[doc(alias = "GstAudioLayout")]
384pub enum AudioLayout {
385 #[doc(alias = "GST_AUDIO_LAYOUT_INTERLEAVED")]
387 Interleaved,
388 #[doc(alias = "GST_AUDIO_LAYOUT_NON_INTERLEAVED")]
390 NonInterleaved,
391 #[doc(hidden)]
392 __Unknown(i32),
393}
394
395#[doc(hidden)]
396impl IntoGlib for AudioLayout {
397 type GlibType = ffi::GstAudioLayout;
398
399 #[inline]
400 fn into_glib(self) -> ffi::GstAudioLayout {
401 match self {
402 Self::Interleaved => ffi::GST_AUDIO_LAYOUT_INTERLEAVED,
403 Self::NonInterleaved => ffi::GST_AUDIO_LAYOUT_NON_INTERLEAVED,
404 Self::__Unknown(value) => value,
405 }
406 }
407}
408
409#[doc(hidden)]
410impl FromGlib<ffi::GstAudioLayout> for AudioLayout {
411 #[inline]
412 unsafe fn from_glib(value: ffi::GstAudioLayout) -> Self {
413 skip_assert_initialized!();
414
415 match value {
416 ffi::GST_AUDIO_LAYOUT_INTERLEAVED => Self::Interleaved,
417 ffi::GST_AUDIO_LAYOUT_NON_INTERLEAVED => Self::NonInterleaved,
418 value => Self::__Unknown(value),
419 }
420 }
421}
422
423impl StaticType for AudioLayout {
424 #[inline]
425 #[doc(alias = "gst_audio_layout_get_type")]
426 fn static_type() -> glib::Type {
427 unsafe { from_glib(ffi::gst_audio_layout_get_type()) }
428 }
429}
430
431impl glib::HasParamSpec for AudioLayout {
432 type ParamSpec = glib::ParamSpecEnum;
433 type SetValue = Self;
434 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
435
436 fn param_spec_builder() -> Self::BuilderFn {
437 Self::ParamSpec::builder_with_default
438 }
439}
440
441impl glib::value::ValueType for AudioLayout {
442 type Type = Self;
443}
444
445unsafe impl<'a> glib::value::FromValue<'a> for AudioLayout {
446 type Checker = glib::value::GenericValueTypeChecker<Self>;
447
448 #[inline]
449 unsafe fn from_value(value: &'a glib::Value) -> Self {
450 skip_assert_initialized!();
451 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
452 }
453}
454
455impl ToValue for AudioLayout {
456 #[inline]
457 fn to_value(&self) -> glib::Value {
458 let mut value = glib::Value::for_value_type::<Self>();
459 unsafe {
460 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
461 }
462 value
463 }
464
465 #[inline]
466 fn value_type(&self) -> glib::Type {
467 Self::static_type()
468 }
469}
470
471impl From<AudioLayout> for glib::Value {
472 #[inline]
473 fn from(v: AudioLayout) -> Self {
474 skip_assert_initialized!();
475 ToValue::to_value(&v)
476 }
477}
478
479#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
481#[non_exhaustive]
482#[doc(alias = "GstAudioNoiseShapingMethod")]
483pub enum AudioNoiseShapingMethod {
484 #[doc(alias = "GST_AUDIO_NOISE_SHAPING_NONE")]
486 None,
487 #[doc(alias = "GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK")]
489 ErrorFeedback,
490 #[doc(alias = "GST_AUDIO_NOISE_SHAPING_SIMPLE")]
492 Simple,
493 #[doc(alias = "GST_AUDIO_NOISE_SHAPING_MEDIUM")]
495 Medium,
496 #[doc(alias = "GST_AUDIO_NOISE_SHAPING_HIGH")]
498 High,
499 #[doc(hidden)]
500 __Unknown(i32),
501}
502
503#[doc(hidden)]
504impl IntoGlib for AudioNoiseShapingMethod {
505 type GlibType = ffi::GstAudioNoiseShapingMethod;
506
507 #[inline]
508 fn into_glib(self) -> ffi::GstAudioNoiseShapingMethod {
509 match self {
510 Self::None => ffi::GST_AUDIO_NOISE_SHAPING_NONE,
511 Self::ErrorFeedback => ffi::GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK,
512 Self::Simple => ffi::GST_AUDIO_NOISE_SHAPING_SIMPLE,
513 Self::Medium => ffi::GST_AUDIO_NOISE_SHAPING_MEDIUM,
514 Self::High => ffi::GST_AUDIO_NOISE_SHAPING_HIGH,
515 Self::__Unknown(value) => value,
516 }
517 }
518}
519
520#[doc(hidden)]
521impl FromGlib<ffi::GstAudioNoiseShapingMethod> for AudioNoiseShapingMethod {
522 #[inline]
523 unsafe fn from_glib(value: ffi::GstAudioNoiseShapingMethod) -> Self {
524 skip_assert_initialized!();
525
526 match value {
527 ffi::GST_AUDIO_NOISE_SHAPING_NONE => Self::None,
528 ffi::GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK => Self::ErrorFeedback,
529 ffi::GST_AUDIO_NOISE_SHAPING_SIMPLE => Self::Simple,
530 ffi::GST_AUDIO_NOISE_SHAPING_MEDIUM => Self::Medium,
531 ffi::GST_AUDIO_NOISE_SHAPING_HIGH => Self::High,
532 value => Self::__Unknown(value),
533 }
534 }
535}
536
537impl StaticType for AudioNoiseShapingMethod {
538 #[inline]
539 #[doc(alias = "gst_audio_noise_shaping_method_get_type")]
540 fn static_type() -> glib::Type {
541 unsafe { from_glib(ffi::gst_audio_noise_shaping_method_get_type()) }
542 }
543}
544
545impl glib::HasParamSpec for AudioNoiseShapingMethod {
546 type ParamSpec = glib::ParamSpecEnum;
547 type SetValue = Self;
548 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
549
550 fn param_spec_builder() -> Self::BuilderFn {
551 Self::ParamSpec::builder_with_default
552 }
553}
554
555impl glib::value::ValueType for AudioNoiseShapingMethod {
556 type Type = Self;
557}
558
559unsafe impl<'a> glib::value::FromValue<'a> for AudioNoiseShapingMethod {
560 type Checker = glib::value::GenericValueTypeChecker<Self>;
561
562 #[inline]
563 unsafe fn from_value(value: &'a glib::Value) -> Self {
564 skip_assert_initialized!();
565 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
566 }
567}
568
569impl ToValue for AudioNoiseShapingMethod {
570 #[inline]
571 fn to_value(&self) -> glib::Value {
572 let mut value = glib::Value::for_value_type::<Self>();
573 unsafe {
574 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
575 }
576 value
577 }
578
579 #[inline]
580 fn value_type(&self) -> glib::Type {
581 Self::static_type()
582 }
583}
584
585impl From<AudioNoiseShapingMethod> for glib::Value {
586 #[inline]
587 fn from(v: AudioNoiseShapingMethod) -> Self {
588 skip_assert_initialized!();
589 ToValue::to_value(&v)
590 }
591}
592
593#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
595#[non_exhaustive]
596#[doc(alias = "GstAudioResamplerMethod")]
597pub enum AudioResamplerMethod {
598 #[doc(alias = "GST_AUDIO_RESAMPLER_METHOD_NEAREST")]
601 Nearest,
602 #[doc(alias = "GST_AUDIO_RESAMPLER_METHOD_LINEAR")]
605 Linear,
606 #[doc(alias = "GST_AUDIO_RESAMPLER_METHOD_CUBIC")]
608 Cubic,
609 #[doc(alias = "GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL")]
611 BlackmanNuttall,
612 #[doc(alias = "GST_AUDIO_RESAMPLER_METHOD_KAISER")]
614 Kaiser,
615 #[doc(hidden)]
616 __Unknown(i32),
617}
618
619#[doc(hidden)]
620impl IntoGlib for AudioResamplerMethod {
621 type GlibType = ffi::GstAudioResamplerMethod;
622
623 #[inline]
624 fn into_glib(self) -> ffi::GstAudioResamplerMethod {
625 match self {
626 Self::Nearest => ffi::GST_AUDIO_RESAMPLER_METHOD_NEAREST,
627 Self::Linear => ffi::GST_AUDIO_RESAMPLER_METHOD_LINEAR,
628 Self::Cubic => ffi::GST_AUDIO_RESAMPLER_METHOD_CUBIC,
629 Self::BlackmanNuttall => ffi::GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL,
630 Self::Kaiser => ffi::GST_AUDIO_RESAMPLER_METHOD_KAISER,
631 Self::__Unknown(value) => value,
632 }
633 }
634}
635
636#[doc(hidden)]
637impl FromGlib<ffi::GstAudioResamplerMethod> for AudioResamplerMethod {
638 #[inline]
639 unsafe fn from_glib(value: ffi::GstAudioResamplerMethod) -> Self {
640 skip_assert_initialized!();
641
642 match value {
643 ffi::GST_AUDIO_RESAMPLER_METHOD_NEAREST => Self::Nearest,
644 ffi::GST_AUDIO_RESAMPLER_METHOD_LINEAR => Self::Linear,
645 ffi::GST_AUDIO_RESAMPLER_METHOD_CUBIC => Self::Cubic,
646 ffi::GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL => Self::BlackmanNuttall,
647 ffi::GST_AUDIO_RESAMPLER_METHOD_KAISER => Self::Kaiser,
648 value => Self::__Unknown(value),
649 }
650 }
651}
652
653impl StaticType for AudioResamplerMethod {
654 #[inline]
655 #[doc(alias = "gst_audio_resampler_method_get_type")]
656 fn static_type() -> glib::Type {
657 unsafe { from_glib(ffi::gst_audio_resampler_method_get_type()) }
658 }
659}
660
661impl glib::HasParamSpec for AudioResamplerMethod {
662 type ParamSpec = glib::ParamSpecEnum;
663 type SetValue = Self;
664 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
665
666 fn param_spec_builder() -> Self::BuilderFn {
667 Self::ParamSpec::builder_with_default
668 }
669}
670
671impl glib::value::ValueType for AudioResamplerMethod {
672 type Type = Self;
673}
674
675unsafe impl<'a> glib::value::FromValue<'a> for AudioResamplerMethod {
676 type Checker = glib::value::GenericValueTypeChecker<Self>;
677
678 #[inline]
679 unsafe fn from_value(value: &'a glib::Value) -> Self {
680 skip_assert_initialized!();
681 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
682 }
683}
684
685impl ToValue for AudioResamplerMethod {
686 #[inline]
687 fn to_value(&self) -> glib::Value {
688 let mut value = glib::Value::for_value_type::<Self>();
689 unsafe {
690 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
691 }
692 value
693 }
694
695 #[inline]
696 fn value_type(&self) -> glib::Type {
697 Self::static_type()
698 }
699}
700
701impl From<AudioResamplerMethod> for glib::Value {
702 #[inline]
703 fn from(v: AudioResamplerMethod) -> Self {
704 skip_assert_initialized!();
705 ToValue::to_value(&v)
706 }
707}
708
709#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
711#[non_exhaustive]
712#[doc(alias = "GstAudioRingBufferFormatType")]
713pub enum AudioRingBufferFormatType {
714 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW")]
716 Raw,
717 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW")]
719 MuLaw,
720 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW")]
722 ALaw,
723 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IMA_ADPCM")]
725 ImaAdpcm,
726 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG")]
728 Mpeg,
729 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_GSM")]
731 Gsm,
732 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958")]
734 Iec958,
735 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3")]
737 Ac3,
738 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3")]
740 Eac3,
741 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS")]
743 Dts,
744 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC")]
746 Mpeg2Aac,
747 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC")]
749 Mpeg4Aac,
750 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW")]
752 Mpeg2AacRaw,
753 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW")]
755 Mpeg4AacRaw,
756 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC")]
758 Flac,
759 #[cfg(feature = "v1_24")]
761 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
762 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DSD")]
763 Dsd,
764 #[doc(hidden)]
765 __Unknown(i32),
766}
767
768#[doc(hidden)]
769impl IntoGlib for AudioRingBufferFormatType {
770 type GlibType = ffi::GstAudioRingBufferFormatType;
771
772 fn into_glib(self) -> ffi::GstAudioRingBufferFormatType {
773 match self {
774 Self::Raw => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW,
775 Self::MuLaw => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW,
776 Self::ALaw => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW,
777 Self::ImaAdpcm => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IMA_ADPCM,
778 Self::Mpeg => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG,
779 Self::Gsm => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_GSM,
780 Self::Iec958 => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958,
781 Self::Ac3 => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3,
782 Self::Eac3 => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3,
783 Self::Dts => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS,
784 Self::Mpeg2Aac => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC,
785 Self::Mpeg4Aac => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC,
786 Self::Mpeg2AacRaw => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW,
787 Self::Mpeg4AacRaw => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW,
788 Self::Flac => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC,
789 #[cfg(feature = "v1_24")]
790 Self::Dsd => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DSD,
791 Self::__Unknown(value) => value,
792 }
793 }
794}
795
796#[doc(hidden)]
797impl FromGlib<ffi::GstAudioRingBufferFormatType> for AudioRingBufferFormatType {
798 unsafe fn from_glib(value: ffi::GstAudioRingBufferFormatType) -> Self {
799 skip_assert_initialized!();
800
801 match value {
802 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW => Self::Raw,
803 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW => Self::MuLaw,
804 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW => Self::ALaw,
805 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IMA_ADPCM => Self::ImaAdpcm,
806 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG => Self::Mpeg,
807 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_GSM => Self::Gsm,
808 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958 => Self::Iec958,
809 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3 => Self::Ac3,
810 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3 => Self::Eac3,
811 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS => Self::Dts,
812 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC => Self::Mpeg2Aac,
813 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC => Self::Mpeg4Aac,
814 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW => Self::Mpeg2AacRaw,
815 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW => Self::Mpeg4AacRaw,
816 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC => Self::Flac,
817 #[cfg(feature = "v1_24")]
818 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DSD => Self::Dsd,
819 value => Self::__Unknown(value),
820 }
821 }
822}
823
824impl StaticType for AudioRingBufferFormatType {
825 #[inline]
826 #[doc(alias = "gst_audio_ring_buffer_format_type_get_type")]
827 fn static_type() -> glib::Type {
828 unsafe { from_glib(ffi::gst_audio_ring_buffer_format_type_get_type()) }
829 }
830}
831
832impl glib::HasParamSpec for AudioRingBufferFormatType {
833 type ParamSpec = glib::ParamSpecEnum;
834 type SetValue = Self;
835 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
836
837 fn param_spec_builder() -> Self::BuilderFn {
838 Self::ParamSpec::builder_with_default
839 }
840}
841
842impl glib::value::ValueType for AudioRingBufferFormatType {
843 type Type = Self;
844}
845
846unsafe impl<'a> glib::value::FromValue<'a> for AudioRingBufferFormatType {
847 type Checker = glib::value::GenericValueTypeChecker<Self>;
848
849 #[inline]
850 unsafe fn from_value(value: &'a glib::Value) -> Self {
851 skip_assert_initialized!();
852 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
853 }
854}
855
856impl ToValue for AudioRingBufferFormatType {
857 #[inline]
858 fn to_value(&self) -> glib::Value {
859 let mut value = glib::Value::for_value_type::<Self>();
860 unsafe {
861 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
862 }
863 value
864 }
865
866 #[inline]
867 fn value_type(&self) -> glib::Type {
868 Self::static_type()
869 }
870}
871
872impl From<AudioRingBufferFormatType> for glib::Value {
873 #[inline]
874 fn from(v: AudioRingBufferFormatType) -> Self {
875 skip_assert_initialized!();
876 ToValue::to_value(&v)
877 }
878}
879
880#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
886#[non_exhaustive]
887#[doc(alias = "GstStreamVolumeFormat")]
888pub enum StreamVolumeFormat {
889 #[doc(alias = "GST_STREAM_VOLUME_FORMAT_LINEAR")]
891 Linear,
892 #[doc(alias = "GST_STREAM_VOLUME_FORMAT_CUBIC")]
894 Cubic,
895 #[doc(alias = "GST_STREAM_VOLUME_FORMAT_DB")]
897 Db,
898 #[doc(hidden)]
899 __Unknown(i32),
900}
901
902#[doc(hidden)]
903impl IntoGlib for StreamVolumeFormat {
904 type GlibType = ffi::GstStreamVolumeFormat;
905
906 #[inline]
907 fn into_glib(self) -> ffi::GstStreamVolumeFormat {
908 match self {
909 Self::Linear => ffi::GST_STREAM_VOLUME_FORMAT_LINEAR,
910 Self::Cubic => ffi::GST_STREAM_VOLUME_FORMAT_CUBIC,
911 Self::Db => ffi::GST_STREAM_VOLUME_FORMAT_DB,
912 Self::__Unknown(value) => value,
913 }
914 }
915}
916
917#[doc(hidden)]
918impl FromGlib<ffi::GstStreamVolumeFormat> for StreamVolumeFormat {
919 #[inline]
920 unsafe fn from_glib(value: ffi::GstStreamVolumeFormat) -> Self {
921 skip_assert_initialized!();
922
923 match value {
924 ffi::GST_STREAM_VOLUME_FORMAT_LINEAR => Self::Linear,
925 ffi::GST_STREAM_VOLUME_FORMAT_CUBIC => Self::Cubic,
926 ffi::GST_STREAM_VOLUME_FORMAT_DB => Self::Db,
927 value => Self::__Unknown(value),
928 }
929 }
930}