1use crate::ffi;
7use glib::{prelude::*, translate::*, GStr};
8
9#[cfg(feature = "v1_16")]
12#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
13#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
14#[non_exhaustive]
15#[doc(alias = "GstWebRTCBundlePolicy")]
16pub enum WebRTCBundlePolicy {
17 #[doc(alias = "GST_WEBRTC_BUNDLE_POLICY_NONE")]
19 None,
20 #[doc(alias = "GST_WEBRTC_BUNDLE_POLICY_BALANCED")]
22 Balanced,
23 #[doc(alias = "GST_WEBRTC_BUNDLE_POLICY_MAX_COMPAT")]
25 MaxCompat,
26 #[doc(alias = "GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE")]
28 MaxBundle,
29 #[doc(hidden)]
30 __Unknown(i32),
31}
32
33#[cfg(feature = "v1_16")]
34#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
35#[doc(hidden)]
36impl IntoGlib for WebRTCBundlePolicy {
37 type GlibType = ffi::GstWebRTCBundlePolicy;
38
39 #[inline]
40 fn into_glib(self) -> ffi::GstWebRTCBundlePolicy {
41 match self {
42 Self::None => ffi::GST_WEBRTC_BUNDLE_POLICY_NONE,
43 Self::Balanced => ffi::GST_WEBRTC_BUNDLE_POLICY_BALANCED,
44 Self::MaxCompat => ffi::GST_WEBRTC_BUNDLE_POLICY_MAX_COMPAT,
45 Self::MaxBundle => ffi::GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE,
46 Self::__Unknown(value) => value,
47 }
48 }
49}
50
51#[cfg(feature = "v1_16")]
52#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
53#[doc(hidden)]
54impl FromGlib<ffi::GstWebRTCBundlePolicy> for WebRTCBundlePolicy {
55 #[inline]
56 unsafe fn from_glib(value: ffi::GstWebRTCBundlePolicy) -> Self {
57 skip_assert_initialized!();
58
59 match value {
60 ffi::GST_WEBRTC_BUNDLE_POLICY_NONE => Self::None,
61 ffi::GST_WEBRTC_BUNDLE_POLICY_BALANCED => Self::Balanced,
62 ffi::GST_WEBRTC_BUNDLE_POLICY_MAX_COMPAT => Self::MaxCompat,
63 ffi::GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE => Self::MaxBundle,
64 value => Self::__Unknown(value),
65 }
66 }
67}
68
69#[cfg(feature = "v1_16")]
70#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
71impl StaticType for WebRTCBundlePolicy {
72 #[inline]
73 #[doc(alias = "gst_webrtc_bundle_policy_get_type")]
74 fn static_type() -> glib::Type {
75 unsafe { from_glib(ffi::gst_webrtc_bundle_policy_get_type()) }
76 }
77}
78
79#[cfg(feature = "v1_16")]
80#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
81impl glib::HasParamSpec for WebRTCBundlePolicy {
82 type ParamSpec = glib::ParamSpecEnum;
83 type SetValue = Self;
84 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
85
86 fn param_spec_builder() -> Self::BuilderFn {
87 Self::ParamSpec::builder_with_default
88 }
89}
90
91#[cfg(feature = "v1_16")]
92#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
93impl glib::value::ValueType for WebRTCBundlePolicy {
94 type Type = Self;
95}
96
97#[cfg(feature = "v1_16")]
98#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
99unsafe impl<'a> glib::value::FromValue<'a> for WebRTCBundlePolicy {
100 type Checker = glib::value::GenericValueTypeChecker<Self>;
101
102 #[inline]
103 unsafe fn from_value(value: &'a glib::Value) -> Self {
104 skip_assert_initialized!();
105 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
106 }
107}
108
109#[cfg(feature = "v1_16")]
110#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
111impl ToValue for WebRTCBundlePolicy {
112 #[inline]
113 fn to_value(&self) -> glib::Value {
114 let mut value = glib::Value::for_value_type::<Self>();
115 unsafe {
116 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
117 }
118 value
119 }
120
121 #[inline]
122 fn value_type(&self) -> glib::Type {
123 Self::static_type()
124 }
125}
126
127#[cfg(feature = "v1_16")]
128#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
129impl From<WebRTCBundlePolicy> for glib::Value {
130 #[inline]
131 fn from(v: WebRTCBundlePolicy) -> Self {
132 skip_assert_initialized!();
133 ToValue::to_value(&v)
134 }
135}
136
137#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
138#[non_exhaustive]
139#[doc(alias = "GstWebRTCDTLSSetup")]
140pub enum WebRTCDTLSSetup {
141 #[doc(alias = "GST_WEBRTC_DTLS_SETUP_NONE")]
143 None,
144 #[doc(alias = "GST_WEBRTC_DTLS_SETUP_ACTPASS")]
146 Actpass,
147 #[doc(alias = "GST_WEBRTC_DTLS_SETUP_ACTIVE")]
149 Active,
150 #[doc(alias = "GST_WEBRTC_DTLS_SETUP_PASSIVE")]
152 Passive,
153 #[doc(hidden)]
154 __Unknown(i32),
155}
156
157#[doc(hidden)]
158impl IntoGlib for WebRTCDTLSSetup {
159 type GlibType = ffi::GstWebRTCDTLSSetup;
160
161 #[inline]
162 fn into_glib(self) -> ffi::GstWebRTCDTLSSetup {
163 match self {
164 Self::None => ffi::GST_WEBRTC_DTLS_SETUP_NONE,
165 Self::Actpass => ffi::GST_WEBRTC_DTLS_SETUP_ACTPASS,
166 Self::Active => ffi::GST_WEBRTC_DTLS_SETUP_ACTIVE,
167 Self::Passive => ffi::GST_WEBRTC_DTLS_SETUP_PASSIVE,
168 Self::__Unknown(value) => value,
169 }
170 }
171}
172
173#[doc(hidden)]
174impl FromGlib<ffi::GstWebRTCDTLSSetup> for WebRTCDTLSSetup {
175 #[inline]
176 unsafe fn from_glib(value: ffi::GstWebRTCDTLSSetup) -> Self {
177 skip_assert_initialized!();
178
179 match value {
180 ffi::GST_WEBRTC_DTLS_SETUP_NONE => Self::None,
181 ffi::GST_WEBRTC_DTLS_SETUP_ACTPASS => Self::Actpass,
182 ffi::GST_WEBRTC_DTLS_SETUP_ACTIVE => Self::Active,
183 ffi::GST_WEBRTC_DTLS_SETUP_PASSIVE => Self::Passive,
184 value => Self::__Unknown(value),
185 }
186 }
187}
188
189impl StaticType for WebRTCDTLSSetup {
190 #[inline]
191 #[doc(alias = "gst_webrtc_dtls_setup_get_type")]
192 fn static_type() -> glib::Type {
193 unsafe { from_glib(ffi::gst_webrtc_dtls_setup_get_type()) }
194 }
195}
196
197impl glib::HasParamSpec for WebRTCDTLSSetup {
198 type ParamSpec = glib::ParamSpecEnum;
199 type SetValue = Self;
200 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
201
202 fn param_spec_builder() -> Self::BuilderFn {
203 Self::ParamSpec::builder_with_default
204 }
205}
206
207impl glib::value::ValueType for WebRTCDTLSSetup {
208 type Type = Self;
209}
210
211unsafe impl<'a> glib::value::FromValue<'a> for WebRTCDTLSSetup {
212 type Checker = glib::value::GenericValueTypeChecker<Self>;
213
214 #[inline]
215 unsafe fn from_value(value: &'a glib::Value) -> Self {
216 skip_assert_initialized!();
217 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
218 }
219}
220
221impl ToValue for WebRTCDTLSSetup {
222 #[inline]
223 fn to_value(&self) -> glib::Value {
224 let mut value = glib::Value::for_value_type::<Self>();
225 unsafe {
226 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
227 }
228 value
229 }
230
231 #[inline]
232 fn value_type(&self) -> glib::Type {
233 Self::static_type()
234 }
235}
236
237impl From<WebRTCDTLSSetup> for glib::Value {
238 #[inline]
239 fn from(v: WebRTCDTLSSetup) -> Self {
240 skip_assert_initialized!();
241 ToValue::to_value(&v)
242 }
243}
244
245#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
246#[non_exhaustive]
247#[doc(alias = "GstWebRTCDTLSTransportState")]
248pub enum WebRTCDTLSTransportState {
249 #[doc(alias = "GST_WEBRTC_DTLS_TRANSPORT_STATE_NEW")]
251 New,
252 #[doc(alias = "GST_WEBRTC_DTLS_TRANSPORT_STATE_CLOSED")]
254 Closed,
255 #[doc(alias = "GST_WEBRTC_DTLS_TRANSPORT_STATE_FAILED")]
257 Failed,
258 #[doc(alias = "GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTING")]
260 Connecting,
261 #[doc(alias = "GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTED")]
263 Connected,
264 #[doc(hidden)]
265 __Unknown(i32),
266}
267
268#[doc(hidden)]
269impl IntoGlib for WebRTCDTLSTransportState {
270 type GlibType = ffi::GstWebRTCDTLSTransportState;
271
272 #[inline]
273 fn into_glib(self) -> ffi::GstWebRTCDTLSTransportState {
274 match self {
275 Self::New => ffi::GST_WEBRTC_DTLS_TRANSPORT_STATE_NEW,
276 Self::Closed => ffi::GST_WEBRTC_DTLS_TRANSPORT_STATE_CLOSED,
277 Self::Failed => ffi::GST_WEBRTC_DTLS_TRANSPORT_STATE_FAILED,
278 Self::Connecting => ffi::GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTING,
279 Self::Connected => ffi::GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTED,
280 Self::__Unknown(value) => value,
281 }
282 }
283}
284
285#[doc(hidden)]
286impl FromGlib<ffi::GstWebRTCDTLSTransportState> for WebRTCDTLSTransportState {
287 #[inline]
288 unsafe fn from_glib(value: ffi::GstWebRTCDTLSTransportState) -> Self {
289 skip_assert_initialized!();
290
291 match value {
292 ffi::GST_WEBRTC_DTLS_TRANSPORT_STATE_NEW => Self::New,
293 ffi::GST_WEBRTC_DTLS_TRANSPORT_STATE_CLOSED => Self::Closed,
294 ffi::GST_WEBRTC_DTLS_TRANSPORT_STATE_FAILED => Self::Failed,
295 ffi::GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTING => Self::Connecting,
296 ffi::GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTED => Self::Connected,
297 value => Self::__Unknown(value),
298 }
299 }
300}
301
302impl StaticType for WebRTCDTLSTransportState {
303 #[inline]
304 #[doc(alias = "gst_webrtc_dtls_transport_state_get_type")]
305 fn static_type() -> glib::Type {
306 unsafe { from_glib(ffi::gst_webrtc_dtls_transport_state_get_type()) }
307 }
308}
309
310impl glib::HasParamSpec for WebRTCDTLSTransportState {
311 type ParamSpec = glib::ParamSpecEnum;
312 type SetValue = Self;
313 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
314
315 fn param_spec_builder() -> Self::BuilderFn {
316 Self::ParamSpec::builder_with_default
317 }
318}
319
320impl glib::value::ValueType for WebRTCDTLSTransportState {
321 type Type = Self;
322}
323
324unsafe impl<'a> glib::value::FromValue<'a> for WebRTCDTLSTransportState {
325 type Checker = glib::value::GenericValueTypeChecker<Self>;
326
327 #[inline]
328 unsafe fn from_value(value: &'a glib::Value) -> Self {
329 skip_assert_initialized!();
330 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
331 }
332}
333
334impl ToValue for WebRTCDTLSTransportState {
335 #[inline]
336 fn to_value(&self) -> glib::Value {
337 let mut value = glib::Value::for_value_type::<Self>();
338 unsafe {
339 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
340 }
341 value
342 }
343
344 #[inline]
345 fn value_type(&self) -> glib::Type {
346 Self::static_type()
347 }
348}
349
350impl From<WebRTCDTLSTransportState> for glib::Value {
351 #[inline]
352 fn from(v: WebRTCDTLSTransportState) -> Self {
353 skip_assert_initialized!();
354 ToValue::to_value(&v)
355 }
356}
357
358#[cfg(feature = "v1_16")]
360#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
361#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
362#[non_exhaustive]
363#[doc(alias = "GstWebRTCDataChannelState")]
364pub enum WebRTCDataChannelState {
365 #[doc(alias = "GST_WEBRTC_DATA_CHANNEL_STATE_CONNECTING")]
367 Connecting,
368 #[doc(alias = "GST_WEBRTC_DATA_CHANNEL_STATE_OPEN")]
370 Open,
371 #[doc(alias = "GST_WEBRTC_DATA_CHANNEL_STATE_CLOSING")]
373 Closing,
374 #[doc(alias = "GST_WEBRTC_DATA_CHANNEL_STATE_CLOSED")]
376 Closed,
377 #[doc(hidden)]
378 __Unknown(i32),
379}
380
381#[cfg(feature = "v1_16")]
382#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
383#[doc(hidden)]
384impl IntoGlib for WebRTCDataChannelState {
385 type GlibType = ffi::GstWebRTCDataChannelState;
386
387 #[inline]
388 fn into_glib(self) -> ffi::GstWebRTCDataChannelState {
389 match self {
390 Self::Connecting => ffi::GST_WEBRTC_DATA_CHANNEL_STATE_CONNECTING,
391 Self::Open => ffi::GST_WEBRTC_DATA_CHANNEL_STATE_OPEN,
392 Self::Closing => ffi::GST_WEBRTC_DATA_CHANNEL_STATE_CLOSING,
393 Self::Closed => ffi::GST_WEBRTC_DATA_CHANNEL_STATE_CLOSED,
394 Self::__Unknown(value) => value,
395 }
396 }
397}
398
399#[cfg(feature = "v1_16")]
400#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
401#[doc(hidden)]
402impl FromGlib<ffi::GstWebRTCDataChannelState> for WebRTCDataChannelState {
403 #[inline]
404 unsafe fn from_glib(value: ffi::GstWebRTCDataChannelState) -> Self {
405 skip_assert_initialized!();
406
407 match value {
408 ffi::GST_WEBRTC_DATA_CHANNEL_STATE_CONNECTING => Self::Connecting,
409 ffi::GST_WEBRTC_DATA_CHANNEL_STATE_OPEN => Self::Open,
410 ffi::GST_WEBRTC_DATA_CHANNEL_STATE_CLOSING => Self::Closing,
411 ffi::GST_WEBRTC_DATA_CHANNEL_STATE_CLOSED => Self::Closed,
412 value => Self::__Unknown(value),
413 }
414 }
415}
416
417#[cfg(feature = "v1_16")]
418#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
419impl StaticType for WebRTCDataChannelState {
420 #[inline]
421 #[doc(alias = "gst_webrtc_data_channel_state_get_type")]
422 fn static_type() -> glib::Type {
423 unsafe { from_glib(ffi::gst_webrtc_data_channel_state_get_type()) }
424 }
425}
426
427#[cfg(feature = "v1_16")]
428#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
429impl glib::HasParamSpec for WebRTCDataChannelState {
430 type ParamSpec = glib::ParamSpecEnum;
431 type SetValue = Self;
432 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
433
434 fn param_spec_builder() -> Self::BuilderFn {
435 Self::ParamSpec::builder_with_default
436 }
437}
438
439#[cfg(feature = "v1_16")]
440#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
441impl glib::value::ValueType for WebRTCDataChannelState {
442 type Type = Self;
443}
444
445#[cfg(feature = "v1_16")]
446#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
447unsafe impl<'a> glib::value::FromValue<'a> for WebRTCDataChannelState {
448 type Checker = glib::value::GenericValueTypeChecker<Self>;
449
450 #[inline]
451 unsafe fn from_value(value: &'a glib::Value) -> Self {
452 skip_assert_initialized!();
453 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
454 }
455}
456
457#[cfg(feature = "v1_16")]
458#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
459impl ToValue for WebRTCDataChannelState {
460 #[inline]
461 fn to_value(&self) -> glib::Value {
462 let mut value = glib::Value::for_value_type::<Self>();
463 unsafe {
464 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
465 }
466 value
467 }
468
469 #[inline]
470 fn value_type(&self) -> glib::Type {
471 Self::static_type()
472 }
473}
474
475#[cfg(feature = "v1_16")]
476#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
477impl From<WebRTCDataChannelState> for glib::Value {
478 #[inline]
479 fn from(v: WebRTCDataChannelState) -> Self {
480 skip_assert_initialized!();
481 ToValue::to_value(&v)
482 }
483}
484
485#[cfg(feature = "v1_20")]
487#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
488#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
489#[non_exhaustive]
490#[doc(alias = "GstWebRTCError")]
491pub enum WebRTCError {
492 #[doc(alias = "GST_WEBRTC_ERROR_DATA_CHANNEL_FAILURE")]
494 DataChannelFailure,
495 #[doc(alias = "GST_WEBRTC_ERROR_DTLS_FAILURE")]
497 DtlsFailure,
498 #[doc(alias = "GST_WEBRTC_ERROR_FINGERPRINT_FAILURE")]
500 FingerprintFailure,
501 #[doc(alias = "GST_WEBRTC_ERROR_SCTP_FAILURE")]
503 SctpFailure,
504 #[doc(alias = "GST_WEBRTC_ERROR_SDP_SYNTAX_ERROR")]
506 SdpSyntaxError,
507 #[doc(alias = "GST_WEBRTC_ERROR_HARDWARE_ENCODER_NOT_AVAILABLE")]
509 HardwareEncoderNotAvailable,
510 #[doc(alias = "GST_WEBRTC_ERROR_ENCODER_ERROR")]
512 EncoderError,
513 #[doc(alias = "GST_WEBRTC_ERROR_INVALID_STATE")]
515 InvalidState,
516 #[doc(alias = "GST_WEBRTC_ERROR_INTERNAL_FAILURE")]
518 InternalFailure,
519 #[cfg(feature = "v1_22")]
521 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
522 #[doc(alias = "GST_WEBRTC_ERROR_INVALID_MODIFICATION")]
523 InvalidModification,
524 #[cfg(feature = "v1_22")]
526 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
527 #[doc(alias = "GST_WEBRTC_ERROR_TYPE_ERROR")]
528 TypeError,
529 #[doc(hidden)]
530 __Unknown(i32),
531}
532
533#[cfg(feature = "v1_20")]
534#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
535#[doc(hidden)]
536impl IntoGlib for WebRTCError {
537 type GlibType = ffi::GstWebRTCError;
538
539 #[inline]
540 fn into_glib(self) -> ffi::GstWebRTCError {
541 match self {
542 Self::DataChannelFailure => ffi::GST_WEBRTC_ERROR_DATA_CHANNEL_FAILURE,
543 Self::DtlsFailure => ffi::GST_WEBRTC_ERROR_DTLS_FAILURE,
544 Self::FingerprintFailure => ffi::GST_WEBRTC_ERROR_FINGERPRINT_FAILURE,
545 Self::SctpFailure => ffi::GST_WEBRTC_ERROR_SCTP_FAILURE,
546 Self::SdpSyntaxError => ffi::GST_WEBRTC_ERROR_SDP_SYNTAX_ERROR,
547 Self::HardwareEncoderNotAvailable => {
548 ffi::GST_WEBRTC_ERROR_HARDWARE_ENCODER_NOT_AVAILABLE
549 }
550 Self::EncoderError => ffi::GST_WEBRTC_ERROR_ENCODER_ERROR,
551 Self::InvalidState => ffi::GST_WEBRTC_ERROR_INVALID_STATE,
552 Self::InternalFailure => ffi::GST_WEBRTC_ERROR_INTERNAL_FAILURE,
553 #[cfg(feature = "v1_22")]
554 Self::InvalidModification => ffi::GST_WEBRTC_ERROR_INVALID_MODIFICATION,
555 #[cfg(feature = "v1_22")]
556 Self::TypeError => ffi::GST_WEBRTC_ERROR_TYPE_ERROR,
557 Self::__Unknown(value) => value,
558 }
559 }
560}
561
562#[cfg(feature = "v1_20")]
563#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
564#[doc(hidden)]
565impl FromGlib<ffi::GstWebRTCError> for WebRTCError {
566 #[inline]
567 unsafe fn from_glib(value: ffi::GstWebRTCError) -> Self {
568 skip_assert_initialized!();
569
570 match value {
571 ffi::GST_WEBRTC_ERROR_DATA_CHANNEL_FAILURE => Self::DataChannelFailure,
572 ffi::GST_WEBRTC_ERROR_DTLS_FAILURE => Self::DtlsFailure,
573 ffi::GST_WEBRTC_ERROR_FINGERPRINT_FAILURE => Self::FingerprintFailure,
574 ffi::GST_WEBRTC_ERROR_SCTP_FAILURE => Self::SctpFailure,
575 ffi::GST_WEBRTC_ERROR_SDP_SYNTAX_ERROR => Self::SdpSyntaxError,
576 ffi::GST_WEBRTC_ERROR_HARDWARE_ENCODER_NOT_AVAILABLE => {
577 Self::HardwareEncoderNotAvailable
578 }
579 ffi::GST_WEBRTC_ERROR_ENCODER_ERROR => Self::EncoderError,
580 ffi::GST_WEBRTC_ERROR_INVALID_STATE => Self::InvalidState,
581 ffi::GST_WEBRTC_ERROR_INTERNAL_FAILURE => Self::InternalFailure,
582 #[cfg(feature = "v1_22")]
583 ffi::GST_WEBRTC_ERROR_INVALID_MODIFICATION => Self::InvalidModification,
584 #[cfg(feature = "v1_22")]
585 ffi::GST_WEBRTC_ERROR_TYPE_ERROR => Self::TypeError,
586 value => Self::__Unknown(value),
587 }
588 }
589}
590
591#[cfg(feature = "v1_20")]
592#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
593impl glib::error::ErrorDomain for WebRTCError {
594 #[inline]
595 fn domain() -> glib::Quark {
596 skip_assert_initialized!();
597
598 unsafe { from_glib(ffi::gst_webrtc_error_quark()) }
599 }
600
601 #[inline]
602 fn code(self) -> i32 {
603 self.into_glib()
604 }
605
606 #[inline]
607 #[allow(clippy::match_single_binding)]
608 fn from(code: i32) -> Option<Self> {
609 skip_assert_initialized!();
610 match unsafe { from_glib(code) } {
611 value => Some(value),
612 }
613 }
614}
615
616#[cfg(feature = "v1_20")]
617#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
618impl StaticType for WebRTCError {
619 #[inline]
620 #[doc(alias = "gst_webrtc_error_get_type")]
621 fn static_type() -> glib::Type {
622 unsafe { from_glib(ffi::gst_webrtc_error_get_type()) }
623 }
624}
625
626#[cfg(feature = "v1_20")]
627#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
628impl glib::HasParamSpec for WebRTCError {
629 type ParamSpec = glib::ParamSpecEnum;
630 type SetValue = Self;
631 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
632
633 fn param_spec_builder() -> Self::BuilderFn {
634 Self::ParamSpec::builder_with_default
635 }
636}
637
638#[cfg(feature = "v1_20")]
639#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
640impl glib::value::ValueType for WebRTCError {
641 type Type = Self;
642}
643
644#[cfg(feature = "v1_20")]
645#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
646unsafe impl<'a> glib::value::FromValue<'a> for WebRTCError {
647 type Checker = glib::value::GenericValueTypeChecker<Self>;
648
649 #[inline]
650 unsafe fn from_value(value: &'a glib::Value) -> Self {
651 skip_assert_initialized!();
652 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
653 }
654}
655
656#[cfg(feature = "v1_20")]
657#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
658impl ToValue for WebRTCError {
659 #[inline]
660 fn to_value(&self) -> glib::Value {
661 let mut value = glib::Value::for_value_type::<Self>();
662 unsafe {
663 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
664 }
665 value
666 }
667
668 #[inline]
669 fn value_type(&self) -> glib::Type {
670 Self::static_type()
671 }
672}
673
674#[cfg(feature = "v1_20")]
675#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
676impl From<WebRTCError> for glib::Value {
677 #[inline]
678 fn from(v: WebRTCError) -> Self {
679 skip_assert_initialized!();
680 ToValue::to_value(&v)
681 }
682}
683
684#[cfg(feature = "v1_14_1")]
685#[cfg_attr(docsrs, doc(cfg(feature = "v1_14_1")))]
686#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
687#[non_exhaustive]
688#[doc(alias = "GstWebRTCFECType")]
689pub enum WebRTCFECType {
690 #[doc(alias = "GST_WEBRTC_FEC_TYPE_NONE")]
692 None,
693 #[doc(alias = "GST_WEBRTC_FEC_TYPE_ULP_RED")]
695 UlpRed,
696 #[doc(hidden)]
697 __Unknown(i32),
698}
699
700#[cfg(feature = "v1_14_1")]
701#[cfg_attr(docsrs, doc(cfg(feature = "v1_14_1")))]
702#[doc(hidden)]
703impl IntoGlib for WebRTCFECType {
704 type GlibType = ffi::GstWebRTCFECType;
705
706 #[inline]
707 fn into_glib(self) -> ffi::GstWebRTCFECType {
708 match self {
709 Self::None => ffi::GST_WEBRTC_FEC_TYPE_NONE,
710 Self::UlpRed => ffi::GST_WEBRTC_FEC_TYPE_ULP_RED,
711 Self::__Unknown(value) => value,
712 }
713 }
714}
715
716#[cfg(feature = "v1_14_1")]
717#[cfg_attr(docsrs, doc(cfg(feature = "v1_14_1")))]
718#[doc(hidden)]
719impl FromGlib<ffi::GstWebRTCFECType> for WebRTCFECType {
720 #[inline]
721 unsafe fn from_glib(value: ffi::GstWebRTCFECType) -> Self {
722 skip_assert_initialized!();
723
724 match value {
725 ffi::GST_WEBRTC_FEC_TYPE_NONE => Self::None,
726 ffi::GST_WEBRTC_FEC_TYPE_ULP_RED => Self::UlpRed,
727 value => Self::__Unknown(value),
728 }
729 }
730}
731
732#[cfg(feature = "v1_14_1")]
733#[cfg_attr(docsrs, doc(cfg(feature = "v1_14_1")))]
734impl StaticType for WebRTCFECType {
735 #[inline]
736 #[doc(alias = "gst_webrtc_fec_type_get_type")]
737 fn static_type() -> glib::Type {
738 unsafe { from_glib(ffi::gst_webrtc_fec_type_get_type()) }
739 }
740}
741
742#[cfg(feature = "v1_14_1")]
743#[cfg_attr(docsrs, doc(cfg(feature = "v1_14_1")))]
744impl glib::HasParamSpec for WebRTCFECType {
745 type ParamSpec = glib::ParamSpecEnum;
746 type SetValue = Self;
747 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
748
749 fn param_spec_builder() -> Self::BuilderFn {
750 Self::ParamSpec::builder_with_default
751 }
752}
753
754#[cfg(feature = "v1_14_1")]
755#[cfg_attr(docsrs, doc(cfg(feature = "v1_14_1")))]
756impl glib::value::ValueType for WebRTCFECType {
757 type Type = Self;
758}
759
760#[cfg(feature = "v1_14_1")]
761#[cfg_attr(docsrs, doc(cfg(feature = "v1_14_1")))]
762unsafe impl<'a> glib::value::FromValue<'a> for WebRTCFECType {
763 type Checker = glib::value::GenericValueTypeChecker<Self>;
764
765 #[inline]
766 unsafe fn from_value(value: &'a glib::Value) -> Self {
767 skip_assert_initialized!();
768 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
769 }
770}
771
772#[cfg(feature = "v1_14_1")]
773#[cfg_attr(docsrs, doc(cfg(feature = "v1_14_1")))]
774impl ToValue for WebRTCFECType {
775 #[inline]
776 fn to_value(&self) -> glib::Value {
777 let mut value = glib::Value::for_value_type::<Self>();
778 unsafe {
779 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
780 }
781 value
782 }
783
784 #[inline]
785 fn value_type(&self) -> glib::Type {
786 Self::static_type()
787 }
788}
789
790#[cfg(feature = "v1_14_1")]
791#[cfg_attr(docsrs, doc(cfg(feature = "v1_14_1")))]
792impl From<WebRTCFECType> for glib::Value {
793 #[inline]
794 fn from(v: WebRTCFECType) -> Self {
795 skip_assert_initialized!();
796 ToValue::to_value(&v)
797 }
798}
799
800#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
801#[non_exhaustive]
802#[doc(alias = "GstWebRTCICEComponent")]
803pub enum WebRTCICEComponent {
804 #[doc(alias = "GST_WEBRTC_ICE_COMPONENT_RTP")]
806 Rtp,
807 #[doc(alias = "GST_WEBRTC_ICE_COMPONENT_RTCP")]
809 Rtcp,
810 #[doc(hidden)]
811 __Unknown(i32),
812}
813
814#[doc(hidden)]
815impl IntoGlib for WebRTCICEComponent {
816 type GlibType = ffi::GstWebRTCICEComponent;
817
818 #[inline]
819 fn into_glib(self) -> ffi::GstWebRTCICEComponent {
820 match self {
821 Self::Rtp => ffi::GST_WEBRTC_ICE_COMPONENT_RTP,
822 Self::Rtcp => ffi::GST_WEBRTC_ICE_COMPONENT_RTCP,
823 Self::__Unknown(value) => value,
824 }
825 }
826}
827
828#[doc(hidden)]
829impl FromGlib<ffi::GstWebRTCICEComponent> for WebRTCICEComponent {
830 #[inline]
831 unsafe fn from_glib(value: ffi::GstWebRTCICEComponent) -> Self {
832 skip_assert_initialized!();
833
834 match value {
835 ffi::GST_WEBRTC_ICE_COMPONENT_RTP => Self::Rtp,
836 ffi::GST_WEBRTC_ICE_COMPONENT_RTCP => Self::Rtcp,
837 value => Self::__Unknown(value),
838 }
839 }
840}
841
842impl StaticType for WebRTCICEComponent {
843 #[inline]
844 #[doc(alias = "gst_webrtc_ice_component_get_type")]
845 fn static_type() -> glib::Type {
846 unsafe { from_glib(ffi::gst_webrtc_ice_component_get_type()) }
847 }
848}
849
850impl glib::HasParamSpec for WebRTCICEComponent {
851 type ParamSpec = glib::ParamSpecEnum;
852 type SetValue = Self;
853 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
854
855 fn param_spec_builder() -> Self::BuilderFn {
856 Self::ParamSpec::builder_with_default
857 }
858}
859
860impl glib::value::ValueType for WebRTCICEComponent {
861 type Type = Self;
862}
863
864unsafe impl<'a> glib::value::FromValue<'a> for WebRTCICEComponent {
865 type Checker = glib::value::GenericValueTypeChecker<Self>;
866
867 #[inline]
868 unsafe fn from_value(value: &'a glib::Value) -> Self {
869 skip_assert_initialized!();
870 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
871 }
872}
873
874impl ToValue for WebRTCICEComponent {
875 #[inline]
876 fn to_value(&self) -> glib::Value {
877 let mut value = glib::Value::for_value_type::<Self>();
878 unsafe {
879 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
880 }
881 value
882 }
883
884 #[inline]
885 fn value_type(&self) -> glib::Type {
886 Self::static_type()
887 }
888}
889
890impl From<WebRTCICEComponent> for glib::Value {
891 #[inline]
892 fn from(v: WebRTCICEComponent) -> Self {
893 skip_assert_initialized!();
894 ToValue::to_value(&v)
895 }
896}
897
898#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
900#[non_exhaustive]
901#[doc(alias = "GstWebRTCICEConnectionState")]
902pub enum WebRTCICEConnectionState {
903 #[doc(alias = "GST_WEBRTC_ICE_CONNECTION_STATE_NEW")]
905 New,
906 #[doc(alias = "GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING")]
908 Checking,
909 #[doc(alias = "GST_WEBRTC_ICE_CONNECTION_STATE_CONNECTED")]
911 Connected,
912 #[doc(alias = "GST_WEBRTC_ICE_CONNECTION_STATE_COMPLETED")]
914 Completed,
915 #[doc(alias = "GST_WEBRTC_ICE_CONNECTION_STATE_FAILED")]
917 Failed,
918 #[doc(alias = "GST_WEBRTC_ICE_CONNECTION_STATE_DISCONNECTED")]
920 Disconnected,
921 #[doc(alias = "GST_WEBRTC_ICE_CONNECTION_STATE_CLOSED")]
923 Closed,
924 #[doc(hidden)]
925 __Unknown(i32),
926}
927
928#[doc(hidden)]
929impl IntoGlib for WebRTCICEConnectionState {
930 type GlibType = ffi::GstWebRTCICEConnectionState;
931
932 #[inline]
933 fn into_glib(self) -> ffi::GstWebRTCICEConnectionState {
934 match self {
935 Self::New => ffi::GST_WEBRTC_ICE_CONNECTION_STATE_NEW,
936 Self::Checking => ffi::GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING,
937 Self::Connected => ffi::GST_WEBRTC_ICE_CONNECTION_STATE_CONNECTED,
938 Self::Completed => ffi::GST_WEBRTC_ICE_CONNECTION_STATE_COMPLETED,
939 Self::Failed => ffi::GST_WEBRTC_ICE_CONNECTION_STATE_FAILED,
940 Self::Disconnected => ffi::GST_WEBRTC_ICE_CONNECTION_STATE_DISCONNECTED,
941 Self::Closed => ffi::GST_WEBRTC_ICE_CONNECTION_STATE_CLOSED,
942 Self::__Unknown(value) => value,
943 }
944 }
945}
946
947#[doc(hidden)]
948impl FromGlib<ffi::GstWebRTCICEConnectionState> for WebRTCICEConnectionState {
949 #[inline]
950 unsafe fn from_glib(value: ffi::GstWebRTCICEConnectionState) -> Self {
951 skip_assert_initialized!();
952
953 match value {
954 ffi::GST_WEBRTC_ICE_CONNECTION_STATE_NEW => Self::New,
955 ffi::GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING => Self::Checking,
956 ffi::GST_WEBRTC_ICE_CONNECTION_STATE_CONNECTED => Self::Connected,
957 ffi::GST_WEBRTC_ICE_CONNECTION_STATE_COMPLETED => Self::Completed,
958 ffi::GST_WEBRTC_ICE_CONNECTION_STATE_FAILED => Self::Failed,
959 ffi::GST_WEBRTC_ICE_CONNECTION_STATE_DISCONNECTED => Self::Disconnected,
960 ffi::GST_WEBRTC_ICE_CONNECTION_STATE_CLOSED => Self::Closed,
961 value => Self::__Unknown(value),
962 }
963 }
964}
965
966impl StaticType for WebRTCICEConnectionState {
967 #[inline]
968 #[doc(alias = "gst_webrtc_ice_connection_state_get_type")]
969 fn static_type() -> glib::Type {
970 unsafe { from_glib(ffi::gst_webrtc_ice_connection_state_get_type()) }
971 }
972}
973
974impl glib::HasParamSpec for WebRTCICEConnectionState {
975 type ParamSpec = glib::ParamSpecEnum;
976 type SetValue = Self;
977 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
978
979 fn param_spec_builder() -> Self::BuilderFn {
980 Self::ParamSpec::builder_with_default
981 }
982}
983
984impl glib::value::ValueType for WebRTCICEConnectionState {
985 type Type = Self;
986}
987
988unsafe impl<'a> glib::value::FromValue<'a> for WebRTCICEConnectionState {
989 type Checker = glib::value::GenericValueTypeChecker<Self>;
990
991 #[inline]
992 unsafe fn from_value(value: &'a glib::Value) -> Self {
993 skip_assert_initialized!();
994 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
995 }
996}
997
998impl ToValue for WebRTCICEConnectionState {
999 #[inline]
1000 fn to_value(&self) -> glib::Value {
1001 let mut value = glib::Value::for_value_type::<Self>();
1002 unsafe {
1003 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1004 }
1005 value
1006 }
1007
1008 #[inline]
1009 fn value_type(&self) -> glib::Type {
1010 Self::static_type()
1011 }
1012}
1013
1014impl From<WebRTCICEConnectionState> for glib::Value {
1015 #[inline]
1016 fn from(v: WebRTCICEConnectionState) -> Self {
1017 skip_assert_initialized!();
1018 ToValue::to_value(&v)
1019 }
1020}
1021
1022#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1024#[non_exhaustive]
1025#[doc(alias = "GstWebRTCICEGatheringState")]
1026pub enum WebRTCICEGatheringState {
1027 #[doc(alias = "GST_WEBRTC_ICE_GATHERING_STATE_NEW")]
1029 New,
1030 #[doc(alias = "GST_WEBRTC_ICE_GATHERING_STATE_GATHERING")]
1032 Gathering,
1033 #[doc(alias = "GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE")]
1035 Complete,
1036 #[doc(hidden)]
1037 __Unknown(i32),
1038}
1039
1040#[doc(hidden)]
1041impl IntoGlib for WebRTCICEGatheringState {
1042 type GlibType = ffi::GstWebRTCICEGatheringState;
1043
1044 #[inline]
1045 fn into_glib(self) -> ffi::GstWebRTCICEGatheringState {
1046 match self {
1047 Self::New => ffi::GST_WEBRTC_ICE_GATHERING_STATE_NEW,
1048 Self::Gathering => ffi::GST_WEBRTC_ICE_GATHERING_STATE_GATHERING,
1049 Self::Complete => ffi::GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE,
1050 Self::__Unknown(value) => value,
1051 }
1052 }
1053}
1054
1055#[doc(hidden)]
1056impl FromGlib<ffi::GstWebRTCICEGatheringState> for WebRTCICEGatheringState {
1057 #[inline]
1058 unsafe fn from_glib(value: ffi::GstWebRTCICEGatheringState) -> Self {
1059 skip_assert_initialized!();
1060
1061 match value {
1062 ffi::GST_WEBRTC_ICE_GATHERING_STATE_NEW => Self::New,
1063 ffi::GST_WEBRTC_ICE_GATHERING_STATE_GATHERING => Self::Gathering,
1064 ffi::GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE => Self::Complete,
1065 value => Self::__Unknown(value),
1066 }
1067 }
1068}
1069
1070impl StaticType for WebRTCICEGatheringState {
1071 #[inline]
1072 #[doc(alias = "gst_webrtc_ice_gathering_state_get_type")]
1073 fn static_type() -> glib::Type {
1074 unsafe { from_glib(ffi::gst_webrtc_ice_gathering_state_get_type()) }
1075 }
1076}
1077
1078impl glib::HasParamSpec for WebRTCICEGatheringState {
1079 type ParamSpec = glib::ParamSpecEnum;
1080 type SetValue = Self;
1081 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1082
1083 fn param_spec_builder() -> Self::BuilderFn {
1084 Self::ParamSpec::builder_with_default
1085 }
1086}
1087
1088impl glib::value::ValueType for WebRTCICEGatheringState {
1089 type Type = Self;
1090}
1091
1092unsafe impl<'a> glib::value::FromValue<'a> for WebRTCICEGatheringState {
1093 type Checker = glib::value::GenericValueTypeChecker<Self>;
1094
1095 #[inline]
1096 unsafe fn from_value(value: &'a glib::Value) -> Self {
1097 skip_assert_initialized!();
1098 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1099 }
1100}
1101
1102impl ToValue for WebRTCICEGatheringState {
1103 #[inline]
1104 fn to_value(&self) -> glib::Value {
1105 let mut value = glib::Value::for_value_type::<Self>();
1106 unsafe {
1107 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1108 }
1109 value
1110 }
1111
1112 #[inline]
1113 fn value_type(&self) -> glib::Type {
1114 Self::static_type()
1115 }
1116}
1117
1118impl From<WebRTCICEGatheringState> for glib::Value {
1119 #[inline]
1120 fn from(v: WebRTCICEGatheringState) -> Self {
1121 skip_assert_initialized!();
1122 ToValue::to_value(&v)
1123 }
1124}
1125
1126#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1127#[non_exhaustive]
1128#[doc(alias = "GstWebRTCICERole")]
1129pub enum WebRTCICERole {
1130 #[doc(alias = "GST_WEBRTC_ICE_ROLE_CONTROLLED")]
1132 Controlled,
1133 #[doc(alias = "GST_WEBRTC_ICE_ROLE_CONTROLLING")]
1135 Controlling,
1136 #[doc(hidden)]
1137 __Unknown(i32),
1138}
1139
1140#[doc(hidden)]
1141impl IntoGlib for WebRTCICERole {
1142 type GlibType = ffi::GstWebRTCICERole;
1143
1144 #[inline]
1145 fn into_glib(self) -> ffi::GstWebRTCICERole {
1146 match self {
1147 Self::Controlled => ffi::GST_WEBRTC_ICE_ROLE_CONTROLLED,
1148 Self::Controlling => ffi::GST_WEBRTC_ICE_ROLE_CONTROLLING,
1149 Self::__Unknown(value) => value,
1150 }
1151 }
1152}
1153
1154#[doc(hidden)]
1155impl FromGlib<ffi::GstWebRTCICERole> for WebRTCICERole {
1156 #[inline]
1157 unsafe fn from_glib(value: ffi::GstWebRTCICERole) -> Self {
1158 skip_assert_initialized!();
1159
1160 match value {
1161 ffi::GST_WEBRTC_ICE_ROLE_CONTROLLED => Self::Controlled,
1162 ffi::GST_WEBRTC_ICE_ROLE_CONTROLLING => Self::Controlling,
1163 value => Self::__Unknown(value),
1164 }
1165 }
1166}
1167
1168impl StaticType for WebRTCICERole {
1169 #[inline]
1170 #[doc(alias = "gst_webrtc_ice_role_get_type")]
1171 fn static_type() -> glib::Type {
1172 unsafe { from_glib(ffi::gst_webrtc_ice_role_get_type()) }
1173 }
1174}
1175
1176impl glib::HasParamSpec for WebRTCICERole {
1177 type ParamSpec = glib::ParamSpecEnum;
1178 type SetValue = Self;
1179 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1180
1181 fn param_spec_builder() -> Self::BuilderFn {
1182 Self::ParamSpec::builder_with_default
1183 }
1184}
1185
1186impl glib::value::ValueType for WebRTCICERole {
1187 type Type = Self;
1188}
1189
1190unsafe impl<'a> glib::value::FromValue<'a> for WebRTCICERole {
1191 type Checker = glib::value::GenericValueTypeChecker<Self>;
1192
1193 #[inline]
1194 unsafe fn from_value(value: &'a glib::Value) -> Self {
1195 skip_assert_initialized!();
1196 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1197 }
1198}
1199
1200impl ToValue for WebRTCICERole {
1201 #[inline]
1202 fn to_value(&self) -> glib::Value {
1203 let mut value = glib::Value::for_value_type::<Self>();
1204 unsafe {
1205 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1206 }
1207 value
1208 }
1209
1210 #[inline]
1211 fn value_type(&self) -> glib::Type {
1212 Self::static_type()
1213 }
1214}
1215
1216impl From<WebRTCICERole> for glib::Value {
1217 #[inline]
1218 fn from(v: WebRTCICERole) -> Self {
1219 skip_assert_initialized!();
1220 ToValue::to_value(&v)
1221 }
1222}
1223
1224#[cfg(feature = "v1_28")]
1225#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1226#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1227#[non_exhaustive]
1228#[doc(alias = "GstWebRTCICETcpCandidateType")]
1229pub enum WebRTCICETcpCandidateType {
1230 #[doc(alias = "GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_ACTIVE")]
1234 Active,
1235 #[doc(alias = "GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_PASSIVE")]
1239 Passive,
1240 #[doc(alias = "GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_SO")]
1243 So,
1244 #[doc(alias = "GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_NONE")]
1246 None,
1247 #[doc(hidden)]
1248 __Unknown(i32),
1249}
1250
1251#[cfg(feature = "v1_28")]
1252#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1253#[doc(hidden)]
1254impl IntoGlib for WebRTCICETcpCandidateType {
1255 type GlibType = ffi::GstWebRTCICETcpCandidateType;
1256
1257 #[inline]
1258 fn into_glib(self) -> ffi::GstWebRTCICETcpCandidateType {
1259 match self {
1260 Self::Active => ffi::GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_ACTIVE,
1261 Self::Passive => ffi::GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_PASSIVE,
1262 Self::So => ffi::GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_SO,
1263 Self::None => ffi::GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_NONE,
1264 Self::__Unknown(value) => value,
1265 }
1266 }
1267}
1268
1269#[cfg(feature = "v1_28")]
1270#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1271#[doc(hidden)]
1272impl FromGlib<ffi::GstWebRTCICETcpCandidateType> for WebRTCICETcpCandidateType {
1273 #[inline]
1274 unsafe fn from_glib(value: ffi::GstWebRTCICETcpCandidateType) -> Self {
1275 skip_assert_initialized!();
1276
1277 match value {
1278 ffi::GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_ACTIVE => Self::Active,
1279 ffi::GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_PASSIVE => Self::Passive,
1280 ffi::GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_SO => Self::So,
1281 ffi::GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_NONE => Self::None,
1282 value => Self::__Unknown(value),
1283 }
1284 }
1285}
1286
1287#[cfg(feature = "v1_28")]
1288#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1289impl StaticType for WebRTCICETcpCandidateType {
1290 #[inline]
1291 #[doc(alias = "gst_webrtc_ice_tcp_candidate_type_get_type")]
1292 fn static_type() -> glib::Type {
1293 unsafe { from_glib(ffi::gst_webrtc_ice_tcp_candidate_type_get_type()) }
1294 }
1295}
1296
1297#[cfg(feature = "v1_28")]
1298#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1299impl glib::HasParamSpec for WebRTCICETcpCandidateType {
1300 type ParamSpec = glib::ParamSpecEnum;
1301 type SetValue = Self;
1302 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1303
1304 fn param_spec_builder() -> Self::BuilderFn {
1305 Self::ParamSpec::builder_with_default
1306 }
1307}
1308
1309#[cfg(feature = "v1_28")]
1310#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1311impl glib::value::ValueType for WebRTCICETcpCandidateType {
1312 type Type = Self;
1313}
1314
1315#[cfg(feature = "v1_28")]
1316#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1317unsafe impl<'a> glib::value::FromValue<'a> for WebRTCICETcpCandidateType {
1318 type Checker = glib::value::GenericValueTypeChecker<Self>;
1319
1320 #[inline]
1321 unsafe fn from_value(value: &'a glib::Value) -> Self {
1322 skip_assert_initialized!();
1323 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1324 }
1325}
1326
1327#[cfg(feature = "v1_28")]
1328#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1329impl ToValue for WebRTCICETcpCandidateType {
1330 #[inline]
1331 fn to_value(&self) -> glib::Value {
1332 let mut value = glib::Value::for_value_type::<Self>();
1333 unsafe {
1334 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1335 }
1336 value
1337 }
1338
1339 #[inline]
1340 fn value_type(&self) -> glib::Type {
1341 Self::static_type()
1342 }
1343}
1344
1345#[cfg(feature = "v1_28")]
1346#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1347impl From<WebRTCICETcpCandidateType> for glib::Value {
1348 #[inline]
1349 fn from(v: WebRTCICETcpCandidateType) -> Self {
1350 skip_assert_initialized!();
1351 ToValue::to_value(&v)
1352 }
1353}
1354
1355#[cfg(feature = "v1_16")]
1358#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1359#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1360#[non_exhaustive]
1361#[doc(alias = "GstWebRTCICETransportPolicy")]
1362pub enum WebRTCICETransportPolicy {
1363 #[doc(alias = "GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL")]
1365 All,
1366 #[doc(alias = "GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY")]
1368 Relay,
1369 #[doc(hidden)]
1370 __Unknown(i32),
1371}
1372
1373#[cfg(feature = "v1_16")]
1374#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1375#[doc(hidden)]
1376impl IntoGlib for WebRTCICETransportPolicy {
1377 type GlibType = ffi::GstWebRTCICETransportPolicy;
1378
1379 #[inline]
1380 fn into_glib(self) -> ffi::GstWebRTCICETransportPolicy {
1381 match self {
1382 Self::All => ffi::GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL,
1383 Self::Relay => ffi::GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY,
1384 Self::__Unknown(value) => value,
1385 }
1386 }
1387}
1388
1389#[cfg(feature = "v1_16")]
1390#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1391#[doc(hidden)]
1392impl FromGlib<ffi::GstWebRTCICETransportPolicy> for WebRTCICETransportPolicy {
1393 #[inline]
1394 unsafe fn from_glib(value: ffi::GstWebRTCICETransportPolicy) -> Self {
1395 skip_assert_initialized!();
1396
1397 match value {
1398 ffi::GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL => Self::All,
1399 ffi::GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY => Self::Relay,
1400 value => Self::__Unknown(value),
1401 }
1402 }
1403}
1404
1405#[cfg(feature = "v1_16")]
1406#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1407impl StaticType for WebRTCICETransportPolicy {
1408 #[inline]
1409 #[doc(alias = "gst_webrtc_ice_transport_policy_get_type")]
1410 fn static_type() -> glib::Type {
1411 unsafe { from_glib(ffi::gst_webrtc_ice_transport_policy_get_type()) }
1412 }
1413}
1414
1415#[cfg(feature = "v1_16")]
1416#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1417impl glib::HasParamSpec for WebRTCICETransportPolicy {
1418 type ParamSpec = glib::ParamSpecEnum;
1419 type SetValue = Self;
1420 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1421
1422 fn param_spec_builder() -> Self::BuilderFn {
1423 Self::ParamSpec::builder_with_default
1424 }
1425}
1426
1427#[cfg(feature = "v1_16")]
1428#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1429impl glib::value::ValueType for WebRTCICETransportPolicy {
1430 type Type = Self;
1431}
1432
1433#[cfg(feature = "v1_16")]
1434#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1435unsafe impl<'a> glib::value::FromValue<'a> for WebRTCICETransportPolicy {
1436 type Checker = glib::value::GenericValueTypeChecker<Self>;
1437
1438 #[inline]
1439 unsafe fn from_value(value: &'a glib::Value) -> Self {
1440 skip_assert_initialized!();
1441 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1442 }
1443}
1444
1445#[cfg(feature = "v1_16")]
1446#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1447impl ToValue for WebRTCICETransportPolicy {
1448 #[inline]
1449 fn to_value(&self) -> glib::Value {
1450 let mut value = glib::Value::for_value_type::<Self>();
1451 unsafe {
1452 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1453 }
1454 value
1455 }
1456
1457 #[inline]
1458 fn value_type(&self) -> glib::Type {
1459 Self::static_type()
1460 }
1461}
1462
1463#[cfg(feature = "v1_16")]
1464#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1465impl From<WebRTCICETransportPolicy> for glib::Value {
1466 #[inline]
1467 fn from(v: WebRTCICETransportPolicy) -> Self {
1468 skip_assert_initialized!();
1469 ToValue::to_value(&v)
1470 }
1471}
1472
1473#[cfg(feature = "v1_20")]
1475#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1476#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1477#[non_exhaustive]
1478#[doc(alias = "GstWebRTCKind")]
1479pub enum WebRTCKind {
1480 #[doc(alias = "GST_WEBRTC_KIND_UNKNOWN")]
1482 Unknown,
1483 #[doc(alias = "GST_WEBRTC_KIND_AUDIO")]
1485 Audio,
1486 #[doc(alias = "GST_WEBRTC_KIND_VIDEO")]
1488 Video,
1489 #[doc(hidden)]
1490 __Unknown(i32),
1491}
1492
1493#[cfg(feature = "v1_20")]
1494#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1495#[doc(hidden)]
1496impl IntoGlib for WebRTCKind {
1497 type GlibType = ffi::GstWebRTCKind;
1498
1499 #[inline]
1500 fn into_glib(self) -> ffi::GstWebRTCKind {
1501 match self {
1502 Self::Unknown => ffi::GST_WEBRTC_KIND_UNKNOWN,
1503 Self::Audio => ffi::GST_WEBRTC_KIND_AUDIO,
1504 Self::Video => ffi::GST_WEBRTC_KIND_VIDEO,
1505 Self::__Unknown(value) => value,
1506 }
1507 }
1508}
1509
1510#[cfg(feature = "v1_20")]
1511#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1512#[doc(hidden)]
1513impl FromGlib<ffi::GstWebRTCKind> for WebRTCKind {
1514 #[inline]
1515 unsafe fn from_glib(value: ffi::GstWebRTCKind) -> Self {
1516 skip_assert_initialized!();
1517
1518 match value {
1519 ffi::GST_WEBRTC_KIND_UNKNOWN => Self::Unknown,
1520 ffi::GST_WEBRTC_KIND_AUDIO => Self::Audio,
1521 ffi::GST_WEBRTC_KIND_VIDEO => Self::Video,
1522 value => Self::__Unknown(value),
1523 }
1524 }
1525}
1526
1527#[cfg(feature = "v1_20")]
1528#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1529impl StaticType for WebRTCKind {
1530 #[inline]
1531 #[doc(alias = "gst_webrtc_kind_get_type")]
1532 fn static_type() -> glib::Type {
1533 unsafe { from_glib(ffi::gst_webrtc_kind_get_type()) }
1534 }
1535}
1536
1537#[cfg(feature = "v1_20")]
1538#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1539impl glib::HasParamSpec for WebRTCKind {
1540 type ParamSpec = glib::ParamSpecEnum;
1541 type SetValue = Self;
1542 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1543
1544 fn param_spec_builder() -> Self::BuilderFn {
1545 Self::ParamSpec::builder_with_default
1546 }
1547}
1548
1549#[cfg(feature = "v1_20")]
1550#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1551impl glib::value::ValueType for WebRTCKind {
1552 type Type = Self;
1553}
1554
1555#[cfg(feature = "v1_20")]
1556#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1557unsafe impl<'a> glib::value::FromValue<'a> for WebRTCKind {
1558 type Checker = glib::value::GenericValueTypeChecker<Self>;
1559
1560 #[inline]
1561 unsafe fn from_value(value: &'a glib::Value) -> Self {
1562 skip_assert_initialized!();
1563 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1564 }
1565}
1566
1567#[cfg(feature = "v1_20")]
1568#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1569impl ToValue for WebRTCKind {
1570 #[inline]
1571 fn to_value(&self) -> glib::Value {
1572 let mut value = glib::Value::for_value_type::<Self>();
1573 unsafe {
1574 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1575 }
1576 value
1577 }
1578
1579 #[inline]
1580 fn value_type(&self) -> glib::Type {
1581 Self::static_type()
1582 }
1583}
1584
1585#[cfg(feature = "v1_20")]
1586#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1587impl From<WebRTCKind> for glib::Value {
1588 #[inline]
1589 fn from(v: WebRTCKind) -> Self {
1590 skip_assert_initialized!();
1591 ToValue::to_value(&v)
1592 }
1593}
1594
1595#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1597#[non_exhaustive]
1598#[doc(alias = "GstWebRTCPeerConnectionState")]
1599pub enum WebRTCPeerConnectionState {
1600 #[doc(alias = "GST_WEBRTC_PEER_CONNECTION_STATE_NEW")]
1602 New,
1603 #[doc(alias = "GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING")]
1605 Connecting,
1606 #[doc(alias = "GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED")]
1608 Connected,
1609 #[doc(alias = "GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED")]
1611 Disconnected,
1612 #[doc(alias = "GST_WEBRTC_PEER_CONNECTION_STATE_FAILED")]
1614 Failed,
1615 #[doc(alias = "GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED")]
1617 Closed,
1618 #[doc(hidden)]
1619 __Unknown(i32),
1620}
1621
1622#[doc(hidden)]
1623impl IntoGlib for WebRTCPeerConnectionState {
1624 type GlibType = ffi::GstWebRTCPeerConnectionState;
1625
1626 #[inline]
1627 fn into_glib(self) -> ffi::GstWebRTCPeerConnectionState {
1628 match self {
1629 Self::New => ffi::GST_WEBRTC_PEER_CONNECTION_STATE_NEW,
1630 Self::Connecting => ffi::GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING,
1631 Self::Connected => ffi::GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED,
1632 Self::Disconnected => ffi::GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED,
1633 Self::Failed => ffi::GST_WEBRTC_PEER_CONNECTION_STATE_FAILED,
1634 Self::Closed => ffi::GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED,
1635 Self::__Unknown(value) => value,
1636 }
1637 }
1638}
1639
1640#[doc(hidden)]
1641impl FromGlib<ffi::GstWebRTCPeerConnectionState> for WebRTCPeerConnectionState {
1642 #[inline]
1643 unsafe fn from_glib(value: ffi::GstWebRTCPeerConnectionState) -> Self {
1644 skip_assert_initialized!();
1645
1646 match value {
1647 ffi::GST_WEBRTC_PEER_CONNECTION_STATE_NEW => Self::New,
1648 ffi::GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING => Self::Connecting,
1649 ffi::GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED => Self::Connected,
1650 ffi::GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED => Self::Disconnected,
1651 ffi::GST_WEBRTC_PEER_CONNECTION_STATE_FAILED => Self::Failed,
1652 ffi::GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED => Self::Closed,
1653 value => Self::__Unknown(value),
1654 }
1655 }
1656}
1657
1658impl StaticType for WebRTCPeerConnectionState {
1659 #[inline]
1660 #[doc(alias = "gst_webrtc_peer_connection_state_get_type")]
1661 fn static_type() -> glib::Type {
1662 unsafe { from_glib(ffi::gst_webrtc_peer_connection_state_get_type()) }
1663 }
1664}
1665
1666impl glib::HasParamSpec for WebRTCPeerConnectionState {
1667 type ParamSpec = glib::ParamSpecEnum;
1668 type SetValue = Self;
1669 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1670
1671 fn param_spec_builder() -> Self::BuilderFn {
1672 Self::ParamSpec::builder_with_default
1673 }
1674}
1675
1676impl glib::value::ValueType for WebRTCPeerConnectionState {
1677 type Type = Self;
1678}
1679
1680unsafe impl<'a> glib::value::FromValue<'a> for WebRTCPeerConnectionState {
1681 type Checker = glib::value::GenericValueTypeChecker<Self>;
1682
1683 #[inline]
1684 unsafe fn from_value(value: &'a glib::Value) -> Self {
1685 skip_assert_initialized!();
1686 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1687 }
1688}
1689
1690impl ToValue for WebRTCPeerConnectionState {
1691 #[inline]
1692 fn to_value(&self) -> glib::Value {
1693 let mut value = glib::Value::for_value_type::<Self>();
1694 unsafe {
1695 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1696 }
1697 value
1698 }
1699
1700 #[inline]
1701 fn value_type(&self) -> glib::Type {
1702 Self::static_type()
1703 }
1704}
1705
1706impl From<WebRTCPeerConnectionState> for glib::Value {
1707 #[inline]
1708 fn from(v: WebRTCPeerConnectionState) -> Self {
1709 skip_assert_initialized!();
1710 ToValue::to_value(&v)
1711 }
1712}
1713
1714#[cfg(feature = "v1_16")]
1716#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1717#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1718#[non_exhaustive]
1719#[doc(alias = "GstWebRTCPriorityType")]
1720pub enum WebRTCPriorityType {
1721 #[doc(alias = "GST_WEBRTC_PRIORITY_TYPE_VERY_LOW")]
1723 VeryLow,
1724 #[doc(alias = "GST_WEBRTC_PRIORITY_TYPE_LOW")]
1726 Low,
1727 #[doc(alias = "GST_WEBRTC_PRIORITY_TYPE_MEDIUM")]
1729 Medium,
1730 #[doc(alias = "GST_WEBRTC_PRIORITY_TYPE_HIGH")]
1732 High,
1733 #[doc(hidden)]
1734 __Unknown(i32),
1735}
1736
1737#[cfg(feature = "v1_16")]
1738#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1739#[doc(hidden)]
1740impl IntoGlib for WebRTCPriorityType {
1741 type GlibType = ffi::GstWebRTCPriorityType;
1742
1743 #[inline]
1744 fn into_glib(self) -> ffi::GstWebRTCPriorityType {
1745 match self {
1746 Self::VeryLow => ffi::GST_WEBRTC_PRIORITY_TYPE_VERY_LOW,
1747 Self::Low => ffi::GST_WEBRTC_PRIORITY_TYPE_LOW,
1748 Self::Medium => ffi::GST_WEBRTC_PRIORITY_TYPE_MEDIUM,
1749 Self::High => ffi::GST_WEBRTC_PRIORITY_TYPE_HIGH,
1750 Self::__Unknown(value) => value,
1751 }
1752 }
1753}
1754
1755#[cfg(feature = "v1_16")]
1756#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1757#[doc(hidden)]
1758impl FromGlib<ffi::GstWebRTCPriorityType> for WebRTCPriorityType {
1759 #[inline]
1760 unsafe fn from_glib(value: ffi::GstWebRTCPriorityType) -> Self {
1761 skip_assert_initialized!();
1762
1763 match value {
1764 ffi::GST_WEBRTC_PRIORITY_TYPE_VERY_LOW => Self::VeryLow,
1765 ffi::GST_WEBRTC_PRIORITY_TYPE_LOW => Self::Low,
1766 ffi::GST_WEBRTC_PRIORITY_TYPE_MEDIUM => Self::Medium,
1767 ffi::GST_WEBRTC_PRIORITY_TYPE_HIGH => Self::High,
1768 value => Self::__Unknown(value),
1769 }
1770 }
1771}
1772
1773#[cfg(feature = "v1_16")]
1774#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1775impl StaticType for WebRTCPriorityType {
1776 #[inline]
1777 #[doc(alias = "gst_webrtc_priority_type_get_type")]
1778 fn static_type() -> glib::Type {
1779 unsafe { from_glib(ffi::gst_webrtc_priority_type_get_type()) }
1780 }
1781}
1782
1783#[cfg(feature = "v1_16")]
1784#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1785impl glib::HasParamSpec for WebRTCPriorityType {
1786 type ParamSpec = glib::ParamSpecEnum;
1787 type SetValue = Self;
1788 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1789
1790 fn param_spec_builder() -> Self::BuilderFn {
1791 Self::ParamSpec::builder_with_default
1792 }
1793}
1794
1795#[cfg(feature = "v1_16")]
1796#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1797impl glib::value::ValueType for WebRTCPriorityType {
1798 type Type = Self;
1799}
1800
1801#[cfg(feature = "v1_16")]
1802#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1803unsafe impl<'a> glib::value::FromValue<'a> for WebRTCPriorityType {
1804 type Checker = glib::value::GenericValueTypeChecker<Self>;
1805
1806 #[inline]
1807 unsafe fn from_value(value: &'a glib::Value) -> Self {
1808 skip_assert_initialized!();
1809 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1810 }
1811}
1812
1813#[cfg(feature = "v1_16")]
1814#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1815impl ToValue for WebRTCPriorityType {
1816 #[inline]
1817 fn to_value(&self) -> glib::Value {
1818 let mut value = glib::Value::for_value_type::<Self>();
1819 unsafe {
1820 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1821 }
1822 value
1823 }
1824
1825 #[inline]
1826 fn value_type(&self) -> glib::Type {
1827 Self::static_type()
1828 }
1829}
1830
1831#[cfg(feature = "v1_16")]
1832#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1833impl From<WebRTCPriorityType> for glib::Value {
1834 #[inline]
1835 fn from(v: WebRTCPriorityType) -> Self {
1836 skip_assert_initialized!();
1837 ToValue::to_value(&v)
1838 }
1839}
1840
1841#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1842#[non_exhaustive]
1843#[doc(alias = "GstWebRTCRTPTransceiverDirection")]
1844pub enum WebRTCRTPTransceiverDirection {
1845 #[doc(alias = "GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_NONE")]
1847 None,
1848 #[doc(alias = "GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_INACTIVE")]
1850 Inactive,
1851 #[doc(alias = "GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY")]
1853 Sendonly,
1854 #[doc(alias = "GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY")]
1856 Recvonly,
1857 #[doc(alias = "GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV")]
1859 Sendrecv,
1860 #[doc(hidden)]
1861 __Unknown(i32),
1862}
1863
1864#[doc(hidden)]
1865impl IntoGlib for WebRTCRTPTransceiverDirection {
1866 type GlibType = ffi::GstWebRTCRTPTransceiverDirection;
1867
1868 #[inline]
1869 fn into_glib(self) -> ffi::GstWebRTCRTPTransceiverDirection {
1870 match self {
1871 Self::None => ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_NONE,
1872 Self::Inactive => ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_INACTIVE,
1873 Self::Sendonly => ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY,
1874 Self::Recvonly => ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY,
1875 Self::Sendrecv => ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV,
1876 Self::__Unknown(value) => value,
1877 }
1878 }
1879}
1880
1881#[doc(hidden)]
1882impl FromGlib<ffi::GstWebRTCRTPTransceiverDirection> for WebRTCRTPTransceiverDirection {
1883 #[inline]
1884 unsafe fn from_glib(value: ffi::GstWebRTCRTPTransceiverDirection) -> Self {
1885 skip_assert_initialized!();
1886
1887 match value {
1888 ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_NONE => Self::None,
1889 ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_INACTIVE => Self::Inactive,
1890 ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY => Self::Sendonly,
1891 ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY => Self::Recvonly,
1892 ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV => Self::Sendrecv,
1893 value => Self::__Unknown(value),
1894 }
1895 }
1896}
1897
1898impl StaticType for WebRTCRTPTransceiverDirection {
1899 #[inline]
1900 #[doc(alias = "gst_webrtc_rtp_transceiver_direction_get_type")]
1901 fn static_type() -> glib::Type {
1902 unsafe { from_glib(ffi::gst_webrtc_rtp_transceiver_direction_get_type()) }
1903 }
1904}
1905
1906impl glib::HasParamSpec for WebRTCRTPTransceiverDirection {
1907 type ParamSpec = glib::ParamSpecEnum;
1908 type SetValue = Self;
1909 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1910
1911 fn param_spec_builder() -> Self::BuilderFn {
1912 Self::ParamSpec::builder_with_default
1913 }
1914}
1915
1916impl glib::value::ValueType for WebRTCRTPTransceiverDirection {
1917 type Type = Self;
1918}
1919
1920unsafe impl<'a> glib::value::FromValue<'a> for WebRTCRTPTransceiverDirection {
1921 type Checker = glib::value::GenericValueTypeChecker<Self>;
1922
1923 #[inline]
1924 unsafe fn from_value(value: &'a glib::Value) -> Self {
1925 skip_assert_initialized!();
1926 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1927 }
1928}
1929
1930impl ToValue for WebRTCRTPTransceiverDirection {
1931 #[inline]
1932 fn to_value(&self) -> glib::Value {
1933 let mut value = glib::Value::for_value_type::<Self>();
1934 unsafe {
1935 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1936 }
1937 value
1938 }
1939
1940 #[inline]
1941 fn value_type(&self) -> glib::Type {
1942 Self::static_type()
1943 }
1944}
1945
1946impl From<WebRTCRTPTransceiverDirection> for glib::Value {
1947 #[inline]
1948 fn from(v: WebRTCRTPTransceiverDirection) -> Self {
1949 skip_assert_initialized!();
1950 ToValue::to_value(&v)
1951 }
1952}
1953
1954#[cfg(feature = "v1_16")]
1956#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1957#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1958#[non_exhaustive]
1959#[doc(alias = "GstWebRTCSCTPTransportState")]
1960pub enum WebRTCSCTPTransportState {
1961 #[doc(alias = "GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW")]
1963 New,
1964 #[doc(alias = "GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING")]
1966 Connecting,
1967 #[doc(alias = "GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED")]
1969 Connected,
1970 #[doc(alias = "GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED")]
1972 Closed,
1973 #[doc(hidden)]
1974 __Unknown(i32),
1975}
1976
1977#[cfg(feature = "v1_16")]
1978#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1979#[doc(hidden)]
1980impl IntoGlib for WebRTCSCTPTransportState {
1981 type GlibType = ffi::GstWebRTCSCTPTransportState;
1982
1983 #[inline]
1984 fn into_glib(self) -> ffi::GstWebRTCSCTPTransportState {
1985 match self {
1986 Self::New => ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW,
1987 Self::Connecting => ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING,
1988 Self::Connected => ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED,
1989 Self::Closed => ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED,
1990 Self::__Unknown(value) => value,
1991 }
1992 }
1993}
1994
1995#[cfg(feature = "v1_16")]
1996#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1997#[doc(hidden)]
1998impl FromGlib<ffi::GstWebRTCSCTPTransportState> for WebRTCSCTPTransportState {
1999 #[inline]
2000 unsafe fn from_glib(value: ffi::GstWebRTCSCTPTransportState) -> Self {
2001 skip_assert_initialized!();
2002
2003 match value {
2004 ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW => Self::New,
2005 ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING => Self::Connecting,
2006 ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED => Self::Connected,
2007 ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED => Self::Closed,
2008 value => Self::__Unknown(value),
2009 }
2010 }
2011}
2012
2013#[cfg(feature = "v1_16")]
2014#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2015impl StaticType for WebRTCSCTPTransportState {
2016 #[inline]
2017 #[doc(alias = "gst_webrtc_sctp_transport_state_get_type")]
2018 fn static_type() -> glib::Type {
2019 unsafe { from_glib(ffi::gst_webrtc_sctp_transport_state_get_type()) }
2020 }
2021}
2022
2023#[cfg(feature = "v1_16")]
2024#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2025impl glib::HasParamSpec for WebRTCSCTPTransportState {
2026 type ParamSpec = glib::ParamSpecEnum;
2027 type SetValue = Self;
2028 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2029
2030 fn param_spec_builder() -> Self::BuilderFn {
2031 Self::ParamSpec::builder_with_default
2032 }
2033}
2034
2035#[cfg(feature = "v1_16")]
2036#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2037impl glib::value::ValueType for WebRTCSCTPTransportState {
2038 type Type = Self;
2039}
2040
2041#[cfg(feature = "v1_16")]
2042#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2043unsafe impl<'a> glib::value::FromValue<'a> for WebRTCSCTPTransportState {
2044 type Checker = glib::value::GenericValueTypeChecker<Self>;
2045
2046 #[inline]
2047 unsafe fn from_value(value: &'a glib::Value) -> Self {
2048 skip_assert_initialized!();
2049 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2050 }
2051}
2052
2053#[cfg(feature = "v1_16")]
2054#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2055impl ToValue for WebRTCSCTPTransportState {
2056 #[inline]
2057 fn to_value(&self) -> glib::Value {
2058 let mut value = glib::Value::for_value_type::<Self>();
2059 unsafe {
2060 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2061 }
2062 value
2063 }
2064
2065 #[inline]
2066 fn value_type(&self) -> glib::Type {
2067 Self::static_type()
2068 }
2069}
2070
2071#[cfg(feature = "v1_16")]
2072#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2073impl From<WebRTCSCTPTransportState> for glib::Value {
2074 #[inline]
2075 fn from(v: WebRTCSCTPTransportState) -> Self {
2076 skip_assert_initialized!();
2077 ToValue::to_value(&v)
2078 }
2079}
2080
2081#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2083#[non_exhaustive]
2084#[doc(alias = "GstWebRTCSDPType")]
2085pub enum WebRTCSDPType {
2086 #[doc(alias = "GST_WEBRTC_SDP_TYPE_OFFER")]
2088 Offer,
2089 #[doc(alias = "GST_WEBRTC_SDP_TYPE_PRANSWER")]
2091 Pranswer,
2092 #[doc(alias = "GST_WEBRTC_SDP_TYPE_ANSWER")]
2094 Answer,
2095 #[doc(alias = "GST_WEBRTC_SDP_TYPE_ROLLBACK")]
2097 Rollback,
2098 #[doc(hidden)]
2099 __Unknown(i32),
2100}
2101
2102impl WebRTCSDPType {
2103 pub fn to_str<'a>(self) -> &'a GStr {
2104 unsafe {
2105 GStr::from_ptr(
2106 ffi::gst_webrtc_sdp_type_to_string(self.into_glib())
2107 .as_ref()
2108 .expect("gst_webrtc_sdp_type_to_string returned NULL"),
2109 )
2110 }
2111 }
2112}
2113
2114impl std::fmt::Display for WebRTCSDPType {
2115 #[inline]
2116 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2117 f.write_str(&self.to_str())
2118 }
2119}
2120
2121#[doc(hidden)]
2122impl IntoGlib for WebRTCSDPType {
2123 type GlibType = ffi::GstWebRTCSDPType;
2124
2125 #[inline]
2126 fn into_glib(self) -> ffi::GstWebRTCSDPType {
2127 match self {
2128 Self::Offer => ffi::GST_WEBRTC_SDP_TYPE_OFFER,
2129 Self::Pranswer => ffi::GST_WEBRTC_SDP_TYPE_PRANSWER,
2130 Self::Answer => ffi::GST_WEBRTC_SDP_TYPE_ANSWER,
2131 Self::Rollback => ffi::GST_WEBRTC_SDP_TYPE_ROLLBACK,
2132 Self::__Unknown(value) => value,
2133 }
2134 }
2135}
2136
2137#[doc(hidden)]
2138impl FromGlib<ffi::GstWebRTCSDPType> for WebRTCSDPType {
2139 #[inline]
2140 unsafe fn from_glib(value: ffi::GstWebRTCSDPType) -> Self {
2141 skip_assert_initialized!();
2142
2143 match value {
2144 ffi::GST_WEBRTC_SDP_TYPE_OFFER => Self::Offer,
2145 ffi::GST_WEBRTC_SDP_TYPE_PRANSWER => Self::Pranswer,
2146 ffi::GST_WEBRTC_SDP_TYPE_ANSWER => Self::Answer,
2147 ffi::GST_WEBRTC_SDP_TYPE_ROLLBACK => Self::Rollback,
2148 value => Self::__Unknown(value),
2149 }
2150 }
2151}
2152
2153impl StaticType for WebRTCSDPType {
2154 #[inline]
2155 #[doc(alias = "gst_webrtc_sdp_type_get_type")]
2156 fn static_type() -> glib::Type {
2157 unsafe { from_glib(ffi::gst_webrtc_sdp_type_get_type()) }
2158 }
2159}
2160
2161impl glib::HasParamSpec for WebRTCSDPType {
2162 type ParamSpec = glib::ParamSpecEnum;
2163 type SetValue = Self;
2164 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2165
2166 fn param_spec_builder() -> Self::BuilderFn {
2167 Self::ParamSpec::builder_with_default
2168 }
2169}
2170
2171impl glib::value::ValueType for WebRTCSDPType {
2172 type Type = Self;
2173}
2174
2175unsafe impl<'a> glib::value::FromValue<'a> for WebRTCSDPType {
2176 type Checker = glib::value::GenericValueTypeChecker<Self>;
2177
2178 #[inline]
2179 unsafe fn from_value(value: &'a glib::Value) -> Self {
2180 skip_assert_initialized!();
2181 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2182 }
2183}
2184
2185impl ToValue for WebRTCSDPType {
2186 #[inline]
2187 fn to_value(&self) -> glib::Value {
2188 let mut value = glib::Value::for_value_type::<Self>();
2189 unsafe {
2190 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2191 }
2192 value
2193 }
2194
2195 #[inline]
2196 fn value_type(&self) -> glib::Type {
2197 Self::static_type()
2198 }
2199}
2200
2201impl From<WebRTCSDPType> for glib::Value {
2202 #[inline]
2203 fn from(v: WebRTCSDPType) -> Self {
2204 skip_assert_initialized!();
2205 ToValue::to_value(&v)
2206 }
2207}
2208
2209#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2211#[non_exhaustive]
2212#[doc(alias = "GstWebRTCSignalingState")]
2213pub enum WebRTCSignalingState {
2214 #[doc(alias = "GST_WEBRTC_SIGNALING_STATE_STABLE")]
2216 Stable,
2217 #[doc(alias = "GST_WEBRTC_SIGNALING_STATE_CLOSED")]
2219 Closed,
2220 #[doc(alias = "GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER")]
2222 HaveLocalOffer,
2223 #[doc(alias = "GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER")]
2225 HaveRemoteOffer,
2226 #[doc(alias = "GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER")]
2228 HaveLocalPranswer,
2229 #[doc(alias = "GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER")]
2231 HaveRemotePranswer,
2232 #[doc(hidden)]
2233 __Unknown(i32),
2234}
2235
2236#[doc(hidden)]
2237impl IntoGlib for WebRTCSignalingState {
2238 type GlibType = ffi::GstWebRTCSignalingState;
2239
2240 #[inline]
2241 fn into_glib(self) -> ffi::GstWebRTCSignalingState {
2242 match self {
2243 Self::Stable => ffi::GST_WEBRTC_SIGNALING_STATE_STABLE,
2244 Self::Closed => ffi::GST_WEBRTC_SIGNALING_STATE_CLOSED,
2245 Self::HaveLocalOffer => ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER,
2246 Self::HaveRemoteOffer => ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER,
2247 Self::HaveLocalPranswer => ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER,
2248 Self::HaveRemotePranswer => ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER,
2249 Self::__Unknown(value) => value,
2250 }
2251 }
2252}
2253
2254#[doc(hidden)]
2255impl FromGlib<ffi::GstWebRTCSignalingState> for WebRTCSignalingState {
2256 #[inline]
2257 unsafe fn from_glib(value: ffi::GstWebRTCSignalingState) -> Self {
2258 skip_assert_initialized!();
2259
2260 match value {
2261 ffi::GST_WEBRTC_SIGNALING_STATE_STABLE => Self::Stable,
2262 ffi::GST_WEBRTC_SIGNALING_STATE_CLOSED => Self::Closed,
2263 ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER => Self::HaveLocalOffer,
2264 ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER => Self::HaveRemoteOffer,
2265 ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER => Self::HaveLocalPranswer,
2266 ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER => Self::HaveRemotePranswer,
2267 value => Self::__Unknown(value),
2268 }
2269 }
2270}
2271
2272impl StaticType for WebRTCSignalingState {
2273 #[inline]
2274 #[doc(alias = "gst_webrtc_signaling_state_get_type")]
2275 fn static_type() -> glib::Type {
2276 unsafe { from_glib(ffi::gst_webrtc_signaling_state_get_type()) }
2277 }
2278}
2279
2280impl glib::HasParamSpec for WebRTCSignalingState {
2281 type ParamSpec = glib::ParamSpecEnum;
2282 type SetValue = Self;
2283 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2284
2285 fn param_spec_builder() -> Self::BuilderFn {
2286 Self::ParamSpec::builder_with_default
2287 }
2288}
2289
2290impl glib::value::ValueType for WebRTCSignalingState {
2291 type Type = Self;
2292}
2293
2294unsafe impl<'a> glib::value::FromValue<'a> for WebRTCSignalingState {
2295 type Checker = glib::value::GenericValueTypeChecker<Self>;
2296
2297 #[inline]
2298 unsafe fn from_value(value: &'a glib::Value) -> Self {
2299 skip_assert_initialized!();
2300 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2301 }
2302}
2303
2304impl ToValue for WebRTCSignalingState {
2305 #[inline]
2306 fn to_value(&self) -> glib::Value {
2307 let mut value = glib::Value::for_value_type::<Self>();
2308 unsafe {
2309 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2310 }
2311 value
2312 }
2313
2314 #[inline]
2315 fn value_type(&self) -> glib::Type {
2316 Self::static_type()
2317 }
2318}
2319
2320impl From<WebRTCSignalingState> for glib::Value {
2321 #[inline]
2322 fn from(v: WebRTCSignalingState) -> Self {
2323 skip_assert_initialized!();
2324 ToValue::to_value(&v)
2325 }
2326}
2327
2328#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2330#[non_exhaustive]
2331#[doc(alias = "GstWebRTCStatsType")]
2332pub enum WebRTCStatsType {
2333 #[doc(alias = "GST_WEBRTC_STATS_CODEC")]
2335 Codec,
2336 #[doc(alias = "GST_WEBRTC_STATS_INBOUND_RTP")]
2338 InboundRtp,
2339 #[doc(alias = "GST_WEBRTC_STATS_OUTBOUND_RTP")]
2341 OutboundRtp,
2342 #[doc(alias = "GST_WEBRTC_STATS_REMOTE_INBOUND_RTP")]
2344 RemoteInboundRtp,
2345 #[doc(alias = "GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP")]
2347 RemoteOutboundRtp,
2348 #[doc(alias = "GST_WEBRTC_STATS_CSRC")]
2350 Csrc,
2351 #[doc(alias = "GST_WEBRTC_STATS_PEER_CONNECTION")]
2353 PeerConnection,
2354 #[doc(alias = "GST_WEBRTC_STATS_DATA_CHANNEL")]
2356 DataChannel,
2357 #[doc(alias = "GST_WEBRTC_STATS_STREAM")]
2359 Stream,
2360 #[doc(alias = "GST_WEBRTC_STATS_TRANSPORT")]
2362 Transport,
2363 #[doc(alias = "GST_WEBRTC_STATS_CANDIDATE_PAIR")]
2365 CandidatePair,
2366 #[doc(alias = "GST_WEBRTC_STATS_LOCAL_CANDIDATE")]
2368 LocalCandidate,
2369 #[doc(alias = "GST_WEBRTC_STATS_REMOTE_CANDIDATE")]
2371 RemoteCandidate,
2372 #[doc(alias = "GST_WEBRTC_STATS_CERTIFICATE")]
2374 Certificate,
2375 #[doc(hidden)]
2376 __Unknown(i32),
2377}
2378
2379#[doc(hidden)]
2380impl IntoGlib for WebRTCStatsType {
2381 type GlibType = ffi::GstWebRTCStatsType;
2382
2383 fn into_glib(self) -> ffi::GstWebRTCStatsType {
2384 match self {
2385 Self::Codec => ffi::GST_WEBRTC_STATS_CODEC,
2386 Self::InboundRtp => ffi::GST_WEBRTC_STATS_INBOUND_RTP,
2387 Self::OutboundRtp => ffi::GST_WEBRTC_STATS_OUTBOUND_RTP,
2388 Self::RemoteInboundRtp => ffi::GST_WEBRTC_STATS_REMOTE_INBOUND_RTP,
2389 Self::RemoteOutboundRtp => ffi::GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP,
2390 Self::Csrc => ffi::GST_WEBRTC_STATS_CSRC,
2391 Self::PeerConnection => ffi::GST_WEBRTC_STATS_PEER_CONNECTION,
2392 Self::DataChannel => ffi::GST_WEBRTC_STATS_DATA_CHANNEL,
2393 Self::Stream => ffi::GST_WEBRTC_STATS_STREAM,
2394 Self::Transport => ffi::GST_WEBRTC_STATS_TRANSPORT,
2395 Self::CandidatePair => ffi::GST_WEBRTC_STATS_CANDIDATE_PAIR,
2396 Self::LocalCandidate => ffi::GST_WEBRTC_STATS_LOCAL_CANDIDATE,
2397 Self::RemoteCandidate => ffi::GST_WEBRTC_STATS_REMOTE_CANDIDATE,
2398 Self::Certificate => ffi::GST_WEBRTC_STATS_CERTIFICATE,
2399 Self::__Unknown(value) => value,
2400 }
2401 }
2402}
2403
2404#[doc(hidden)]
2405impl FromGlib<ffi::GstWebRTCStatsType> for WebRTCStatsType {
2406 unsafe fn from_glib(value: ffi::GstWebRTCStatsType) -> Self {
2407 skip_assert_initialized!();
2408
2409 match value {
2410 ffi::GST_WEBRTC_STATS_CODEC => Self::Codec,
2411 ffi::GST_WEBRTC_STATS_INBOUND_RTP => Self::InboundRtp,
2412 ffi::GST_WEBRTC_STATS_OUTBOUND_RTP => Self::OutboundRtp,
2413 ffi::GST_WEBRTC_STATS_REMOTE_INBOUND_RTP => Self::RemoteInboundRtp,
2414 ffi::GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP => Self::RemoteOutboundRtp,
2415 ffi::GST_WEBRTC_STATS_CSRC => Self::Csrc,
2416 ffi::GST_WEBRTC_STATS_PEER_CONNECTION => Self::PeerConnection,
2417 ffi::GST_WEBRTC_STATS_DATA_CHANNEL => Self::DataChannel,
2418 ffi::GST_WEBRTC_STATS_STREAM => Self::Stream,
2419 ffi::GST_WEBRTC_STATS_TRANSPORT => Self::Transport,
2420 ffi::GST_WEBRTC_STATS_CANDIDATE_PAIR => Self::CandidatePair,
2421 ffi::GST_WEBRTC_STATS_LOCAL_CANDIDATE => Self::LocalCandidate,
2422 ffi::GST_WEBRTC_STATS_REMOTE_CANDIDATE => Self::RemoteCandidate,
2423 ffi::GST_WEBRTC_STATS_CERTIFICATE => Self::Certificate,
2424 value => Self::__Unknown(value),
2425 }
2426 }
2427}
2428
2429impl StaticType for WebRTCStatsType {
2430 #[inline]
2431 #[doc(alias = "gst_webrtc_stats_type_get_type")]
2432 fn static_type() -> glib::Type {
2433 unsafe { from_glib(ffi::gst_webrtc_stats_type_get_type()) }
2434 }
2435}
2436
2437impl glib::HasParamSpec for WebRTCStatsType {
2438 type ParamSpec = glib::ParamSpecEnum;
2439 type SetValue = Self;
2440 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2441
2442 fn param_spec_builder() -> Self::BuilderFn {
2443 Self::ParamSpec::builder_with_default
2444 }
2445}
2446
2447impl glib::value::ValueType for WebRTCStatsType {
2448 type Type = Self;
2449}
2450
2451unsafe impl<'a> glib::value::FromValue<'a> for WebRTCStatsType {
2452 type Checker = glib::value::GenericValueTypeChecker<Self>;
2453
2454 #[inline]
2455 unsafe fn from_value(value: &'a glib::Value) -> Self {
2456 skip_assert_initialized!();
2457 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2458 }
2459}
2460
2461impl ToValue for WebRTCStatsType {
2462 #[inline]
2463 fn to_value(&self) -> glib::Value {
2464 let mut value = glib::Value::for_value_type::<Self>();
2465 unsafe {
2466 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2467 }
2468 value
2469 }
2470
2471 #[inline]
2472 fn value_type(&self) -> glib::Type {
2473 Self::static_type()
2474 }
2475}
2476
2477impl From<WebRTCStatsType> for glib::Value {
2478 #[inline]
2479 fn from(v: WebRTCStatsType) -> Self {
2480 skip_assert_initialized!();
2481 ToValue::to_value(&v)
2482 }
2483}