gstreamer_editing_services/auto/
meta_container.rs1#![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 {}