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_16")]
1227#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1228#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1229#[non_exhaustive]
1230#[doc(alias = "GstWebRTCICETransportPolicy")]
1231pub enum WebRTCICETransportPolicy {
1232 #[doc(alias = "GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL")]
1234 All,
1235 #[doc(alias = "GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY")]
1237 Relay,
1238 #[doc(hidden)]
1239 __Unknown(i32),
1240}
1241
1242#[cfg(feature = "v1_16")]
1243#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1244#[doc(hidden)]
1245impl IntoGlib for WebRTCICETransportPolicy {
1246 type GlibType = ffi::GstWebRTCICETransportPolicy;
1247
1248 #[inline]
1249 fn into_glib(self) -> ffi::GstWebRTCICETransportPolicy {
1250 match self {
1251 Self::All => ffi::GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL,
1252 Self::Relay => ffi::GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY,
1253 Self::__Unknown(value) => value,
1254 }
1255 }
1256}
1257
1258#[cfg(feature = "v1_16")]
1259#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1260#[doc(hidden)]
1261impl FromGlib<ffi::GstWebRTCICETransportPolicy> for WebRTCICETransportPolicy {
1262 #[inline]
1263 unsafe fn from_glib(value: ffi::GstWebRTCICETransportPolicy) -> Self {
1264 skip_assert_initialized!();
1265
1266 match value {
1267 ffi::GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL => Self::All,
1268 ffi::GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY => Self::Relay,
1269 value => Self::__Unknown(value),
1270 }
1271 }
1272}
1273
1274#[cfg(feature = "v1_16")]
1275#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1276impl StaticType for WebRTCICETransportPolicy {
1277 #[inline]
1278 #[doc(alias = "gst_webrtc_ice_transport_policy_get_type")]
1279 fn static_type() -> glib::Type {
1280 unsafe { from_glib(ffi::gst_webrtc_ice_transport_policy_get_type()) }
1281 }
1282}
1283
1284#[cfg(feature = "v1_16")]
1285#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1286impl glib::HasParamSpec for WebRTCICETransportPolicy {
1287 type ParamSpec = glib::ParamSpecEnum;
1288 type SetValue = Self;
1289 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1290
1291 fn param_spec_builder() -> Self::BuilderFn {
1292 Self::ParamSpec::builder_with_default
1293 }
1294}
1295
1296#[cfg(feature = "v1_16")]
1297#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1298impl glib::value::ValueType for WebRTCICETransportPolicy {
1299 type Type = Self;
1300}
1301
1302#[cfg(feature = "v1_16")]
1303#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1304unsafe impl<'a> glib::value::FromValue<'a> for WebRTCICETransportPolicy {
1305 type Checker = glib::value::GenericValueTypeChecker<Self>;
1306
1307 #[inline]
1308 unsafe fn from_value(value: &'a glib::Value) -> Self {
1309 skip_assert_initialized!();
1310 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1311 }
1312}
1313
1314#[cfg(feature = "v1_16")]
1315#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1316impl ToValue for WebRTCICETransportPolicy {
1317 #[inline]
1318 fn to_value(&self) -> glib::Value {
1319 let mut value = glib::Value::for_value_type::<Self>();
1320 unsafe {
1321 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1322 }
1323 value
1324 }
1325
1326 #[inline]
1327 fn value_type(&self) -> glib::Type {
1328 Self::static_type()
1329 }
1330}
1331
1332#[cfg(feature = "v1_16")]
1333#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1334impl From<WebRTCICETransportPolicy> for glib::Value {
1335 #[inline]
1336 fn from(v: WebRTCICETransportPolicy) -> Self {
1337 skip_assert_initialized!();
1338 ToValue::to_value(&v)
1339 }
1340}
1341
1342#[cfg(feature = "v1_20")]
1344#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1345#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1346#[non_exhaustive]
1347#[doc(alias = "GstWebRTCKind")]
1348pub enum WebRTCKind {
1349 #[doc(alias = "GST_WEBRTC_KIND_UNKNOWN")]
1351 Unknown,
1352 #[doc(alias = "GST_WEBRTC_KIND_AUDIO")]
1354 Audio,
1355 #[doc(alias = "GST_WEBRTC_KIND_VIDEO")]
1357 Video,
1358 #[doc(hidden)]
1359 __Unknown(i32),
1360}
1361
1362#[cfg(feature = "v1_20")]
1363#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1364#[doc(hidden)]
1365impl IntoGlib for WebRTCKind {
1366 type GlibType = ffi::GstWebRTCKind;
1367
1368 #[inline]
1369 fn into_glib(self) -> ffi::GstWebRTCKind {
1370 match self {
1371 Self::Unknown => ffi::GST_WEBRTC_KIND_UNKNOWN,
1372 Self::Audio => ffi::GST_WEBRTC_KIND_AUDIO,
1373 Self::Video => ffi::GST_WEBRTC_KIND_VIDEO,
1374 Self::__Unknown(value) => value,
1375 }
1376 }
1377}
1378
1379#[cfg(feature = "v1_20")]
1380#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1381#[doc(hidden)]
1382impl FromGlib<ffi::GstWebRTCKind> for WebRTCKind {
1383 #[inline]
1384 unsafe fn from_glib(value: ffi::GstWebRTCKind) -> Self {
1385 skip_assert_initialized!();
1386
1387 match value {
1388 ffi::GST_WEBRTC_KIND_UNKNOWN => Self::Unknown,
1389 ffi::GST_WEBRTC_KIND_AUDIO => Self::Audio,
1390 ffi::GST_WEBRTC_KIND_VIDEO => Self::Video,
1391 value => Self::__Unknown(value),
1392 }
1393 }
1394}
1395
1396#[cfg(feature = "v1_20")]
1397#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1398impl StaticType for WebRTCKind {
1399 #[inline]
1400 #[doc(alias = "gst_webrtc_kind_get_type")]
1401 fn static_type() -> glib::Type {
1402 unsafe { from_glib(ffi::gst_webrtc_kind_get_type()) }
1403 }
1404}
1405
1406#[cfg(feature = "v1_20")]
1407#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1408impl glib::HasParamSpec for WebRTCKind {
1409 type ParamSpec = glib::ParamSpecEnum;
1410 type SetValue = Self;
1411 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1412
1413 fn param_spec_builder() -> Self::BuilderFn {
1414 Self::ParamSpec::builder_with_default
1415 }
1416}
1417
1418#[cfg(feature = "v1_20")]
1419#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1420impl glib::value::ValueType for WebRTCKind {
1421 type Type = Self;
1422}
1423
1424#[cfg(feature = "v1_20")]
1425#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1426unsafe impl<'a> glib::value::FromValue<'a> for WebRTCKind {
1427 type Checker = glib::value::GenericValueTypeChecker<Self>;
1428
1429 #[inline]
1430 unsafe fn from_value(value: &'a glib::Value) -> Self {
1431 skip_assert_initialized!();
1432 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1433 }
1434}
1435
1436#[cfg(feature = "v1_20")]
1437#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1438impl ToValue for WebRTCKind {
1439 #[inline]
1440 fn to_value(&self) -> glib::Value {
1441 let mut value = glib::Value::for_value_type::<Self>();
1442 unsafe {
1443 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1444 }
1445 value
1446 }
1447
1448 #[inline]
1449 fn value_type(&self) -> glib::Type {
1450 Self::static_type()
1451 }
1452}
1453
1454#[cfg(feature = "v1_20")]
1455#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1456impl From<WebRTCKind> for glib::Value {
1457 #[inline]
1458 fn from(v: WebRTCKind) -> Self {
1459 skip_assert_initialized!();
1460 ToValue::to_value(&v)
1461 }
1462}
1463
1464#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1466#[non_exhaustive]
1467#[doc(alias = "GstWebRTCPeerConnectionState")]
1468pub enum WebRTCPeerConnectionState {
1469 #[doc(alias = "GST_WEBRTC_PEER_CONNECTION_STATE_NEW")]
1471 New,
1472 #[doc(alias = "GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING")]
1474 Connecting,
1475 #[doc(alias = "GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED")]
1477 Connected,
1478 #[doc(alias = "GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED")]
1480 Disconnected,
1481 #[doc(alias = "GST_WEBRTC_PEER_CONNECTION_STATE_FAILED")]
1483 Failed,
1484 #[doc(alias = "GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED")]
1486 Closed,
1487 #[doc(hidden)]
1488 __Unknown(i32),
1489}
1490
1491#[doc(hidden)]
1492impl IntoGlib for WebRTCPeerConnectionState {
1493 type GlibType = ffi::GstWebRTCPeerConnectionState;
1494
1495 #[inline]
1496 fn into_glib(self) -> ffi::GstWebRTCPeerConnectionState {
1497 match self {
1498 Self::New => ffi::GST_WEBRTC_PEER_CONNECTION_STATE_NEW,
1499 Self::Connecting => ffi::GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING,
1500 Self::Connected => ffi::GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED,
1501 Self::Disconnected => ffi::GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED,
1502 Self::Failed => ffi::GST_WEBRTC_PEER_CONNECTION_STATE_FAILED,
1503 Self::Closed => ffi::GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED,
1504 Self::__Unknown(value) => value,
1505 }
1506 }
1507}
1508
1509#[doc(hidden)]
1510impl FromGlib<ffi::GstWebRTCPeerConnectionState> for WebRTCPeerConnectionState {
1511 #[inline]
1512 unsafe fn from_glib(value: ffi::GstWebRTCPeerConnectionState) -> Self {
1513 skip_assert_initialized!();
1514
1515 match value {
1516 ffi::GST_WEBRTC_PEER_CONNECTION_STATE_NEW => Self::New,
1517 ffi::GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING => Self::Connecting,
1518 ffi::GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED => Self::Connected,
1519 ffi::GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED => Self::Disconnected,
1520 ffi::GST_WEBRTC_PEER_CONNECTION_STATE_FAILED => Self::Failed,
1521 ffi::GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED => Self::Closed,
1522 value => Self::__Unknown(value),
1523 }
1524 }
1525}
1526
1527impl StaticType for WebRTCPeerConnectionState {
1528 #[inline]
1529 #[doc(alias = "gst_webrtc_peer_connection_state_get_type")]
1530 fn static_type() -> glib::Type {
1531 unsafe { from_glib(ffi::gst_webrtc_peer_connection_state_get_type()) }
1532 }
1533}
1534
1535impl glib::HasParamSpec for WebRTCPeerConnectionState {
1536 type ParamSpec = glib::ParamSpecEnum;
1537 type SetValue = Self;
1538 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1539
1540 fn param_spec_builder() -> Self::BuilderFn {
1541 Self::ParamSpec::builder_with_default
1542 }
1543}
1544
1545impl glib::value::ValueType for WebRTCPeerConnectionState {
1546 type Type = Self;
1547}
1548
1549unsafe impl<'a> glib::value::FromValue<'a> for WebRTCPeerConnectionState {
1550 type Checker = glib::value::GenericValueTypeChecker<Self>;
1551
1552 #[inline]
1553 unsafe fn from_value(value: &'a glib::Value) -> Self {
1554 skip_assert_initialized!();
1555 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1556 }
1557}
1558
1559impl ToValue for WebRTCPeerConnectionState {
1560 #[inline]
1561 fn to_value(&self) -> glib::Value {
1562 let mut value = glib::Value::for_value_type::<Self>();
1563 unsafe {
1564 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1565 }
1566 value
1567 }
1568
1569 #[inline]
1570 fn value_type(&self) -> glib::Type {
1571 Self::static_type()
1572 }
1573}
1574
1575impl From<WebRTCPeerConnectionState> for glib::Value {
1576 #[inline]
1577 fn from(v: WebRTCPeerConnectionState) -> Self {
1578 skip_assert_initialized!();
1579 ToValue::to_value(&v)
1580 }
1581}
1582
1583#[cfg(feature = "v1_16")]
1585#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1586#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1587#[non_exhaustive]
1588#[doc(alias = "GstWebRTCPriorityType")]
1589pub enum WebRTCPriorityType {
1590 #[doc(alias = "GST_WEBRTC_PRIORITY_TYPE_VERY_LOW")]
1592 VeryLow,
1593 #[doc(alias = "GST_WEBRTC_PRIORITY_TYPE_LOW")]
1595 Low,
1596 #[doc(alias = "GST_WEBRTC_PRIORITY_TYPE_MEDIUM")]
1598 Medium,
1599 #[doc(alias = "GST_WEBRTC_PRIORITY_TYPE_HIGH")]
1601 High,
1602 #[doc(hidden)]
1603 __Unknown(i32),
1604}
1605
1606#[cfg(feature = "v1_16")]
1607#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1608#[doc(hidden)]
1609impl IntoGlib for WebRTCPriorityType {
1610 type GlibType = ffi::GstWebRTCPriorityType;
1611
1612 #[inline]
1613 fn into_glib(self) -> ffi::GstWebRTCPriorityType {
1614 match self {
1615 Self::VeryLow => ffi::GST_WEBRTC_PRIORITY_TYPE_VERY_LOW,
1616 Self::Low => ffi::GST_WEBRTC_PRIORITY_TYPE_LOW,
1617 Self::Medium => ffi::GST_WEBRTC_PRIORITY_TYPE_MEDIUM,
1618 Self::High => ffi::GST_WEBRTC_PRIORITY_TYPE_HIGH,
1619 Self::__Unknown(value) => value,
1620 }
1621 }
1622}
1623
1624#[cfg(feature = "v1_16")]
1625#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1626#[doc(hidden)]
1627impl FromGlib<ffi::GstWebRTCPriorityType> for WebRTCPriorityType {
1628 #[inline]
1629 unsafe fn from_glib(value: ffi::GstWebRTCPriorityType) -> Self {
1630 skip_assert_initialized!();
1631
1632 match value {
1633 ffi::GST_WEBRTC_PRIORITY_TYPE_VERY_LOW => Self::VeryLow,
1634 ffi::GST_WEBRTC_PRIORITY_TYPE_LOW => Self::Low,
1635 ffi::GST_WEBRTC_PRIORITY_TYPE_MEDIUM => Self::Medium,
1636 ffi::GST_WEBRTC_PRIORITY_TYPE_HIGH => Self::High,
1637 value => Self::__Unknown(value),
1638 }
1639 }
1640}
1641
1642#[cfg(feature = "v1_16")]
1643#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1644impl StaticType for WebRTCPriorityType {
1645 #[inline]
1646 #[doc(alias = "gst_webrtc_priority_type_get_type")]
1647 fn static_type() -> glib::Type {
1648 unsafe { from_glib(ffi::gst_webrtc_priority_type_get_type()) }
1649 }
1650}
1651
1652#[cfg(feature = "v1_16")]
1653#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1654impl glib::HasParamSpec for WebRTCPriorityType {
1655 type ParamSpec = glib::ParamSpecEnum;
1656 type SetValue = Self;
1657 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1658
1659 fn param_spec_builder() -> Self::BuilderFn {
1660 Self::ParamSpec::builder_with_default
1661 }
1662}
1663
1664#[cfg(feature = "v1_16")]
1665#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1666impl glib::value::ValueType for WebRTCPriorityType {
1667 type Type = Self;
1668}
1669
1670#[cfg(feature = "v1_16")]
1671#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1672unsafe impl<'a> glib::value::FromValue<'a> for WebRTCPriorityType {
1673 type Checker = glib::value::GenericValueTypeChecker<Self>;
1674
1675 #[inline]
1676 unsafe fn from_value(value: &'a glib::Value) -> Self {
1677 skip_assert_initialized!();
1678 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1679 }
1680}
1681
1682#[cfg(feature = "v1_16")]
1683#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1684impl ToValue for WebRTCPriorityType {
1685 #[inline]
1686 fn to_value(&self) -> glib::Value {
1687 let mut value = glib::Value::for_value_type::<Self>();
1688 unsafe {
1689 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1690 }
1691 value
1692 }
1693
1694 #[inline]
1695 fn value_type(&self) -> glib::Type {
1696 Self::static_type()
1697 }
1698}
1699
1700#[cfg(feature = "v1_16")]
1701#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1702impl From<WebRTCPriorityType> for glib::Value {
1703 #[inline]
1704 fn from(v: WebRTCPriorityType) -> Self {
1705 skip_assert_initialized!();
1706 ToValue::to_value(&v)
1707 }
1708}
1709
1710#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1711#[non_exhaustive]
1712#[doc(alias = "GstWebRTCRTPTransceiverDirection")]
1713pub enum WebRTCRTPTransceiverDirection {
1714 #[doc(alias = "GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_NONE")]
1716 None,
1717 #[doc(alias = "GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_INACTIVE")]
1719 Inactive,
1720 #[doc(alias = "GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY")]
1722 Sendonly,
1723 #[doc(alias = "GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY")]
1725 Recvonly,
1726 #[doc(alias = "GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV")]
1728 Sendrecv,
1729 #[doc(hidden)]
1730 __Unknown(i32),
1731}
1732
1733#[doc(hidden)]
1734impl IntoGlib for WebRTCRTPTransceiverDirection {
1735 type GlibType = ffi::GstWebRTCRTPTransceiverDirection;
1736
1737 #[inline]
1738 fn into_glib(self) -> ffi::GstWebRTCRTPTransceiverDirection {
1739 match self {
1740 Self::None => ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_NONE,
1741 Self::Inactive => ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_INACTIVE,
1742 Self::Sendonly => ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY,
1743 Self::Recvonly => ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY,
1744 Self::Sendrecv => ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV,
1745 Self::__Unknown(value) => value,
1746 }
1747 }
1748}
1749
1750#[doc(hidden)]
1751impl FromGlib<ffi::GstWebRTCRTPTransceiverDirection> for WebRTCRTPTransceiverDirection {
1752 #[inline]
1753 unsafe fn from_glib(value: ffi::GstWebRTCRTPTransceiverDirection) -> Self {
1754 skip_assert_initialized!();
1755
1756 match value {
1757 ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_NONE => Self::None,
1758 ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_INACTIVE => Self::Inactive,
1759 ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY => Self::Sendonly,
1760 ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY => Self::Recvonly,
1761 ffi::GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV => Self::Sendrecv,
1762 value => Self::__Unknown(value),
1763 }
1764 }
1765}
1766
1767impl StaticType for WebRTCRTPTransceiverDirection {
1768 #[inline]
1769 #[doc(alias = "gst_webrtc_rtp_transceiver_direction_get_type")]
1770 fn static_type() -> glib::Type {
1771 unsafe { from_glib(ffi::gst_webrtc_rtp_transceiver_direction_get_type()) }
1772 }
1773}
1774
1775impl glib::HasParamSpec for WebRTCRTPTransceiverDirection {
1776 type ParamSpec = glib::ParamSpecEnum;
1777 type SetValue = Self;
1778 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1779
1780 fn param_spec_builder() -> Self::BuilderFn {
1781 Self::ParamSpec::builder_with_default
1782 }
1783}
1784
1785impl glib::value::ValueType for WebRTCRTPTransceiverDirection {
1786 type Type = Self;
1787}
1788
1789unsafe impl<'a> glib::value::FromValue<'a> for WebRTCRTPTransceiverDirection {
1790 type Checker = glib::value::GenericValueTypeChecker<Self>;
1791
1792 #[inline]
1793 unsafe fn from_value(value: &'a glib::Value) -> Self {
1794 skip_assert_initialized!();
1795 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1796 }
1797}
1798
1799impl ToValue for WebRTCRTPTransceiverDirection {
1800 #[inline]
1801 fn to_value(&self) -> glib::Value {
1802 let mut value = glib::Value::for_value_type::<Self>();
1803 unsafe {
1804 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1805 }
1806 value
1807 }
1808
1809 #[inline]
1810 fn value_type(&self) -> glib::Type {
1811 Self::static_type()
1812 }
1813}
1814
1815impl From<WebRTCRTPTransceiverDirection> for glib::Value {
1816 #[inline]
1817 fn from(v: WebRTCRTPTransceiverDirection) -> Self {
1818 skip_assert_initialized!();
1819 ToValue::to_value(&v)
1820 }
1821}
1822
1823#[cfg(feature = "v1_16")]
1825#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1826#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1827#[non_exhaustive]
1828#[doc(alias = "GstWebRTCSCTPTransportState")]
1829pub enum WebRTCSCTPTransportState {
1830 #[doc(alias = "GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW")]
1832 New,
1833 #[doc(alias = "GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING")]
1835 Connecting,
1836 #[doc(alias = "GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED")]
1838 Connected,
1839 #[doc(alias = "GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED")]
1841 Closed,
1842 #[doc(hidden)]
1843 __Unknown(i32),
1844}
1845
1846#[cfg(feature = "v1_16")]
1847#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1848#[doc(hidden)]
1849impl IntoGlib for WebRTCSCTPTransportState {
1850 type GlibType = ffi::GstWebRTCSCTPTransportState;
1851
1852 #[inline]
1853 fn into_glib(self) -> ffi::GstWebRTCSCTPTransportState {
1854 match self {
1855 Self::New => ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW,
1856 Self::Connecting => ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING,
1857 Self::Connected => ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED,
1858 Self::Closed => ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED,
1859 Self::__Unknown(value) => value,
1860 }
1861 }
1862}
1863
1864#[cfg(feature = "v1_16")]
1865#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1866#[doc(hidden)]
1867impl FromGlib<ffi::GstWebRTCSCTPTransportState> for WebRTCSCTPTransportState {
1868 #[inline]
1869 unsafe fn from_glib(value: ffi::GstWebRTCSCTPTransportState) -> Self {
1870 skip_assert_initialized!();
1871
1872 match value {
1873 ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW => Self::New,
1874 ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING => Self::Connecting,
1875 ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED => Self::Connected,
1876 ffi::GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED => Self::Closed,
1877 value => Self::__Unknown(value),
1878 }
1879 }
1880}
1881
1882#[cfg(feature = "v1_16")]
1883#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1884impl StaticType for WebRTCSCTPTransportState {
1885 #[inline]
1886 #[doc(alias = "gst_webrtc_sctp_transport_state_get_type")]
1887 fn static_type() -> glib::Type {
1888 unsafe { from_glib(ffi::gst_webrtc_sctp_transport_state_get_type()) }
1889 }
1890}
1891
1892#[cfg(feature = "v1_16")]
1893#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1894impl glib::HasParamSpec for WebRTCSCTPTransportState {
1895 type ParamSpec = glib::ParamSpecEnum;
1896 type SetValue = Self;
1897 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1898
1899 fn param_spec_builder() -> Self::BuilderFn {
1900 Self::ParamSpec::builder_with_default
1901 }
1902}
1903
1904#[cfg(feature = "v1_16")]
1905#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1906impl glib::value::ValueType for WebRTCSCTPTransportState {
1907 type Type = Self;
1908}
1909
1910#[cfg(feature = "v1_16")]
1911#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1912unsafe impl<'a> glib::value::FromValue<'a> for WebRTCSCTPTransportState {
1913 type Checker = glib::value::GenericValueTypeChecker<Self>;
1914
1915 #[inline]
1916 unsafe fn from_value(value: &'a glib::Value) -> Self {
1917 skip_assert_initialized!();
1918 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1919 }
1920}
1921
1922#[cfg(feature = "v1_16")]
1923#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1924impl ToValue for WebRTCSCTPTransportState {
1925 #[inline]
1926 fn to_value(&self) -> glib::Value {
1927 let mut value = glib::Value::for_value_type::<Self>();
1928 unsafe {
1929 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1930 }
1931 value
1932 }
1933
1934 #[inline]
1935 fn value_type(&self) -> glib::Type {
1936 Self::static_type()
1937 }
1938}
1939
1940#[cfg(feature = "v1_16")]
1941#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1942impl From<WebRTCSCTPTransportState> for glib::Value {
1943 #[inline]
1944 fn from(v: WebRTCSCTPTransportState) -> Self {
1945 skip_assert_initialized!();
1946 ToValue::to_value(&v)
1947 }
1948}
1949
1950#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1952#[non_exhaustive]
1953#[doc(alias = "GstWebRTCSDPType")]
1954pub enum WebRTCSDPType {
1955 #[doc(alias = "GST_WEBRTC_SDP_TYPE_OFFER")]
1957 Offer,
1958 #[doc(alias = "GST_WEBRTC_SDP_TYPE_PRANSWER")]
1960 Pranswer,
1961 #[doc(alias = "GST_WEBRTC_SDP_TYPE_ANSWER")]
1963 Answer,
1964 #[doc(alias = "GST_WEBRTC_SDP_TYPE_ROLLBACK")]
1966 Rollback,
1967 #[doc(hidden)]
1968 __Unknown(i32),
1969}
1970
1971impl WebRTCSDPType {
1972 pub fn to_str<'a>(self) -> &'a GStr {
1973 unsafe {
1974 GStr::from_ptr(
1975 ffi::gst_webrtc_sdp_type_to_string(self.into_glib())
1976 .as_ref()
1977 .expect("gst_webrtc_sdp_type_to_string returned NULL"),
1978 )
1979 }
1980 }
1981}
1982
1983impl std::fmt::Display for WebRTCSDPType {
1984 #[inline]
1985 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1986 f.write_str(&self.to_str())
1987 }
1988}
1989
1990#[doc(hidden)]
1991impl IntoGlib for WebRTCSDPType {
1992 type GlibType = ffi::GstWebRTCSDPType;
1993
1994 #[inline]
1995 fn into_glib(self) -> ffi::GstWebRTCSDPType {
1996 match self {
1997 Self::Offer => ffi::GST_WEBRTC_SDP_TYPE_OFFER,
1998 Self::Pranswer => ffi::GST_WEBRTC_SDP_TYPE_PRANSWER,
1999 Self::Answer => ffi::GST_WEBRTC_SDP_TYPE_ANSWER,
2000 Self::Rollback => ffi::GST_WEBRTC_SDP_TYPE_ROLLBACK,
2001 Self::__Unknown(value) => value,
2002 }
2003 }
2004}
2005
2006#[doc(hidden)]
2007impl FromGlib<ffi::GstWebRTCSDPType> for WebRTCSDPType {
2008 #[inline]
2009 unsafe fn from_glib(value: ffi::GstWebRTCSDPType) -> Self {
2010 skip_assert_initialized!();
2011
2012 match value {
2013 ffi::GST_WEBRTC_SDP_TYPE_OFFER => Self::Offer,
2014 ffi::GST_WEBRTC_SDP_TYPE_PRANSWER => Self::Pranswer,
2015 ffi::GST_WEBRTC_SDP_TYPE_ANSWER => Self::Answer,
2016 ffi::GST_WEBRTC_SDP_TYPE_ROLLBACK => Self::Rollback,
2017 value => Self::__Unknown(value),
2018 }
2019 }
2020}
2021
2022impl StaticType for WebRTCSDPType {
2023 #[inline]
2024 #[doc(alias = "gst_webrtc_sdp_type_get_type")]
2025 fn static_type() -> glib::Type {
2026 unsafe { from_glib(ffi::gst_webrtc_sdp_type_get_type()) }
2027 }
2028}
2029
2030impl glib::HasParamSpec for WebRTCSDPType {
2031 type ParamSpec = glib::ParamSpecEnum;
2032 type SetValue = Self;
2033 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2034
2035 fn param_spec_builder() -> Self::BuilderFn {
2036 Self::ParamSpec::builder_with_default
2037 }
2038}
2039
2040impl glib::value::ValueType for WebRTCSDPType {
2041 type Type = Self;
2042}
2043
2044unsafe impl<'a> glib::value::FromValue<'a> for WebRTCSDPType {
2045 type Checker = glib::value::GenericValueTypeChecker<Self>;
2046
2047 #[inline]
2048 unsafe fn from_value(value: &'a glib::Value) -> Self {
2049 skip_assert_initialized!();
2050 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2051 }
2052}
2053
2054impl ToValue for WebRTCSDPType {
2055 #[inline]
2056 fn to_value(&self) -> glib::Value {
2057 let mut value = glib::Value::for_value_type::<Self>();
2058 unsafe {
2059 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2060 }
2061 value
2062 }
2063
2064 #[inline]
2065 fn value_type(&self) -> glib::Type {
2066 Self::static_type()
2067 }
2068}
2069
2070impl From<WebRTCSDPType> for glib::Value {
2071 #[inline]
2072 fn from(v: WebRTCSDPType) -> Self {
2073 skip_assert_initialized!();
2074 ToValue::to_value(&v)
2075 }
2076}
2077
2078#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2080#[non_exhaustive]
2081#[doc(alias = "GstWebRTCSignalingState")]
2082pub enum WebRTCSignalingState {
2083 #[doc(alias = "GST_WEBRTC_SIGNALING_STATE_STABLE")]
2085 Stable,
2086 #[doc(alias = "GST_WEBRTC_SIGNALING_STATE_CLOSED")]
2088 Closed,
2089 #[doc(alias = "GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER")]
2091 HaveLocalOffer,
2092 #[doc(alias = "GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER")]
2094 HaveRemoteOffer,
2095 #[doc(alias = "GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER")]
2097 HaveLocalPranswer,
2098 #[doc(alias = "GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER")]
2100 HaveRemotePranswer,
2101 #[doc(hidden)]
2102 __Unknown(i32),
2103}
2104
2105#[doc(hidden)]
2106impl IntoGlib for WebRTCSignalingState {
2107 type GlibType = ffi::GstWebRTCSignalingState;
2108
2109 #[inline]
2110 fn into_glib(self) -> ffi::GstWebRTCSignalingState {
2111 match self {
2112 Self::Stable => ffi::GST_WEBRTC_SIGNALING_STATE_STABLE,
2113 Self::Closed => ffi::GST_WEBRTC_SIGNALING_STATE_CLOSED,
2114 Self::HaveLocalOffer => ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER,
2115 Self::HaveRemoteOffer => ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER,
2116 Self::HaveLocalPranswer => ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER,
2117 Self::HaveRemotePranswer => ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER,
2118 Self::__Unknown(value) => value,
2119 }
2120 }
2121}
2122
2123#[doc(hidden)]
2124impl FromGlib<ffi::GstWebRTCSignalingState> for WebRTCSignalingState {
2125 #[inline]
2126 unsafe fn from_glib(value: ffi::GstWebRTCSignalingState) -> Self {
2127 skip_assert_initialized!();
2128
2129 match value {
2130 ffi::GST_WEBRTC_SIGNALING_STATE_STABLE => Self::Stable,
2131 ffi::GST_WEBRTC_SIGNALING_STATE_CLOSED => Self::Closed,
2132 ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER => Self::HaveLocalOffer,
2133 ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER => Self::HaveRemoteOffer,
2134 ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER => Self::HaveLocalPranswer,
2135 ffi::GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER => Self::HaveRemotePranswer,
2136 value => Self::__Unknown(value),
2137 }
2138 }
2139}
2140
2141impl StaticType for WebRTCSignalingState {
2142 #[inline]
2143 #[doc(alias = "gst_webrtc_signaling_state_get_type")]
2144 fn static_type() -> glib::Type {
2145 unsafe { from_glib(ffi::gst_webrtc_signaling_state_get_type()) }
2146 }
2147}
2148
2149impl glib::HasParamSpec for WebRTCSignalingState {
2150 type ParamSpec = glib::ParamSpecEnum;
2151 type SetValue = Self;
2152 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2153
2154 fn param_spec_builder() -> Self::BuilderFn {
2155 Self::ParamSpec::builder_with_default
2156 }
2157}
2158
2159impl glib::value::ValueType for WebRTCSignalingState {
2160 type Type = Self;
2161}
2162
2163unsafe impl<'a> glib::value::FromValue<'a> for WebRTCSignalingState {
2164 type Checker = glib::value::GenericValueTypeChecker<Self>;
2165
2166 #[inline]
2167 unsafe fn from_value(value: &'a glib::Value) -> Self {
2168 skip_assert_initialized!();
2169 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2170 }
2171}
2172
2173impl ToValue for WebRTCSignalingState {
2174 #[inline]
2175 fn to_value(&self) -> glib::Value {
2176 let mut value = glib::Value::for_value_type::<Self>();
2177 unsafe {
2178 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2179 }
2180 value
2181 }
2182
2183 #[inline]
2184 fn value_type(&self) -> glib::Type {
2185 Self::static_type()
2186 }
2187}
2188
2189impl From<WebRTCSignalingState> for glib::Value {
2190 #[inline]
2191 fn from(v: WebRTCSignalingState) -> Self {
2192 skip_assert_initialized!();
2193 ToValue::to_value(&v)
2194 }
2195}
2196
2197#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2199#[non_exhaustive]
2200#[doc(alias = "GstWebRTCStatsType")]
2201pub enum WebRTCStatsType {
2202 #[doc(alias = "GST_WEBRTC_STATS_CODEC")]
2204 Codec,
2205 #[doc(alias = "GST_WEBRTC_STATS_INBOUND_RTP")]
2207 InboundRtp,
2208 #[doc(alias = "GST_WEBRTC_STATS_OUTBOUND_RTP")]
2210 OutboundRtp,
2211 #[doc(alias = "GST_WEBRTC_STATS_REMOTE_INBOUND_RTP")]
2213 RemoteInboundRtp,
2214 #[doc(alias = "GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP")]
2216 RemoteOutboundRtp,
2217 #[doc(alias = "GST_WEBRTC_STATS_CSRC")]
2219 Csrc,
2220 #[doc(alias = "GST_WEBRTC_STATS_PEER_CONNECTION")]
2222 PeerConnection,
2223 #[doc(alias = "GST_WEBRTC_STATS_DATA_CHANNEL")]
2225 DataChannel,
2226 #[doc(alias = "GST_WEBRTC_STATS_STREAM")]
2228 Stream,
2229 #[doc(alias = "GST_WEBRTC_STATS_TRANSPORT")]
2231 Transport,
2232 #[doc(alias = "GST_WEBRTC_STATS_CANDIDATE_PAIR")]
2234 CandidatePair,
2235 #[doc(alias = "GST_WEBRTC_STATS_LOCAL_CANDIDATE")]
2237 LocalCandidate,
2238 #[doc(alias = "GST_WEBRTC_STATS_REMOTE_CANDIDATE")]
2240 RemoteCandidate,
2241 #[doc(alias = "GST_WEBRTC_STATS_CERTIFICATE")]
2243 Certificate,
2244 #[doc(hidden)]
2245 __Unknown(i32),
2246}
2247
2248#[doc(hidden)]
2249impl IntoGlib for WebRTCStatsType {
2250 type GlibType = ffi::GstWebRTCStatsType;
2251
2252 fn into_glib(self) -> ffi::GstWebRTCStatsType {
2253 match self {
2254 Self::Codec => ffi::GST_WEBRTC_STATS_CODEC,
2255 Self::InboundRtp => ffi::GST_WEBRTC_STATS_INBOUND_RTP,
2256 Self::OutboundRtp => ffi::GST_WEBRTC_STATS_OUTBOUND_RTP,
2257 Self::RemoteInboundRtp => ffi::GST_WEBRTC_STATS_REMOTE_INBOUND_RTP,
2258 Self::RemoteOutboundRtp => ffi::GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP,
2259 Self::Csrc => ffi::GST_WEBRTC_STATS_CSRC,
2260 Self::PeerConnection => ffi::GST_WEBRTC_STATS_PEER_CONNECTION,
2261 Self::DataChannel => ffi::GST_WEBRTC_STATS_DATA_CHANNEL,
2262 Self::Stream => ffi::GST_WEBRTC_STATS_STREAM,
2263 Self::Transport => ffi::GST_WEBRTC_STATS_TRANSPORT,
2264 Self::CandidatePair => ffi::GST_WEBRTC_STATS_CANDIDATE_PAIR,
2265 Self::LocalCandidate => ffi::GST_WEBRTC_STATS_LOCAL_CANDIDATE,
2266 Self::RemoteCandidate => ffi::GST_WEBRTC_STATS_REMOTE_CANDIDATE,
2267 Self::Certificate => ffi::GST_WEBRTC_STATS_CERTIFICATE,
2268 Self::__Unknown(value) => value,
2269 }
2270 }
2271}
2272
2273#[doc(hidden)]
2274impl FromGlib<ffi::GstWebRTCStatsType> for WebRTCStatsType {
2275 unsafe fn from_glib(value: ffi::GstWebRTCStatsType) -> Self {
2276 skip_assert_initialized!();
2277
2278 match value {
2279 ffi::GST_WEBRTC_STATS_CODEC => Self::Codec,
2280 ffi::GST_WEBRTC_STATS_INBOUND_RTP => Self::InboundRtp,
2281 ffi::GST_WEBRTC_STATS_OUTBOUND_RTP => Self::OutboundRtp,
2282 ffi::GST_WEBRTC_STATS_REMOTE_INBOUND_RTP => Self::RemoteInboundRtp,
2283 ffi::GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP => Self::RemoteOutboundRtp,
2284 ffi::GST_WEBRTC_STATS_CSRC => Self::Csrc,
2285 ffi::GST_WEBRTC_STATS_PEER_CONNECTION => Self::PeerConnection,
2286 ffi::GST_WEBRTC_STATS_DATA_CHANNEL => Self::DataChannel,
2287 ffi::GST_WEBRTC_STATS_STREAM => Self::Stream,
2288 ffi::GST_WEBRTC_STATS_TRANSPORT => Self::Transport,
2289 ffi::GST_WEBRTC_STATS_CANDIDATE_PAIR => Self::CandidatePair,
2290 ffi::GST_WEBRTC_STATS_LOCAL_CANDIDATE => Self::LocalCandidate,
2291 ffi::GST_WEBRTC_STATS_REMOTE_CANDIDATE => Self::RemoteCandidate,
2292 ffi::GST_WEBRTC_STATS_CERTIFICATE => Self::Certificate,
2293 value => Self::__Unknown(value),
2294 }
2295 }
2296}
2297
2298impl StaticType for WebRTCStatsType {
2299 #[inline]
2300 #[doc(alias = "gst_webrtc_stats_type_get_type")]
2301 fn static_type() -> glib::Type {
2302 unsafe { from_glib(ffi::gst_webrtc_stats_type_get_type()) }
2303 }
2304}
2305
2306impl glib::HasParamSpec for WebRTCStatsType {
2307 type ParamSpec = glib::ParamSpecEnum;
2308 type SetValue = Self;
2309 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2310
2311 fn param_spec_builder() -> Self::BuilderFn {
2312 Self::ParamSpec::builder_with_default
2313 }
2314}
2315
2316impl glib::value::ValueType for WebRTCStatsType {
2317 type Type = Self;
2318}
2319
2320unsafe impl<'a> glib::value::FromValue<'a> for WebRTCStatsType {
2321 type Checker = glib::value::GenericValueTypeChecker<Self>;
2322
2323 #[inline]
2324 unsafe fn from_value(value: &'a glib::Value) -> Self {
2325 skip_assert_initialized!();
2326 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2327 }
2328}
2329
2330impl ToValue for WebRTCStatsType {
2331 #[inline]
2332 fn to_value(&self) -> glib::Value {
2333 let mut value = glib::Value::for_value_type::<Self>();
2334 unsafe {
2335 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2336 }
2337 value
2338 }
2339
2340 #[inline]
2341 fn value_type(&self) -> glib::Type {
2342 Self::static_type()
2343 }
2344}
2345
2346impl From<WebRTCStatsType> for glib::Value {
2347 #[inline]
2348 fn from(v: WebRTCStatsType) -> Self {
2349 skip_assert_initialized!();
2350 ToValue::to_value(&v)
2351 }
2352}