Skip to main content

gstreamer_vulkan/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    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
11    #[doc(alias = "GstVulkanDisplayType")]
12    pub struct VulkanDisplayType: u32 {
13        #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_NONE")]
14        const NONE = ffi::GST_VULKAN_DISPLAY_TYPE_NONE as _;
15        #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_XCB")]
16        const XCB = ffi::GST_VULKAN_DISPLAY_TYPE_XCB as _;
17        #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_WAYLAND")]
18        const WAYLAND = ffi::GST_VULKAN_DISPLAY_TYPE_WAYLAND as _;
19        #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_COCOA")]
20        const COCOA = ffi::GST_VULKAN_DISPLAY_TYPE_COCOA as _;
21        #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_IOS")]
22        const IOS = ffi::GST_VULKAN_DISPLAY_TYPE_IOS as _;
23        #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_WIN32")]
24        const WIN32 = ffi::GST_VULKAN_DISPLAY_TYPE_WIN32 as _;
25        #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_ANDROID")]
26        const ANDROID = ffi::GST_VULKAN_DISPLAY_TYPE_ANDROID as _;
27        #[doc(alias = "GST_VULKAN_DISPLAY_TYPE_ANY")]
28        const ANY = ffi::GST_VULKAN_DISPLAY_TYPE_ANY as _;
29    }
30}
31
32impl VulkanDisplayType {
33    #[doc(alias = "gst_vulkan_display_type_to_extension_string")]
34    pub fn to_extension_string(self) -> Option<glib::GString> {
35        assert_initialized_main_thread!();
36        unsafe {
37            from_glib_none(ffi::gst_vulkan_display_type_to_extension_string(
38                self.into_glib(),
39            ))
40        }
41    }
42}
43
44#[doc(hidden)]
45impl IntoGlib for VulkanDisplayType {
46    type GlibType = ffi::GstVulkanDisplayType;
47
48    #[inline]
49    fn into_glib(self) -> ffi::GstVulkanDisplayType {
50        self.bits()
51    }
52}
53
54#[doc(hidden)]
55impl FromGlib<ffi::GstVulkanDisplayType> for VulkanDisplayType {
56    #[inline]
57    unsafe fn from_glib(value: ffi::GstVulkanDisplayType) -> Self {
58        skip_assert_initialized!();
59        Self::from_bits_truncate(value)
60    }
61}
62
63impl StaticType for VulkanDisplayType {
64    #[inline]
65    #[doc(alias = "gst_vulkan_display_type_get_type")]
66    fn static_type() -> glib::Type {
67        unsafe { from_glib(ffi::gst_vulkan_display_type_get_type()) }
68    }
69}
70
71impl glib::HasParamSpec for VulkanDisplayType {
72    type ParamSpec = glib::ParamSpecFlags;
73    type SetValue = Self;
74    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
75
76    fn param_spec_builder() -> Self::BuilderFn {
77        Self::ParamSpec::builder
78    }
79}
80
81impl glib::value::ValueType for VulkanDisplayType {
82    type Type = Self;
83}
84
85unsafe impl<'a> glib::value::FromValue<'a> for VulkanDisplayType {
86    type Checker = glib::value::GenericValueTypeChecker<Self>;
87
88    #[inline]
89    unsafe fn from_value(value: &'a glib::Value) -> Self {
90        skip_assert_initialized!();
91        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
92    }
93}
94
95impl ToValue for VulkanDisplayType {
96    #[inline]
97    fn to_value(&self) -> glib::Value {
98        let mut value = glib::Value::for_value_type::<Self>();
99        unsafe {
100            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
101        }
102        value
103    }
104
105    #[inline]
106    fn value_type(&self) -> glib::Type {
107        Self::static_type()
108    }
109}
110
111impl From<VulkanDisplayType> for glib::Value {
112    #[inline]
113    fn from(v: VulkanDisplayType) -> Self {
114        skip_assert_initialized!();
115        ToValue::to_value(&v)
116    }
117}