gstreamer/auto/
tag_setter.rs1use crate::{ffi, Element, Object, TagList, TagMergeMode};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "GstTagSetter")]
11 pub struct TagSetter(Interface<ffi::GstTagSetter, ffi::GstTagSetterInterface>) @requires Element, Object;
12
13 match fn {
14 type_ => || ffi::gst_tag_setter_get_type(),
15 }
16}
17
18impl TagSetter {
19 pub const NONE: Option<&'static TagSetter> = None;
20}
21
22unsafe impl Send for TagSetter {}
23unsafe impl Sync for TagSetter {}
24
25pub trait TagSetterExt: IsA<TagSetter> + 'static {
26 #[doc(alias = "gst_tag_setter_get_tag_list")]
42 #[doc(alias = "get_tag_list")]
43 fn tag_list(&self) -> Option<TagList> {
44 unsafe {
45 from_glib_none(ffi::gst_tag_setter_get_tag_list(
46 self.as_ref().to_glib_none().0,
47 ))
48 }
49 }
50
51 #[doc(alias = "gst_tag_setter_get_tag_merge_mode")]
52 #[doc(alias = "get_tag_merge_mode")]
53 fn tag_merge_mode(&self) -> TagMergeMode {
54 unsafe {
55 from_glib(ffi::gst_tag_setter_get_tag_merge_mode(
56 self.as_ref().to_glib_none().0,
57 ))
58 }
59 }
60
61 #[doc(alias = "gst_tag_setter_merge_tags")]
62 fn merge_tags(&self, list: &TagList, mode: TagMergeMode) {
63 unsafe {
64 ffi::gst_tag_setter_merge_tags(
65 self.as_ref().to_glib_none().0,
66 list.to_glib_none().0,
67 mode.into_glib(),
68 );
69 }
70 }
71
72 #[doc(alias = "gst_tag_setter_reset_tags")]
73 fn reset_tags(&self) {
74 unsafe {
75 ffi::gst_tag_setter_reset_tags(self.as_ref().to_glib_none().0);
76 }
77 }
78
79 #[doc(alias = "gst_tag_setter_set_tag_merge_mode")]
80 fn set_tag_merge_mode(&self, mode: TagMergeMode) {
81 unsafe {
82 ffi::gst_tag_setter_set_tag_merge_mode(
83 self.as_ref().to_glib_none().0,
84 mode.into_glib(),
85 );
86 }
87 }
88}
89
90impl<O: IsA<TagSetter>> TagSetterExt for O {}