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 #[cfg(feature = "v1_28")]
221 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
222 #[doc(alias = "GST_AUDIO_FORMAT_S20_32LE")]
223 S2032le,
224 #[cfg(feature = "v1_28")]
226 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
227 #[doc(alias = "GST_AUDIO_FORMAT_S20_32BE")]
228 S2032be,
229 #[cfg(feature = "v1_28")]
231 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
232 #[doc(alias = "GST_AUDIO_FORMAT_U20_32LE")]
233 U2032le,
234 #[cfg(feature = "v1_28")]
236 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
237 #[doc(alias = "GST_AUDIO_FORMAT_U20_32BE")]
238 U2032be,
239 #[doc(hidden)]
240 __Unknown(i32),
241}
242
243impl AudioFormat {
244 #[doc(alias = "gst_audio_format_from_string")]
245 pub fn from_string(format: &str) -> AudioFormat {
246 assert_initialized_main_thread!();
247 unsafe { from_glib(ffi::gst_audio_format_from_string(format.to_glib_none().0)) }
248 }
249}
250
251impl std::fmt::Display for AudioFormat {
252 #[inline]
253 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
254 f.write_str(&self.to_str())
255 }
256}
257
258#[doc(hidden)]
259impl IntoGlib for AudioFormat {
260 type GlibType = ffi::GstAudioFormat;
261
262 fn into_glib(self) -> ffi::GstAudioFormat {
263 match self {
264 Self::Unknown => ffi::GST_AUDIO_FORMAT_UNKNOWN,
265 Self::Encoded => ffi::GST_AUDIO_FORMAT_ENCODED,
266 Self::S8 => ffi::GST_AUDIO_FORMAT_S8,
267 Self::U8 => ffi::GST_AUDIO_FORMAT_U8,
268 Self::S16le => ffi::GST_AUDIO_FORMAT_S16LE,
269 Self::S16be => ffi::GST_AUDIO_FORMAT_S16BE,
270 Self::U16le => ffi::GST_AUDIO_FORMAT_U16LE,
271 Self::U16be => ffi::GST_AUDIO_FORMAT_U16BE,
272 Self::S2432le => ffi::GST_AUDIO_FORMAT_S24_32LE,
273 Self::S2432be => ffi::GST_AUDIO_FORMAT_S24_32BE,
274 Self::U2432le => ffi::GST_AUDIO_FORMAT_U24_32LE,
275 Self::U2432be => ffi::GST_AUDIO_FORMAT_U24_32BE,
276 Self::S32le => ffi::GST_AUDIO_FORMAT_S32LE,
277 Self::S32be => ffi::GST_AUDIO_FORMAT_S32BE,
278 Self::U32le => ffi::GST_AUDIO_FORMAT_U32LE,
279 Self::U32be => ffi::GST_AUDIO_FORMAT_U32BE,
280 Self::S24le => ffi::GST_AUDIO_FORMAT_S24LE,
281 Self::S24be => ffi::GST_AUDIO_FORMAT_S24BE,
282 Self::U24le => ffi::GST_AUDIO_FORMAT_U24LE,
283 Self::U24be => ffi::GST_AUDIO_FORMAT_U24BE,
284 Self::S20le => ffi::GST_AUDIO_FORMAT_S20LE,
285 Self::S20be => ffi::GST_AUDIO_FORMAT_S20BE,
286 Self::U20le => ffi::GST_AUDIO_FORMAT_U20LE,
287 Self::U20be => ffi::GST_AUDIO_FORMAT_U20BE,
288 Self::S18le => ffi::GST_AUDIO_FORMAT_S18LE,
289 Self::S18be => ffi::GST_AUDIO_FORMAT_S18BE,
290 Self::U18le => ffi::GST_AUDIO_FORMAT_U18LE,
291 Self::U18be => ffi::GST_AUDIO_FORMAT_U18BE,
292 Self::F32le => ffi::GST_AUDIO_FORMAT_F32LE,
293 Self::F32be => ffi::GST_AUDIO_FORMAT_F32BE,
294 Self::F64le => ffi::GST_AUDIO_FORMAT_F64LE,
295 Self::F64be => ffi::GST_AUDIO_FORMAT_F64BE,
296 #[cfg(feature = "v1_28")]
297 Self::S2032le => ffi::GST_AUDIO_FORMAT_S20_32LE,
298 #[cfg(feature = "v1_28")]
299 Self::S2032be => ffi::GST_AUDIO_FORMAT_S20_32BE,
300 #[cfg(feature = "v1_28")]
301 Self::U2032le => ffi::GST_AUDIO_FORMAT_U20_32LE,
302 #[cfg(feature = "v1_28")]
303 Self::U2032be => ffi::GST_AUDIO_FORMAT_U20_32BE,
304 Self::__Unknown(value) => value,
305 }
306 }
307}
308
309#[doc(hidden)]
310impl FromGlib<ffi::GstAudioFormat> for AudioFormat {
311 unsafe fn from_glib(value: ffi::GstAudioFormat) -> Self {
312 skip_assert_initialized!();
313
314 match value {
315 ffi::GST_AUDIO_FORMAT_UNKNOWN => Self::Unknown,
316 ffi::GST_AUDIO_FORMAT_ENCODED => Self::Encoded,
317 ffi::GST_AUDIO_FORMAT_S8 => Self::S8,
318 ffi::GST_AUDIO_FORMAT_U8 => Self::U8,
319 ffi::GST_AUDIO_FORMAT_S16LE => Self::S16le,
320 ffi::GST_AUDIO_FORMAT_S16BE => Self::S16be,
321 ffi::GST_AUDIO_FORMAT_U16LE => Self::U16le,
322 ffi::GST_AUDIO_FORMAT_U16BE => Self::U16be,
323 ffi::GST_AUDIO_FORMAT_S24_32LE => Self::S2432le,
324 ffi::GST_AUDIO_FORMAT_S24_32BE => Self::S2432be,
325 ffi::GST_AUDIO_FORMAT_U24_32LE => Self::U2432le,
326 ffi::GST_AUDIO_FORMAT_U24_32BE => Self::U2432be,
327 ffi::GST_AUDIO_FORMAT_S32LE => Self::S32le,
328 ffi::GST_AUDIO_FORMAT_S32BE => Self::S32be,
329 ffi::GST_AUDIO_FORMAT_U32LE => Self::U32le,
330 ffi::GST_AUDIO_FORMAT_U32BE => Self::U32be,
331 ffi::GST_AUDIO_FORMAT_S24LE => Self::S24le,
332 ffi::GST_AUDIO_FORMAT_S24BE => Self::S24be,
333 ffi::GST_AUDIO_FORMAT_U24LE => Self::U24le,
334 ffi::GST_AUDIO_FORMAT_U24BE => Self::U24be,
335 ffi::GST_AUDIO_FORMAT_S20LE => Self::S20le,
336 ffi::GST_AUDIO_FORMAT_S20BE => Self::S20be,
337 ffi::GST_AUDIO_FORMAT_U20LE => Self::U20le,
338 ffi::GST_AUDIO_FORMAT_U20BE => Self::U20be,
339 ffi::GST_AUDIO_FORMAT_S18LE => Self::S18le,
340 ffi::GST_AUDIO_FORMAT_S18BE => Self::S18be,
341 ffi::GST_AUDIO_FORMAT_U18LE => Self::U18le,
342 ffi::GST_AUDIO_FORMAT_U18BE => Self::U18be,
343 ffi::GST_AUDIO_FORMAT_F32LE => Self::F32le,
344 ffi::GST_AUDIO_FORMAT_F32BE => Self::F32be,
345 ffi::GST_AUDIO_FORMAT_F64LE => Self::F64le,
346 ffi::GST_AUDIO_FORMAT_F64BE => Self::F64be,
347 #[cfg(feature = "v1_28")]
348 ffi::GST_AUDIO_FORMAT_S20_32LE => Self::S2032le,
349 #[cfg(feature = "v1_28")]
350 ffi::GST_AUDIO_FORMAT_S20_32BE => Self::S2032be,
351 #[cfg(feature = "v1_28")]
352 ffi::GST_AUDIO_FORMAT_U20_32LE => Self::U2032le,
353 #[cfg(feature = "v1_28")]
354 ffi::GST_AUDIO_FORMAT_U20_32BE => Self::U2032be,
355 value => Self::__Unknown(value),
356 }
357 }
358}
359
360impl StaticType for AudioFormat {
361 #[inline]
362 #[doc(alias = "gst_audio_format_get_type")]
363 fn static_type() -> glib::Type {
364 unsafe { from_glib(ffi::gst_audio_format_get_type()) }
365 }
366}
367
368impl glib::HasParamSpec for AudioFormat {
369 type ParamSpec = glib::ParamSpecEnum;
370 type SetValue = Self;
371 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
372
373 fn param_spec_builder() -> Self::BuilderFn {
374 Self::ParamSpec::builder_with_default
375 }
376}
377
378impl glib::value::ValueType for AudioFormat {
379 type Type = Self;
380}
381
382unsafe impl<'a> glib::value::FromValue<'a> for AudioFormat {
383 type Checker = glib::value::GenericValueTypeChecker<Self>;
384
385 #[inline]
386 unsafe fn from_value(value: &'a glib::Value) -> Self {
387 skip_assert_initialized!();
388 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
389 }
390}
391
392impl ToValue for AudioFormat {
393 #[inline]
394 fn to_value(&self) -> glib::Value {
395 let mut value = glib::Value::for_value_type::<Self>();
396 unsafe {
397 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
398 }
399 value
400 }
401
402 #[inline]
403 fn value_type(&self) -> glib::Type {
404 Self::static_type()
405 }
406}
407
408impl From<AudioFormat> for glib::Value {
409 #[inline]
410 fn from(v: AudioFormat) -> Self {
411 skip_assert_initialized!();
412 ToValue::to_value(&v)
413 }
414}
415
416#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
418#[non_exhaustive]
419#[doc(alias = "GstAudioLayout")]
420pub enum AudioLayout {
421 #[doc(alias = "GST_AUDIO_LAYOUT_INTERLEAVED")]
423 Interleaved,
424 #[doc(alias = "GST_AUDIO_LAYOUT_NON_INTERLEAVED")]
426 NonInterleaved,
427 #[doc(hidden)]
428 __Unknown(i32),
429}
430
431#[doc(hidden)]
432impl IntoGlib for AudioLayout {
433 type GlibType = ffi::GstAudioLayout;
434
435 #[inline]
436 fn into_glib(self) -> ffi::GstAudioLayout {
437 match self {
438 Self::Interleaved => ffi::GST_AUDIO_LAYOUT_INTERLEAVED,
439 Self::NonInterleaved => ffi::GST_AUDIO_LAYOUT_NON_INTERLEAVED,
440 Self::__Unknown(value) => value,
441 }
442 }
443}
444
445#[doc(hidden)]
446impl FromGlib<ffi::GstAudioLayout> for AudioLayout {
447 #[inline]
448 unsafe fn from_glib(value: ffi::GstAudioLayout) -> Self {
449 skip_assert_initialized!();
450
451 match value {
452 ffi::GST_AUDIO_LAYOUT_INTERLEAVED => Self::Interleaved,
453 ffi::GST_AUDIO_LAYOUT_NON_INTERLEAVED => Self::NonInterleaved,
454 value => Self::__Unknown(value),
455 }
456 }
457}
458
459impl StaticType for AudioLayout {
460 #[inline]
461 #[doc(alias = "gst_audio_layout_get_type")]
462 fn static_type() -> glib::Type {
463 unsafe { from_glib(ffi::gst_audio_layout_get_type()) }
464 }
465}
466
467impl glib::HasParamSpec for AudioLayout {
468 type ParamSpec = glib::ParamSpecEnum;
469 type SetValue = Self;
470 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
471
472 fn param_spec_builder() -> Self::BuilderFn {
473 Self::ParamSpec::builder_with_default
474 }
475}
476
477impl glib::value::ValueType for AudioLayout {
478 type Type = Self;
479}
480
481unsafe impl<'a> glib::value::FromValue<'a> for AudioLayout {
482 type Checker = glib::value::GenericValueTypeChecker<Self>;
483
484 #[inline]
485 unsafe fn from_value(value: &'a glib::Value) -> Self {
486 skip_assert_initialized!();
487 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
488 }
489}
490
491impl ToValue for AudioLayout {
492 #[inline]
493 fn to_value(&self) -> glib::Value {
494 let mut value = glib::Value::for_value_type::<Self>();
495 unsafe {
496 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
497 }
498 value
499 }
500
501 #[inline]
502 fn value_type(&self) -> glib::Type {
503 Self::static_type()
504 }
505}
506
507impl From<AudioLayout> for glib::Value {
508 #[inline]
509 fn from(v: AudioLayout) -> Self {
510 skip_assert_initialized!();
511 ToValue::to_value(&v)
512 }
513}
514
515#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
517#[non_exhaustive]
518#[doc(alias = "GstAudioNoiseShapingMethod")]
519pub enum AudioNoiseShapingMethod {
520 #[doc(alias = "GST_AUDIO_NOISE_SHAPING_NONE")]
522 None,
523 #[doc(alias = "GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK")]
525 ErrorFeedback,
526 #[doc(alias = "GST_AUDIO_NOISE_SHAPING_SIMPLE")]
528 Simple,
529 #[doc(alias = "GST_AUDIO_NOISE_SHAPING_MEDIUM")]
531 Medium,
532 #[doc(alias = "GST_AUDIO_NOISE_SHAPING_HIGH")]
534 High,
535 #[doc(hidden)]
536 __Unknown(i32),
537}
538
539#[doc(hidden)]
540impl IntoGlib for AudioNoiseShapingMethod {
541 type GlibType = ffi::GstAudioNoiseShapingMethod;
542
543 #[inline]
544 fn into_glib(self) -> ffi::GstAudioNoiseShapingMethod {
545 match self {
546 Self::None => ffi::GST_AUDIO_NOISE_SHAPING_NONE,
547 Self::ErrorFeedback => ffi::GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK,
548 Self::Simple => ffi::GST_AUDIO_NOISE_SHAPING_SIMPLE,
549 Self::Medium => ffi::GST_AUDIO_NOISE_SHAPING_MEDIUM,
550 Self::High => ffi::GST_AUDIO_NOISE_SHAPING_HIGH,
551 Self::__Unknown(value) => value,
552 }
553 }
554}
555
556#[doc(hidden)]
557impl FromGlib<ffi::GstAudioNoiseShapingMethod> for AudioNoiseShapingMethod {
558 #[inline]
559 unsafe fn from_glib(value: ffi::GstAudioNoiseShapingMethod) -> Self {
560 skip_assert_initialized!();
561
562 match value {
563 ffi::GST_AUDIO_NOISE_SHAPING_NONE => Self::None,
564 ffi::GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK => Self::ErrorFeedback,
565 ffi::GST_AUDIO_NOISE_SHAPING_SIMPLE => Self::Simple,
566 ffi::GST_AUDIO_NOISE_SHAPING_MEDIUM => Self::Medium,
567 ffi::GST_AUDIO_NOISE_SHAPING_HIGH => Self::High,
568 value => Self::__Unknown(value),
569 }
570 }
571}
572
573impl StaticType for AudioNoiseShapingMethod {
574 #[inline]
575 #[doc(alias = "gst_audio_noise_shaping_method_get_type")]
576 fn static_type() -> glib::Type {
577 unsafe { from_glib(ffi::gst_audio_noise_shaping_method_get_type()) }
578 }
579}
580
581impl glib::HasParamSpec for AudioNoiseShapingMethod {
582 type ParamSpec = glib::ParamSpecEnum;
583 type SetValue = Self;
584 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
585
586 fn param_spec_builder() -> Self::BuilderFn {
587 Self::ParamSpec::builder_with_default
588 }
589}
590
591impl glib::value::ValueType for AudioNoiseShapingMethod {
592 type Type = Self;
593}
594
595unsafe impl<'a> glib::value::FromValue<'a> for AudioNoiseShapingMethod {
596 type Checker = glib::value::GenericValueTypeChecker<Self>;
597
598 #[inline]
599 unsafe fn from_value(value: &'a glib::Value) -> Self {
600 skip_assert_initialized!();
601 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
602 }
603}
604
605impl ToValue for AudioNoiseShapingMethod {
606 #[inline]
607 fn to_value(&self) -> glib::Value {
608 let mut value = glib::Value::for_value_type::<Self>();
609 unsafe {
610 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
611 }
612 value
613 }
614
615 #[inline]
616 fn value_type(&self) -> glib::Type {
617 Self::static_type()
618 }
619}
620
621impl From<AudioNoiseShapingMethod> for glib::Value {
622 #[inline]
623 fn from(v: AudioNoiseShapingMethod) -> Self {
624 skip_assert_initialized!();
625 ToValue::to_value(&v)
626 }
627}
628
629#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
631#[non_exhaustive]
632#[doc(alias = "GstAudioResamplerMethod")]
633pub enum AudioResamplerMethod {
634 #[doc(alias = "GST_AUDIO_RESAMPLER_METHOD_NEAREST")]
637 Nearest,
638 #[doc(alias = "GST_AUDIO_RESAMPLER_METHOD_LINEAR")]
641 Linear,
642 #[doc(alias = "GST_AUDIO_RESAMPLER_METHOD_CUBIC")]
644 Cubic,
645 #[doc(alias = "GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL")]
647 BlackmanNuttall,
648 #[doc(alias = "GST_AUDIO_RESAMPLER_METHOD_KAISER")]
650 Kaiser,
651 #[doc(hidden)]
652 __Unknown(i32),
653}
654
655#[doc(hidden)]
656impl IntoGlib for AudioResamplerMethod {
657 type GlibType = ffi::GstAudioResamplerMethod;
658
659 #[inline]
660 fn into_glib(self) -> ffi::GstAudioResamplerMethod {
661 match self {
662 Self::Nearest => ffi::GST_AUDIO_RESAMPLER_METHOD_NEAREST,
663 Self::Linear => ffi::GST_AUDIO_RESAMPLER_METHOD_LINEAR,
664 Self::Cubic => ffi::GST_AUDIO_RESAMPLER_METHOD_CUBIC,
665 Self::BlackmanNuttall => ffi::GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL,
666 Self::Kaiser => ffi::GST_AUDIO_RESAMPLER_METHOD_KAISER,
667 Self::__Unknown(value) => value,
668 }
669 }
670}
671
672#[doc(hidden)]
673impl FromGlib<ffi::GstAudioResamplerMethod> for AudioResamplerMethod {
674 #[inline]
675 unsafe fn from_glib(value: ffi::GstAudioResamplerMethod) -> Self {
676 skip_assert_initialized!();
677
678 match value {
679 ffi::GST_AUDIO_RESAMPLER_METHOD_NEAREST => Self::Nearest,
680 ffi::GST_AUDIO_RESAMPLER_METHOD_LINEAR => Self::Linear,
681 ffi::GST_AUDIO_RESAMPLER_METHOD_CUBIC => Self::Cubic,
682 ffi::GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL => Self::BlackmanNuttall,
683 ffi::GST_AUDIO_RESAMPLER_METHOD_KAISER => Self::Kaiser,
684 value => Self::__Unknown(value),
685 }
686 }
687}
688
689impl StaticType for AudioResamplerMethod {
690 #[inline]
691 #[doc(alias = "gst_audio_resampler_method_get_type")]
692 fn static_type() -> glib::Type {
693 unsafe { from_glib(ffi::gst_audio_resampler_method_get_type()) }
694 }
695}
696
697impl glib::HasParamSpec for AudioResamplerMethod {
698 type ParamSpec = glib::ParamSpecEnum;
699 type SetValue = Self;
700 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
701
702 fn param_spec_builder() -> Self::BuilderFn {
703 Self::ParamSpec::builder_with_default
704 }
705}
706
707impl glib::value::ValueType for AudioResamplerMethod {
708 type Type = Self;
709}
710
711unsafe impl<'a> glib::value::FromValue<'a> for AudioResamplerMethod {
712 type Checker = glib::value::GenericValueTypeChecker<Self>;
713
714 #[inline]
715 unsafe fn from_value(value: &'a glib::Value) -> Self {
716 skip_assert_initialized!();
717 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
718 }
719}
720
721impl ToValue for AudioResamplerMethod {
722 #[inline]
723 fn to_value(&self) -> glib::Value {
724 let mut value = glib::Value::for_value_type::<Self>();
725 unsafe {
726 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
727 }
728 value
729 }
730
731 #[inline]
732 fn value_type(&self) -> glib::Type {
733 Self::static_type()
734 }
735}
736
737impl From<AudioResamplerMethod> for glib::Value {
738 #[inline]
739 fn from(v: AudioResamplerMethod) -> Self {
740 skip_assert_initialized!();
741 ToValue::to_value(&v)
742 }
743}
744
745#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
747#[non_exhaustive]
748#[doc(alias = "GstAudioRingBufferFormatType")]
749pub enum AudioRingBufferFormatType {
750 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW")]
752 Raw,
753 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW")]
755 MuLaw,
756 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW")]
758 ALaw,
759 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IMA_ADPCM")]
761 ImaAdpcm,
762 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG")]
764 Mpeg,
765 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_GSM")]
767 Gsm,
768 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958")]
770 Iec958,
771 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3")]
773 Ac3,
774 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3")]
776 Eac3,
777 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS")]
779 Dts,
780 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC")]
782 Mpeg2Aac,
783 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC")]
785 Mpeg4Aac,
786 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW")]
788 Mpeg2AacRaw,
789 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW")]
791 Mpeg4AacRaw,
792 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC")]
794 Flac,
795 #[cfg(feature = "v1_24")]
797 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
798 #[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DSD")]
799 Dsd,
800 #[doc(hidden)]
801 __Unknown(i32),
802}
803
804#[doc(hidden)]
805impl IntoGlib for AudioRingBufferFormatType {
806 type GlibType = ffi::GstAudioRingBufferFormatType;
807
808 fn into_glib(self) -> ffi::GstAudioRingBufferFormatType {
809 match self {
810 Self::Raw => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW,
811 Self::MuLaw => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW,
812 Self::ALaw => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW,
813 Self::ImaAdpcm => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IMA_ADPCM,
814 Self::Mpeg => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG,
815 Self::Gsm => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_GSM,
816 Self::Iec958 => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958,
817 Self::Ac3 => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3,
818 Self::Eac3 => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3,
819 Self::Dts => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS,
820 Self::Mpeg2Aac => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC,
821 Self::Mpeg4Aac => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC,
822 Self::Mpeg2AacRaw => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW,
823 Self::Mpeg4AacRaw => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW,
824 Self::Flac => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC,
825 #[cfg(feature = "v1_24")]
826 Self::Dsd => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DSD,
827 Self::__Unknown(value) => value,
828 }
829 }
830}
831
832#[doc(hidden)]
833impl FromGlib<ffi::GstAudioRingBufferFormatType> for AudioRingBufferFormatType {
834 unsafe fn from_glib(value: ffi::GstAudioRingBufferFormatType) -> Self {
835 skip_assert_initialized!();
836
837 match value {
838 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW => Self::Raw,
839 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW => Self::MuLaw,
840 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW => Self::ALaw,
841 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IMA_ADPCM => Self::ImaAdpcm,
842 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG => Self::Mpeg,
843 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_GSM => Self::Gsm,
844 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958 => Self::Iec958,
845 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3 => Self::Ac3,
846 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3 => Self::Eac3,
847 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS => Self::Dts,
848 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC => Self::Mpeg2Aac,
849 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC => Self::Mpeg4Aac,
850 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW => Self::Mpeg2AacRaw,
851 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW => Self::Mpeg4AacRaw,
852 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC => Self::Flac,
853 #[cfg(feature = "v1_24")]
854 ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DSD => Self::Dsd,
855 value => Self::__Unknown(value),
856 }
857 }
858}
859
860impl StaticType for AudioRingBufferFormatType {
861 #[inline]
862 #[doc(alias = "gst_audio_ring_buffer_format_type_get_type")]
863 fn static_type() -> glib::Type {
864 unsafe { from_glib(ffi::gst_audio_ring_buffer_format_type_get_type()) }
865 }
866}
867
868impl glib::HasParamSpec for AudioRingBufferFormatType {
869 type ParamSpec = glib::ParamSpecEnum;
870 type SetValue = Self;
871 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
872
873 fn param_spec_builder() -> Self::BuilderFn {
874 Self::ParamSpec::builder_with_default
875 }
876}
877
878impl glib::value::ValueType for AudioRingBufferFormatType {
879 type Type = Self;
880}
881
882unsafe impl<'a> glib::value::FromValue<'a> for AudioRingBufferFormatType {
883 type Checker = glib::value::GenericValueTypeChecker<Self>;
884
885 #[inline]
886 unsafe fn from_value(value: &'a glib::Value) -> Self {
887 skip_assert_initialized!();
888 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
889 }
890}
891
892impl ToValue for AudioRingBufferFormatType {
893 #[inline]
894 fn to_value(&self) -> glib::Value {
895 let mut value = glib::Value::for_value_type::<Self>();
896 unsafe {
897 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
898 }
899 value
900 }
901
902 #[inline]
903 fn value_type(&self) -> glib::Type {
904 Self::static_type()
905 }
906}
907
908impl From<AudioRingBufferFormatType> for glib::Value {
909 #[inline]
910 fn from(v: AudioRingBufferFormatType) -> Self {
911 skip_assert_initialized!();
912 ToValue::to_value(&v)
913 }
914}
915
916#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
922#[non_exhaustive]
923#[doc(alias = "GstStreamVolumeFormat")]
924pub enum StreamVolumeFormat {
925 #[doc(alias = "GST_STREAM_VOLUME_FORMAT_LINEAR")]
927 Linear,
928 #[doc(alias = "GST_STREAM_VOLUME_FORMAT_CUBIC")]
930 Cubic,
931 #[doc(alias = "GST_STREAM_VOLUME_FORMAT_DB")]
933 Db,
934 #[doc(hidden)]
935 __Unknown(i32),
936}
937
938#[doc(hidden)]
939impl IntoGlib for StreamVolumeFormat {
940 type GlibType = ffi::GstStreamVolumeFormat;
941
942 #[inline]
943 fn into_glib(self) -> ffi::GstStreamVolumeFormat {
944 match self {
945 Self::Linear => ffi::GST_STREAM_VOLUME_FORMAT_LINEAR,
946 Self::Cubic => ffi::GST_STREAM_VOLUME_FORMAT_CUBIC,
947 Self::Db => ffi::GST_STREAM_VOLUME_FORMAT_DB,
948 Self::__Unknown(value) => value,
949 }
950 }
951}
952
953#[doc(hidden)]
954impl FromGlib<ffi::GstStreamVolumeFormat> for StreamVolumeFormat {
955 #[inline]
956 unsafe fn from_glib(value: ffi::GstStreamVolumeFormat) -> Self {
957 skip_assert_initialized!();
958
959 match value {
960 ffi::GST_STREAM_VOLUME_FORMAT_LINEAR => Self::Linear,
961 ffi::GST_STREAM_VOLUME_FORMAT_CUBIC => Self::Cubic,
962 ffi::GST_STREAM_VOLUME_FORMAT_DB => Self::Db,
963 value => Self::__Unknown(value),
964 }
965 }
966}