Skip to main content

gstreamer_tag/auto/
flags.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
6use crate::ffi;
7use glib::{bitflags::bitflags, prelude::*, translate::*};
8
9bitflags! {
10    /// See http://creativecommons.org/ns for more information.
11    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
12    #[doc(alias = "GstTagLicenseFlags")]
13    pub struct TagLicenseFlags: u32 {
14        /// making multiple copies
15        ///  is allowed
16        #[doc(alias = "GST_TAG_LICENSE_PERMITS_REPRODUCTION")]
17        const PERMITS_REPRODUCTION = ffi::GST_TAG_LICENSE_PERMITS_REPRODUCTION as _;
18        /// distribution, public display
19        ///  and public performance are allowed
20        #[doc(alias = "GST_TAG_LICENSE_PERMITS_DISTRIBUTION")]
21        const PERMITS_DISTRIBUTION = ffi::GST_TAG_LICENSE_PERMITS_DISTRIBUTION as _;
22        /// distribution of derivative
23        ///  works is allowed
24        #[doc(alias = "GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS")]
25        const PERMITS_DERIVATIVE_WORKS = ffi::GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS as _;
26        /// commercial derivatives are allowed,
27        ///  but only non-commercial distribution is allowed
28        #[doc(alias = "GST_TAG_LICENSE_PERMITS_SHARING")]
29        const PERMITS_SHARING = ffi::GST_TAG_LICENSE_PERMITS_SHARING as _;
30        /// copyright and license notices
31        ///  must be kept intact
32        #[doc(alias = "GST_TAG_LICENSE_REQUIRES_NOTICE")]
33        const REQUIRES_NOTICE = ffi::GST_TAG_LICENSE_REQUIRES_NOTICE as _;
34        /// credit must be given to
35        ///  copyright holder and/or author
36        #[doc(alias = "GST_TAG_LICENSE_REQUIRES_ATTRIBUTION")]
37        const REQUIRES_ATTRIBUTION = ffi::GST_TAG_LICENSE_REQUIRES_ATTRIBUTION as _;
38        /// derivative works must be
39        ///  licensed under the same terms or compatible terms as the original work
40        #[doc(alias = "GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE")]
41        const REQUIRES_SHARE_ALIKE = ffi::GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE as _;
42        /// source code (the preferred
43        ///  form for making modifications) must be provided when exercising some
44        ///  rights granted by the license
45        #[doc(alias = "GST_TAG_LICENSE_REQUIRES_SOURCE_CODE")]
46        const REQUIRES_SOURCE_CODE = ffi::GST_TAG_LICENSE_REQUIRES_SOURCE_CODE as _;
47        /// derivative and combined works
48        ///  must be licensed under specified terms, similar to those of the original
49        ///  work
50        #[doc(alias = "GST_TAG_LICENSE_REQUIRES_COPYLEFT")]
51        const REQUIRES_COPYLEFT = ffi::GST_TAG_LICENSE_REQUIRES_COPYLEFT as _;
52        /// derivative works must be
53        ///  licensed under specified terms, with at least the same conditions as
54        ///  the original work; combinations with the work may be licensed under
55        ///  different terms
56        #[doc(alias = "GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT")]
57        const REQUIRES_LESSER_COPYLEFT = ffi::GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT as _;
58        /// exercising rights for
59        ///  commercial purposes is prohibited
60        #[doc(alias = "GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE")]
61        const PROHIBITS_COMMERCIAL_USE = ffi::GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE as _;
62        /// use in a
63        ///  non-developing country is prohibited
64        #[doc(alias = "GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE")]
65        const PROHIBITS_HIGH_INCOME_NATION_USE = ffi::GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE as _;
66        /// this license was created
67        ///  by the Creative Commons project
68        #[doc(alias = "GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE")]
69        const CREATIVE_COMMONS_LICENSE = ffi::GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE as _;
70        /// this license was
71        ///  created by the Free Software Foundation (FSF)
72        #[doc(alias = "GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE")]
73        const FREE_SOFTWARE_FOUNDATION_LICENSE = ffi::GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE as _;
74    }
75}
76
77#[doc(hidden)]
78impl IntoGlib for TagLicenseFlags {
79    type GlibType = ffi::GstTagLicenseFlags;
80
81    #[inline]
82    fn into_glib(self) -> ffi::GstTagLicenseFlags {
83        self.bits()
84    }
85}
86
87#[doc(hidden)]
88impl FromGlib<ffi::GstTagLicenseFlags> for TagLicenseFlags {
89    #[inline]
90    unsafe fn from_glib(value: ffi::GstTagLicenseFlags) -> Self {
91        skip_assert_initialized!();
92        Self::from_bits_truncate(value)
93    }
94}
95
96impl StaticType for TagLicenseFlags {
97    #[inline]
98    #[doc(alias = "gst_tag_license_flags_get_type")]
99    fn static_type() -> glib::Type {
100        unsafe { from_glib(ffi::gst_tag_license_flags_get_type()) }
101    }
102}
103
104impl glib::HasParamSpec for TagLicenseFlags {
105    type ParamSpec = glib::ParamSpecFlags;
106    type SetValue = Self;
107    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
108
109    fn param_spec_builder() -> Self::BuilderFn {
110        Self::ParamSpec::builder
111    }
112}
113
114impl glib::value::ValueType for TagLicenseFlags {
115    type Type = Self;
116}
117
118unsafe impl<'a> glib::value::FromValue<'a> for TagLicenseFlags {
119    type Checker = glib::value::GenericValueTypeChecker<Self>;
120
121    #[inline]
122    unsafe fn from_value(value: &'a glib::Value) -> Self {
123        skip_assert_initialized!();
124        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
125    }
126}
127
128impl ToValue for TagLicenseFlags {
129    #[inline]
130    fn to_value(&self) -> glib::Value {
131        let mut value = glib::Value::for_value_type::<Self>();
132        unsafe {
133            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
134        }
135        value
136    }
137
138    #[inline]
139    fn value_type(&self) -> glib::Type {
140        Self::static_type()
141    }
142}
143
144impl From<TagLicenseFlags> for glib::Value {
145    #[inline]
146    fn from(v: TagLicenseFlags) -> Self {
147        skip_assert_initialized!();
148        ToValue::to_value(&v)
149    }
150}