libspa_sys/
type_info.rs

1use super::*;
2
3extern "C" {
4    #[link_name = "libspa_rs_types"]
5    pub static spa_types: *const spa_type_info;
6    #[link_name = "libspa_rs_type_direction"]
7    pub static spa_type_direction: *const spa_type_info;
8    #[link_name = "libspa_rs_type_choice"]
9    pub static spa_type_choice: *const spa_type_info;
10    #[link_name = "libspa_rs_type_device_event_id"]
11    pub static spa_type_device_event_id: *const spa_type_info;
12    #[link_name = "libspa_rs_type_device_event"]
13    pub static spa_type_device_event: *const spa_type_info;
14    #[link_name = "libspa_rs_type_io"]
15    pub static spa_type_io: *const spa_type_info;
16    #[link_name = "libspa_rs_type_node_event_id"]
17    pub static spa_type_node_event_id: *const spa_type_info;
18    #[link_name = "libspa_rs_type_node_event"]
19    pub static spa_type_node_event: *const spa_type_info;
20    #[link_name = "libspa_rs_type_node_command_id"]
21    pub static spa_type_node_command_id: *const spa_type_info;
22    #[link_name = "libspa_rs_type_node_command"]
23    pub static spa_type_node_command: *const spa_type_info;
24    #[link_name = "libspa_rs_type_data_type"]
25    pub static spa_type_data_type: *const spa_type_info;
26    #[link_name = "libspa_rs_type_meta_type"]
27    pub static spa_type_meta_type: *const spa_type_info;
28    #[link_name = "libspa_rs_type_control"]
29    pub static spa_type_control: *const spa_type_info;
30    #[link_name = "libspa_rs_type_param"]
31    pub static spa_type_param: *const spa_type_info;
32    #[link_name = "libspa_rs_type_prop_float_array"]
33    pub static spa_type_prop_float_array: *const spa_type_info;
34    #[link_name = "libspa_rs_type_prop_channel_map"]
35    pub static spa_type_prop_channel_map: *const spa_type_info;
36    #[link_name = "libspa_rs_type_prop_iec958_codec"]
37    pub static spa_type_prop_iec958_codec: *const spa_type_info;
38    #[link_name = "libspa_rs_type_param_bitorder"]
39    pub static spa_type_param_bitorder: *const spa_type_info;
40    #[link_name = "libspa_rs_type_props"]
41    pub static spa_type_props: *const spa_type_info;
42    #[link_name = "libspa_rs_type_prop_info"]
43    pub static spa_type_prop_info: *const spa_type_info;
44    #[link_name = "libspa_rs_type_param_meta"]
45    pub static spa_type_param_meta: *const spa_type_info;
46    #[link_name = "libspa_rs_type_param_io"]
47    pub static spa_type_param_io: *const spa_type_info;
48    #[link_name = "libspa_rs_type_media_type"]
49    pub static spa_type_media_type: *const spa_type_info;
50    #[link_name = "libspa_rs_type_media_subtype"]
51    pub static spa_type_media_subtype: *const spa_type_info;
52    #[link_name = "libspa_rs_type_format"]
53    pub static spa_type_format: *const spa_type_info;
54    #[link_name = "libspa_rs_type_param_buffers"]
55    pub static spa_type_param_buffers: *const spa_type_info;
56    #[link_name = "libspa_rs_type_param_availability"]
57    pub static spa_type_param_availability: *const spa_type_info;
58    #[link_name = "libspa_rs_type_param_profile"]
59    pub static spa_type_param_profile: *const spa_type_info;
60    #[link_name = "libspa_rs_type_param_port_config_mode"]
61    pub static spa_type_param_port_config_mode: *const spa_type_info;
62    #[link_name = "libspa_rs_type_param_port_config"]
63    pub static spa_type_param_port_config: *const spa_type_info;
64    #[link_name = "libspa_rs_type_param_route"]
65    pub static spa_type_param_route: *const spa_type_info;
66    #[link_name = "libspa_rs_type_profiler"]
67    pub static spa_type_profiler: *const spa_type_info;
68    #[link_name = "libspa_rs_type_param_latency"]
69    pub static spa_type_param_latency: *const spa_type_info;
70    #[link_name = "libspa_rs_type_param_process_latency"]
71    pub static spa_type_param_process_latency: *const spa_type_info;
72    #[link_name = "libspa_rs_type_audio_format"]
73    pub static spa_type_audio_format: *const spa_type_info;
74    #[link_name = "libspa_rs_type_audio_flags"]
75    pub static spa_type_audio_flags: *const spa_type_info;
76    #[link_name = "libspa_rs_type_audio_channel"]
77    pub static spa_type_audio_channel: *const spa_type_info;
78    #[link_name = "libspa_rs_type_audio_iec958_codec"]
79    pub static spa_type_audio_iec958_codec: *const spa_type_info;
80    #[link_name = "libspa_rs_type_bluetooth_audio_codec"]
81    pub static spa_type_bluetooth_audio_codec: *const spa_type_info;
82    #[link_name = "libspa_rs_type_video_format"]
83    pub static spa_type_video_format: *const spa_type_info;
84    #[cfg(feature = "v0_3_65")]
85    #[link_name = "libspa_rs_type_video_flags"]
86    pub static spa_type_video_flags: *const spa_type_info;
87    #[cfg(feature = "v0_3_65")]
88    #[link_name = "libspa_rs_type_video_interlace_mode"]
89    pub static spa_type_video_interlace_mode: *const spa_type_info;
90}
91
92#[cfg(test)]
93mod test {
94    use crate::{spa_type_media_type, SPA_MEDIA_TYPE_audio};
95
96    use std::ffi;
97
98    #[test]
99    fn test_libspa_rs_debug_type_find() {
100        unsafe {
101            let type_info = super::spa_debug_type_find(spa_type_media_type, SPA_MEDIA_TYPE_audio);
102            assert_eq!(
103                ffi::CStr::from_ptr((*type_info).name),
104                c"Spa:Enum:MediaType:audio"
105            );
106        }
107    }
108
109    #[test]
110    fn test_libspa_rs_debug_type_find_name() {
111        unsafe {
112            let name = super::spa_debug_type_find_name(spa_type_media_type, SPA_MEDIA_TYPE_audio);
113            assert_eq!(ffi::CStr::from_ptr(name), c"Spa:Enum:MediaType:audio");
114        }
115    }
116
117    #[test]
118    fn test_libspa_rs_debug_type_find_short_name() {
119        unsafe {
120            let name =
121                super::spa_debug_type_find_short_name(spa_type_media_type, SPA_MEDIA_TYPE_audio);
122            assert_eq!(ffi::CStr::from_ptr(name), c"audio");
123        }
124    }
125}