Skip to main content

gstreamer_editing_services/auto/
meta_container.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5#![allow(deprecated)]
6
7#[cfg(feature = "v1_18")]
8#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
9use crate::MarkerList;
10use crate::{MetaFlag, ffi};
11use glib::{
12    object::ObjectType as _,
13    prelude::*,
14    signal::{SignalHandlerId, connect_raw},
15    translate::*,
16};
17use std::boxed::Box as Box_;
18
19glib::wrapper! {
20    #[doc(alias = "GESMetaContainer")]
21    pub struct MetaContainer(Interface<ffi::GESMetaContainer, ffi::GESMetaContainerInterface>);
22
23    match fn {
24        type_ => || ffi::ges_meta_container_get_type(),
25    }
26}
27
28impl MetaContainer {
29    pub const NONE: Option<&'static MetaContainer> = None;
30}
31
32pub trait MetaContainerExt: IsA<MetaContainer> + 'static {
33    #[doc(alias = "ges_meta_container_add_metas_from_string")]
34    fn add_metas_from_string(&self, str: &str) -> bool {
35        unsafe {
36            from_glib(ffi::ges_meta_container_add_metas_from_string(
37                self.as_ref().to_glib_none().0,
38                str.to_glib_none().0,
39            ))
40        }
41    }
42
43    #[doc(alias = "ges_meta_container_check_meta_registered")]
44    fn check_meta_registered(&self, meta_item: &str) -> Option<(MetaFlag, glib::types::Type)> {
45        unsafe {
46            let mut flags = std::mem::MaybeUninit::uninit();
47            let mut type_ = std::mem::MaybeUninit::uninit();
48            let ret = from_glib(ffi::ges_meta_container_check_meta_registered(
49                self.as_ref().to_glib_none().0,
50                meta_item.to_glib_none().0,
51                flags.as_mut_ptr(),
52                type_.as_mut_ptr(),
53            ));
54            if ret {
55                Some((
56                    from_glib(flags.assume_init()),
57                    from_glib(type_.assume_init()),
58                ))
59            } else {
60                None
61            }
62        }
63    }
64
65    #[doc(alias = "ges_meta_container_foreach")]
66    fn foreach<P: FnMut(&MetaContainer, &str, &glib::Value)>(&self, func: P) {
67        let mut func_data: P = func;
68        unsafe extern "C" fn func_func<P: FnMut(&MetaContainer, &str, &glib::Value)>(
69            container: *const ffi::GESMetaContainer,
70            key: *const std::ffi::c_char,
71            value: *const glib::gobject_ffi::GValue,
72            user_data: glib::ffi::gpointer,
73        ) {
74            unsafe {
75                let container = from_glib_borrow(container);
76                let key: Borrowed<glib::GString> = from_glib_borrow(key);
77                let value = from_glib_borrow(value);
78                let callback = user_data as *mut P;
79                (*callback)(&container, key.as_str(), &value)
80            }
81        }
82        let func = Some(func_func::<P> as _);
83        let super_callback0: &mut P = &mut func_data;
84        unsafe {
85            ffi::ges_meta_container_foreach(
86                self.as_ref().to_glib_none().0,
87                func,
88                super_callback0 as *mut _ as *mut _,
89            );
90        }
91    }
92
93    #[doc(alias = "ges_meta_container_get_boolean")]
94    #[doc(alias = "get_boolean")]
95    fn boolean(&self, meta_item: &str) -> Option<bool> {
96        unsafe {
97            let mut dest = std::mem::MaybeUninit::uninit();
98            let ret = from_glib(ffi::ges_meta_container_get_boolean(
99                self.as_ref().to_glib_none().0,
100                meta_item.to_glib_none().0,
101                dest.as_mut_ptr(),
102            ));
103            if ret {
104                Some(from_glib(dest.assume_init()))
105            } else {
106                None
107            }
108        }
109    }
110
111    #[doc(alias = "ges_meta_container_get_date")]
112    #[doc(alias = "get_date")]
113    fn date(&self, meta_item: &str) -> Option<glib::Date> {
114        unsafe {
115            let mut dest = std::ptr::null_mut();
116            let ret = from_glib(ffi::ges_meta_container_get_date(
117                self.as_ref().to_glib_none().0,
118                meta_item.to_glib_none().0,
119                &mut dest,
120            ));
121            if ret {
122                Some(from_glib_full(dest))
123            } else {
124                None
125            }
126        }
127    }
128
129    #[doc(alias = "ges_meta_container_get_date_time")]
130    #[doc(alias = "get_date_time")]
131    fn date_time(&self, meta_item: &str) -> Option<gst::DateTime> {
132        unsafe {
133            let mut dest = std::ptr::null_mut();
134            let ret = from_glib(ffi::ges_meta_container_get_date_time(
135                self.as_ref().to_glib_none().0,
136                meta_item.to_glib_none().0,
137                &mut dest,
138            ));
139            if ret {
140                Some(from_glib_full(dest))
141            } else {
142                None
143            }
144        }
145    }
146
147    #[doc(alias = "ges_meta_container_get_double")]
148    #[doc(alias = "get_double")]
149    fn double(&self, meta_item: &str) -> Option<f64> {
150        unsafe {
151            let mut dest = std::mem::MaybeUninit::uninit();
152            let ret = from_glib(ffi::ges_meta_container_get_double(
153                self.as_ref().to_glib_none().0,
154                meta_item.to_glib_none().0,
155                dest.as_mut_ptr(),
156            ));
157            if ret { Some(dest.assume_init()) } else { None }
158        }
159    }
160
161    #[doc(alias = "ges_meta_container_get_float")]
162    #[doc(alias = "get_float")]
163    fn float(&self, meta_item: &str) -> Option<f32> {
164        unsafe {
165            let mut dest = std::mem::MaybeUninit::uninit();
166            let ret = from_glib(ffi::ges_meta_container_get_float(
167                self.as_ref().to_glib_none().0,
168                meta_item.to_glib_none().0,
169                dest.as_mut_ptr(),
170            ));
171            if ret { Some(dest.assume_init()) } else { None }
172        }
173    }
174
175    #[doc(alias = "ges_meta_container_get_int")]
176    #[doc(alias = "get_int")]
177    fn int(&self, meta_item: &str) -> Option<i32> {
178        unsafe {
179            let mut dest = std::mem::MaybeUninit::uninit();
180            let ret = from_glib(ffi::ges_meta_container_get_int(
181                self.as_ref().to_glib_none().0,
182                meta_item.to_glib_none().0,
183                dest.as_mut_ptr(),
184            ));
185            if ret { Some(dest.assume_init()) } else { None }
186        }
187    }
188
189    #[doc(alias = "ges_meta_container_get_int64")]
190    #[doc(alias = "get_int64")]
191    fn int64(&self, meta_item: &str) -> Option<i64> {
192        unsafe {
193            let mut dest = std::mem::MaybeUninit::uninit();
194            let ret = from_glib(ffi::ges_meta_container_get_int64(
195                self.as_ref().to_glib_none().0,
196                meta_item.to_glib_none().0,
197                dest.as_mut_ptr(),
198            ));
199            if ret { Some(dest.assume_init()) } else { None }
200        }
201    }
202
203    #[cfg(feature = "v1_18")]
204    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
205    #[doc(alias = "ges_meta_container_get_marker_list")]
206    #[doc(alias = "get_marker_list")]
207    fn marker_list(&self, key: &str) -> Option<MarkerList> {
208        unsafe {
209            from_glib_full(ffi::ges_meta_container_get_marker_list(
210                self.as_ref().to_glib_none().0,
211                key.to_glib_none().0,
212            ))
213        }
214    }
215
216    #[cfg_attr(feature = "v1_30", deprecated = "Since 1.30")]
217    #[allow(deprecated)]
218    #[doc(alias = "ges_meta_container_get_meta")]
219    #[doc(alias = "get_meta")]
220    fn meta(&self, key: &str) -> Option<glib::Value> {
221        unsafe {
222            from_glib_none(ffi::ges_meta_container_get_meta(
223                self.as_ref().to_glib_none().0,
224                key.to_glib_none().0,
225            ))
226        }
227    }
228
229    #[cfg(feature = "v1_30")]
230    #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
231    #[doc(alias = "ges_meta_container_get_meta_full")]
232    #[doc(alias = "get_meta_full")]
233    fn meta_full(&self, key: &str) -> Option<glib::Value> {
234        unsafe {
235            let mut dest = glib::Value::uninitialized();
236            let ret = from_glib(ffi::ges_meta_container_get_meta_full(
237                self.as_ref().to_glib_none().0,
238                key.to_glib_none().0,
239                dest.to_glib_none_mut().0,
240            ));
241            if ret { Some(dest) } else { None }
242        }
243    }
244
245    #[cfg_attr(feature = "v1_30", deprecated = "Since 1.30")]
246    #[allow(deprecated)]
247    #[doc(alias = "ges_meta_container_get_string")]
248    #[doc(alias = "get_string")]
249    fn string(&self, meta_item: &str) -> Option<glib::GString> {
250        unsafe {
251            from_glib_none(ffi::ges_meta_container_get_string(
252                self.as_ref().to_glib_none().0,
253                meta_item.to_glib_none().0,
254            ))
255        }
256    }
257
258    #[cfg(feature = "v1_30")]
259    #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
260    #[doc(alias = "ges_meta_container_get_string_full")]
261    #[doc(alias = "get_string_full")]
262    fn string_full(&self, meta_item: &str) -> Option<glib::GString> {
263        unsafe {
264            from_glib_full(ffi::ges_meta_container_get_string_full(
265                self.as_ref().to_glib_none().0,
266                meta_item.to_glib_none().0,
267            ))
268        }
269    }
270
271    #[doc(alias = "ges_meta_container_get_uint")]
272    #[doc(alias = "get_uint")]
273    fn uint(&self, meta_item: &str) -> Option<u32> {
274        unsafe {
275            let mut dest = std::mem::MaybeUninit::uninit();
276            let ret = from_glib(ffi::ges_meta_container_get_uint(
277                self.as_ref().to_glib_none().0,
278                meta_item.to_glib_none().0,
279                dest.as_mut_ptr(),
280            ));
281            if ret { Some(dest.assume_init()) } else { None }
282        }
283    }
284
285    #[doc(alias = "ges_meta_container_get_uint64")]
286    #[doc(alias = "get_uint64")]
287    fn uint64(&self, meta_item: &str) -> Option<u64> {
288        unsafe {
289            let mut dest = std::mem::MaybeUninit::uninit();
290            let ret = from_glib(ffi::ges_meta_container_get_uint64(
291                self.as_ref().to_glib_none().0,
292                meta_item.to_glib_none().0,
293                dest.as_mut_ptr(),
294            ));
295            if ret { Some(dest.assume_init()) } else { None }
296        }
297    }
298
299    #[doc(alias = "ges_meta_container_metas_to_string")]
300    fn metas_to_string(&self) -> glib::GString {
301        unsafe {
302            from_glib_full(ffi::ges_meta_container_metas_to_string(
303                self.as_ref().to_glib_none().0,
304            ))
305        }
306    }
307
308    #[doc(alias = "ges_meta_container_register_meta")]
309    fn register_meta(&self, flags: MetaFlag, meta_item: &str, value: &glib::Value) -> bool {
310        unsafe {
311            from_glib(ffi::ges_meta_container_register_meta(
312                self.as_ref().to_glib_none().0,
313                flags.into_glib(),
314                meta_item.to_glib_none().0,
315                value.to_glib_none().0,
316            ))
317        }
318    }
319
320    #[doc(alias = "ges_meta_container_register_meta_boolean")]
321    fn register_meta_boolean(&self, flags: MetaFlag, meta_item: &str, value: bool) -> bool {
322        unsafe {
323            from_glib(ffi::ges_meta_container_register_meta_boolean(
324                self.as_ref().to_glib_none().0,
325                flags.into_glib(),
326                meta_item.to_glib_none().0,
327                value.into_glib(),
328            ))
329        }
330    }
331
332    #[doc(alias = "ges_meta_container_register_meta_date")]
333    fn register_meta_date(&self, flags: MetaFlag, meta_item: &str, value: &glib::Date) -> bool {
334        unsafe {
335            from_glib(ffi::ges_meta_container_register_meta_date(
336                self.as_ref().to_glib_none().0,
337                flags.into_glib(),
338                meta_item.to_glib_none().0,
339                value.to_glib_none().0,
340            ))
341        }
342    }
343
344    #[doc(alias = "ges_meta_container_register_meta_date_time")]
345    fn register_meta_date_time(
346        &self,
347        flags: MetaFlag,
348        meta_item: &str,
349        value: &gst::DateTime,
350    ) -> bool {
351        unsafe {
352            from_glib(ffi::ges_meta_container_register_meta_date_time(
353                self.as_ref().to_glib_none().0,
354                flags.into_glib(),
355                meta_item.to_glib_none().0,
356                value.to_glib_none().0,
357            ))
358        }
359    }
360
361    #[doc(alias = "ges_meta_container_register_meta_double")]
362    fn register_meta_double(&self, flags: MetaFlag, meta_item: &str, value: f64) -> bool {
363        unsafe {
364            from_glib(ffi::ges_meta_container_register_meta_double(
365                self.as_ref().to_glib_none().0,
366                flags.into_glib(),
367                meta_item.to_glib_none().0,
368                value,
369            ))
370        }
371    }
372
373    #[doc(alias = "ges_meta_container_register_meta_float")]
374    fn register_meta_float(&self, flags: MetaFlag, meta_item: &str, value: f32) -> bool {
375        unsafe {
376            from_glib(ffi::ges_meta_container_register_meta_float(
377                self.as_ref().to_glib_none().0,
378                flags.into_glib(),
379                meta_item.to_glib_none().0,
380                value,
381            ))
382        }
383    }
384
385    #[doc(alias = "ges_meta_container_register_meta_int")]
386    fn register_meta_int(&self, flags: MetaFlag, meta_item: &str, value: i32) -> bool {
387        unsafe {
388            from_glib(ffi::ges_meta_container_register_meta_int(
389                self.as_ref().to_glib_none().0,
390                flags.into_glib(),
391                meta_item.to_glib_none().0,
392                value,
393            ))
394        }
395    }
396
397    #[doc(alias = "ges_meta_container_register_meta_int64")]
398    fn register_meta_int64(&self, flags: MetaFlag, meta_item: &str, value: i64) -> bool {
399        unsafe {
400            from_glib(ffi::ges_meta_container_register_meta_int64(
401                self.as_ref().to_glib_none().0,
402                flags.into_glib(),
403                meta_item.to_glib_none().0,
404                value,
405            ))
406        }
407    }
408
409    #[doc(alias = "ges_meta_container_register_meta_string")]
410    fn register_meta_string(&self, flags: MetaFlag, meta_item: &str, value: &str) -> bool {
411        unsafe {
412            from_glib(ffi::ges_meta_container_register_meta_string(
413                self.as_ref().to_glib_none().0,
414                flags.into_glib(),
415                meta_item.to_glib_none().0,
416                value.to_glib_none().0,
417            ))
418        }
419    }
420
421    #[doc(alias = "ges_meta_container_register_meta_uint")]
422    fn register_meta_uint(&self, flags: MetaFlag, meta_item: &str, value: u32) -> bool {
423        unsafe {
424            from_glib(ffi::ges_meta_container_register_meta_uint(
425                self.as_ref().to_glib_none().0,
426                flags.into_glib(),
427                meta_item.to_glib_none().0,
428                value,
429            ))
430        }
431    }
432
433    #[doc(alias = "ges_meta_container_register_meta_uint64")]
434    fn register_meta_uint64(&self, flags: MetaFlag, meta_item: &str, value: u64) -> bool {
435        unsafe {
436            from_glib(ffi::ges_meta_container_register_meta_uint64(
437                self.as_ref().to_glib_none().0,
438                flags.into_glib(),
439                meta_item.to_glib_none().0,
440                value,
441            ))
442        }
443    }
444
445    #[cfg(feature = "v1_18")]
446    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
447    #[doc(alias = "ges_meta_container_register_static_meta")]
448    fn register_static_meta(
449        &self,
450        flags: MetaFlag,
451        meta_item: &str,
452        type_: glib::types::Type,
453    ) -> bool {
454        unsafe {
455            from_glib(ffi::ges_meta_container_register_static_meta(
456                self.as_ref().to_glib_none().0,
457                flags.into_glib(),
458                meta_item.to_glib_none().0,
459                type_.into_glib(),
460            ))
461        }
462    }
463
464    #[doc(alias = "ges_meta_container_set_boolean")]
465    fn set_boolean(&self, meta_item: &str, value: bool) -> bool {
466        unsafe {
467            from_glib(ffi::ges_meta_container_set_boolean(
468                self.as_ref().to_glib_none().0,
469                meta_item.to_glib_none().0,
470                value.into_glib(),
471            ))
472        }
473    }
474
475    #[doc(alias = "ges_meta_container_set_date")]
476    fn set_date(&self, meta_item: &str, value: &glib::Date) -> bool {
477        unsafe {
478            from_glib(ffi::ges_meta_container_set_date(
479                self.as_ref().to_glib_none().0,
480                meta_item.to_glib_none().0,
481                value.to_glib_none().0,
482            ))
483        }
484    }
485
486    #[doc(alias = "ges_meta_container_set_date_time")]
487    fn set_date_time(&self, meta_item: &str, value: &gst::DateTime) -> bool {
488        unsafe {
489            from_glib(ffi::ges_meta_container_set_date_time(
490                self.as_ref().to_glib_none().0,
491                meta_item.to_glib_none().0,
492                value.to_glib_none().0,
493            ))
494        }
495    }
496
497    #[doc(alias = "ges_meta_container_set_double")]
498    fn set_double(&self, meta_item: &str, value: f64) -> bool {
499        unsafe {
500            from_glib(ffi::ges_meta_container_set_double(
501                self.as_ref().to_glib_none().0,
502                meta_item.to_glib_none().0,
503                value,
504            ))
505        }
506    }
507
508    #[doc(alias = "ges_meta_container_set_float")]
509    fn set_float(&self, meta_item: &str, value: f32) -> bool {
510        unsafe {
511            from_glib(ffi::ges_meta_container_set_float(
512                self.as_ref().to_glib_none().0,
513                meta_item.to_glib_none().0,
514                value,
515            ))
516        }
517    }
518
519    #[doc(alias = "ges_meta_container_set_int")]
520    fn set_int(&self, meta_item: &str, value: i32) -> bool {
521        unsafe {
522            from_glib(ffi::ges_meta_container_set_int(
523                self.as_ref().to_glib_none().0,
524                meta_item.to_glib_none().0,
525                value,
526            ))
527        }
528    }
529
530    #[doc(alias = "ges_meta_container_set_int64")]
531    fn set_int64(&self, meta_item: &str, value: i64) -> bool {
532        unsafe {
533            from_glib(ffi::ges_meta_container_set_int64(
534                self.as_ref().to_glib_none().0,
535                meta_item.to_glib_none().0,
536                value,
537            ))
538        }
539    }
540
541    #[cfg(feature = "v1_18")]
542    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
543    #[doc(alias = "ges_meta_container_set_marker_list")]
544    fn set_marker_list(&self, meta_item: &str, list: &MarkerList) -> bool {
545        unsafe {
546            from_glib(ffi::ges_meta_container_set_marker_list(
547                self.as_ref().to_glib_none().0,
548                meta_item.to_glib_none().0,
549                list.to_glib_none().0,
550            ))
551        }
552    }
553
554    #[doc(alias = "ges_meta_container_set_meta")]
555    fn set_meta(&self, meta_item: &str, value: Option<&glib::Value>) -> bool {
556        unsafe {
557            from_glib(ffi::ges_meta_container_set_meta(
558                self.as_ref().to_glib_none().0,
559                meta_item.to_glib_none().0,
560                value.to_glib_none().0,
561            ))
562        }
563    }
564
565    #[doc(alias = "ges_meta_container_set_string")]
566    fn set_string(&self, meta_item: &str, value: &str) -> bool {
567        unsafe {
568            from_glib(ffi::ges_meta_container_set_string(
569                self.as_ref().to_glib_none().0,
570                meta_item.to_glib_none().0,
571                value.to_glib_none().0,
572            ))
573        }
574    }
575
576    #[doc(alias = "ges_meta_container_set_uint")]
577    fn set_uint(&self, meta_item: &str, value: u32) -> bool {
578        unsafe {
579            from_glib(ffi::ges_meta_container_set_uint(
580                self.as_ref().to_glib_none().0,
581                meta_item.to_glib_none().0,
582                value,
583            ))
584        }
585    }
586
587    #[doc(alias = "ges_meta_container_set_uint64")]
588    fn set_uint64(&self, meta_item: &str, value: u64) -> bool {
589        unsafe {
590            from_glib(ffi::ges_meta_container_set_uint64(
591                self.as_ref().to_glib_none().0,
592                meta_item.to_glib_none().0,
593                value,
594            ))
595        }
596    }
597
598    #[doc(alias = "notify-meta")]
599    fn connect_notify_meta<F: Fn(&Self, &str, Option<&glib::Value>) + 'static>(
600        &self,
601        detail: Option<&str>,
602        f: F,
603    ) -> SignalHandlerId {
604        unsafe extern "C" fn notify_meta_trampoline<
605            P: IsA<MetaContainer>,
606            F: Fn(&P, &str, Option<&glib::Value>) + 'static,
607        >(
608            this: *mut ffi::GESMetaContainer,
609            key: *mut std::ffi::c_char,
610            value: *mut glib::gobject_ffi::GValue,
611            f: glib::ffi::gpointer,
612        ) {
613            unsafe {
614                let f: &F = &*(f as *const F);
615                f(
616                    MetaContainer::from_glib_borrow(this).unsafe_cast_ref(),
617                    &glib::GString::from_glib_borrow(key),
618                    Option::<glib::Value>::from_glib_borrow(value)
619                        .as_ref()
620                        .as_ref(),
621                )
622            }
623        }
624        unsafe {
625            let f: Box_<F> = Box_::new(f);
626            let detailed_signal_name = detail.map(|name| format!("notify-meta::{name}\0"));
627            let signal_name = detailed_signal_name.as_ref().map_or(c"notify-meta", |n| {
628                std::ffi::CStr::from_bytes_with_nul_unchecked(n.as_bytes())
629            });
630            connect_raw(
631                self.as_ptr() as *mut _,
632                signal_name.as_ptr(),
633                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
634                    notify_meta_trampoline::<Self, F> as *const (),
635                )),
636                Box_::into_raw(f),
637            )
638        }
639    }
640}
641
642impl<O: IsA<MetaContainer>> MetaContainerExt for O {}