PipeWire  1.2.5
type-info.h
Go to the documentation of this file.
1 /* Simple Plugin API */
2 /* SPDX-FileCopyrightText: Copyright © 2018 Wim Taymans */
3 /* SPDX-License-Identifier: MIT */
4 
5 #ifndef SPA_TYPE_INFO_H
6 #define SPA_TYPE_INFO_H
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 #include <spa/utils/defs.h>
13 
19 #ifndef SPA_TYPE_ROOT
20 #define SPA_TYPE_ROOT spa_types
21 #endif
22 
23 static inline bool spa_type_is_a(const char *type, const char *parent)
24 {
25  return type != NULL && parent != NULL && strncmp(type, parent, strlen(parent)) == 0;
26 }
27 
28 #include <spa/utils/type.h>
30 
31 #include <spa/monitor/type-info.h>
32 #include <spa/node/type-info.h>
33 #include <spa/param/type-info.h>
34 #include <spa/control/type-info.h>
35 
36 static const struct spa_type_info spa_types[] = {
37  /* Basic types */
59 
64 
68 
72 
87 
88  { 0, 0, NULL, NULL }
89 };
90 
95 #ifdef __cplusplus
96 } /* extern "C" */
97 #endif
98 
99 #endif /* SPA_TYPE_INFO_H */
SPA_TYPE_OBJECT_ParamLatency
@ SPA_TYPE_OBJECT_ParamLatency
Definition: type.h:84
SPA_TYPE_INFO_PropInfo
#define SPA_TYPE_INFO_PropInfo
Enum Property info.
Definition: props-types.h:89
spa_type_format
static const struct spa_type_info spa_type_format[]
Definition: format-types.h:129
SPA_TYPE_Pointer
@ SPA_TYPE_Pointer
Definition: type.h:47
SPA_TYPE_OBJECT_ParamTag
@ SPA_TYPE_OBJECT_ParamTag
Definition: type.h:86
SPA_TYPE_INFO_PARAM_Meta
#define SPA_TYPE_INFO_PARAM_Meta
Definition: buffers-types.h:28
SPA_TYPE_INFO_POD_BASE
#define SPA_TYPE_INFO_POD_BASE
Definition: type.h:111
spa_type_param_buffers
static const struct spa_type_info spa_type_param_buffers[]
Definition: buffers-types.h:64
SPA_TYPE_Rectangle
@ SPA_TYPE_Rectangle
Definition: type.h:40
spa_type_info::type
uint32_t type
Definition: type.h:144
spa_type_prop_info
static const struct spa_type_info spa_type_prop_info[]
Definition: props-types.h:93
type-info.h
spa/node/type-info.h
spa_type_param_io
static const struct spa_type_info spa_type_param_io[]
Definition: buffers-types.h:47
spa_type_param_latency
static const struct spa_type_info spa_type_param_latency[]
Definition: latency-types.h:31
spa_type_info
Definition: type.h:143
spa_type_info::parent
uint32_t parent
Definition: type.h:145
spa_type_device_event
static const struct spa_type_info spa_type_device_event[]
Definition: type-info.h:41
SPA_TYPE_EVENT_Node
@ SPA_TYPE_EVENT_Node
Definition: type.h:63
SPA_TYPE_Sequence
@ SPA_TYPE_Sequence
Definition: type.h:46
SPA_TYPE_Bitmap
@ SPA_TYPE_Bitmap
Definition: type.h:42
SPA_TYPE_OBJECT_ParamIO
@ SPA_TYPE_OBJECT_ParamIO
Definition: type.h:79
SPA_TYPE_Fraction
@ SPA_TYPE_Fraction
Definition: type.h:41
SPA_TYPE_INFO_PARAM_ProcessLatency
#define SPA_TYPE_INFO_PARAM_ProcessLatency
Definition: latency-types.h:44
SPA_TYPE_COMMAND_Node
@ SPA_TYPE_COMMAND_Node
Definition: type.h:69
SPA_TYPE_Bytes
@ SPA_TYPE_Bytes
Definition: type.h:39
SPA_TYPE_Bool
@ SPA_TYPE_Bool
Definition: type.h:32
spa_type_param_tag
static const struct spa_type_info spa_type_param_tag[]
Definition: tag-types.h:31
spa_type_param_process_latency
static const struct spa_type_info spa_type_param_process_latency[]
Definition: latency-types.h:48
SPA_TYPE_INFO_PARAM_Latency
#define SPA_TYPE_INFO_PARAM_Latency
Definition: latency-types.h:27
SPA_TYPE_INFO_PARAM_Buffers
#define SPA_TYPE_INFO_PARAM_Buffers
Definition: buffers-types.h:55
SPA_TYPE_POINTER_Buffer
@ SPA_TYPE_POINTER_Buffer
Definition: type.h:55
SPA_TYPE_INFO_Command
#define SPA_TYPE_INFO_Command
Definition: type.h:139
SPA_TYPE_Float
@ SPA_TYPE_Float
Definition: type.h:36
spa_type_param_meta
static const struct spa_type_info spa_type_param_meta[]
Definition: buffers-types.h:32
SPA_TYPE_String
@ SPA_TYPE_String
Definition: type.h:38
SPA_TYPE_POINTER_Dict
@ SPA_TYPE_POINTER_Dict
Definition: type.h:57
SPA_TYPE_INFO_Format
#define SPA_TYPE_INFO_Format
Definition: format-types.h:29
spa_types
static const struct spa_type_info spa_types[]
Definition: type-info.h:42
SPA_TYPE_Array
@ SPA_TYPE_Array
Definition: type.h:43
type-info.h
spa/monitor/type-info.h
spa_type_node_command
static const struct spa_type_info spa_type_node_command[]
Definition: type-info.h:86
spa_type_profiler
static const struct spa_type_info spa_type_profiler[]
Definition: profiler-types.h:30
SPA_TYPE_INFO_PARAM_Tag
#define SPA_TYPE_INFO_PARAM_Tag
Definition: tag-types.h:27
SPA_TYPE_OBJECT_ParamProcessLatency
@ SPA_TYPE_OBJECT_ParamProcessLatency
Definition: type.h:85
SPA_TYPE_OBJECT_ParamRoute
@ SPA_TYPE_OBJECT_ParamRoute
Definition: type.h:82
SPA_TYPE_INFO_BASE
#define SPA_TYPE_INFO_BASE
Definition: type.h:96
SPA_TYPE_INFO_Event
#define SPA_TYPE_INFO_Event
Definition: type.h:134
type-info.h
spa/control/type-info.h
SPA_TYPE_INFO_Struct
#define SPA_TYPE_INFO_Struct
Definition: type.h:114
SPA_TYPE_INFO_POINTER_BASE
#define SPA_TYPE_INFO_POINTER_BASE
Definition: type.h:126
SPA_TYPE_OBJECT_Profiler
@ SPA_TYPE_OBJECT_Profiler
Definition: type.h:83
SPA_TYPE_INFO_PARAM_IO
#define SPA_TYPE_INFO_PARAM_IO
Base for parameters that describe IO areas to exchange data, control and properties with a node.
Definition: buffers-types.h:43
SPA_TYPE_OBJECT_ParamBuffers
@ SPA_TYPE_OBJECT_ParamBuffers
Definition: type.h:77
SPA_TYPE_Pod
@ SPA_TYPE_Pod
Definition: type.h:50
SPA_TYPE_Id
@ SPA_TYPE_Id
Definition: type.h:33
SPA_TYPE_Double
@ SPA_TYPE_Double
Definition: type.h:37
SPA_TYPE_Int
@ SPA_TYPE_Int
Definition: type.h:34
SPA_TYPE_OBJECT_Props
@ SPA_TYPE_OBJECT_Props
Definition: type.h:75
SPA_TYPE_OBJECT_Format
@ SPA_TYPE_OBJECT_Format
Definition: type.h:76
SPA_TYPE_INFO_Profiler
#define SPA_TYPE_INFO_Profiler
Definition: profiler-types.h:26
SPA_TYPE_INFO_Props
#define SPA_TYPE_INFO_Props
Props Param.
Definition: props-types.h:28
SPA_TYPE_INFO_Pod
#define SPA_TYPE_INFO_Pod
Definition: type.h:109
SPA_TYPE_OBJECT_ParamMeta
@ SPA_TYPE_OBJECT_ParamMeta
Definition: type.h:78
SPA_TYPE_Object
@ SPA_TYPE_Object
Definition: type.h:45
SPA_TYPE_INFO_PARAM_Route
#define SPA_TYPE_INFO_PARAM_Route
Definition: route-types.h:28
spa_type_is_a
static bool spa_type_is_a(const char *type, const char *parent)
Definition: type-info.h:29
SPA_TYPE_None
@ SPA_TYPE_None
Definition: type.h:31
SPA_TYPE_COMMAND_Device
@ SPA_TYPE_COMMAND_Device
Definition: type.h:68
enum-types.h
spa/utils/enum-types.h
spa_type_node_event
static const struct spa_type_info spa_type_node_event[]
Definition: type-info.h:61
SPA_TYPE_POINTER_START
@ SPA_TYPE_POINTER_START
Definition: type.h:54
SPA_TYPE_INFO_COMMAND_BASE
#define SPA_TYPE_INFO_COMMAND_BASE
Definition: type.h:141
SPA_TYPE_EVENT_Device
@ SPA_TYPE_EVENT_Device
Definition: type.h:62
SPA_TYPE_INFO_PARAM_Profile
#define SPA_TYPE_INFO_PARAM_Profile
Definition: profile-types.h:27
type.h
spa/utils/type.h
defs.h
spa/utils/defs.h
spa_type_param_route
static const struct spa_type_info spa_type_param_route[]
Definition: route-types.h:32
SPA_TYPE_INFO_EVENT_BASE
#define SPA_TYPE_INFO_EVENT_BASE
Definition: type.h:136
spa_type_props
static const struct spa_type_info spa_type_props[]
Definition: props-types.h:32
SPA_TYPE_OBJECT_PropInfo
@ SPA_TYPE_OBJECT_PropInfo
Definition: type.h:74
SPA_TYPE_START
@ SPA_TYPE_START
Definition: type.h:30
SPA_TYPE_OBJECT_ParamProfile
@ SPA_TYPE_OBJECT_ParamProfile
Definition: type.h:80
spa_type_param_profile
static const struct spa_type_info spa_type_param_profile[]
Definition: profile-types.h:31
SPA_TYPE_Choice
@ SPA_TYPE_Choice
Definition: type.h:49
SPA_TYPE_INFO_Pointer
#define SPA_TYPE_INFO_Pointer
Definition: type.h:124
SPA_TYPE_Fd
@ SPA_TYPE_Fd
Definition: type.h:48
SPA_TYPE_POINTER_Meta
@ SPA_TYPE_POINTER_Meta
Definition: type.h:56
SPA_TYPE_EVENT_START
@ SPA_TYPE_EVENT_START
Definition: type.h:61
SPA_TYPE_Long
@ SPA_TYPE_Long
Definition: type.h:35
SPA_TYPE_INFO_Object
#define SPA_TYPE_INFO_Object
Definition: type.h:119
SPA_TYPE_OBJECT_ParamPortConfig
@ SPA_TYPE_OBJECT_ParamPortConfig
Definition: type.h:81
SPA_TYPE_INFO_PARAM_PortConfig
#define SPA_TYPE_INFO_PARAM_PortConfig
Definition: port-config-types.h:40
SPA_TYPE_Struct
@ SPA_TYPE_Struct
Definition: type.h:44
SPA_TYPE_OBJECT_START
@ SPA_TYPE_OBJECT_START
Definition: type.h:73
spa_type_param_port_config
static const struct spa_type_info spa_type_param_port_config[]
Definition: port-config-types.h:44
SPA_TYPE_COMMAND_START
@ SPA_TYPE_COMMAND_START
Definition: type.h:67