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}