mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-20 06:59:58 -05:00
types: work on types
Move static pod types to type system work on type info for types Move the event and command ids to an enum to make it easier to extend later.
This commit is contained in:
parent
fca3e1d85d
commit
805e3bb6c1
82 changed files with 812 additions and 924 deletions
|
|
@ -114,7 +114,7 @@ struct spa_fraction {
|
|||
|
||||
#define SPA_TIME_INVALID ((int64_t)INT64_MIN)
|
||||
#define SPA_IDX_INVALID ((unsigned int)-1)
|
||||
#define SPA_ID_INVALID ((uint32_t)0xffffffff)
|
||||
//#define SPA_ID_INVALID ((uint32_t)0xffffffff)
|
||||
|
||||
#define SPA_NSEC_PER_SEC (1000000000ll)
|
||||
#define SPA_NSEC_PER_MSEC (1000000ll)
|
||||
|
|
|
|||
|
|
@ -26,22 +26,6 @@ extern "C" {
|
|||
|
||||
#include <spa/utils/defs.h>
|
||||
|
||||
#define SPA_TYPE_BASE "Spa:"
|
||||
|
||||
#define SPA_TYPE__Enum SPA_TYPE_BASE "Enum"
|
||||
#define SPA_TYPE_ENUM_BASE SPA_TYPE__Enum ":"
|
||||
|
||||
#define SPA_TYPE__Flags SPA_TYPE_BASE "Flags"
|
||||
#define SPA_TYPE_FLAGS_BASE SPA_TYPE__Flags ":"
|
||||
|
||||
#define SPA_TYPE__Pointer SPA_TYPE_BASE "Pointer"
|
||||
#define SPA_TYPE_POINTER_BASE SPA_TYPE__Pointer ":"
|
||||
|
||||
#define SPA_TYPE__Interface SPA_TYPE_BASE "Interface"
|
||||
#define SPA_TYPE_INTERFACE_BASE SPA_TYPE__Interface ":"
|
||||
|
||||
#define SPA_TYPE__Object SPA_TYPE_BASE "Object"
|
||||
#define SPA_TYPE_OBJECT_BASE SPA_TYPE__Object ":"
|
||||
|
||||
static inline bool spa_type_is_a(const char *type, const char *parent)
|
||||
{
|
||||
|
|
@ -55,6 +39,82 @@ struct spa_type_info {
|
|||
const struct spa_type_info *values;
|
||||
};
|
||||
|
||||
#define SPA_TYPE_BASE "Spa:"
|
||||
|
||||
#define SPA_TYPE__Flags SPA_TYPE_BASE "Flags"
|
||||
#define SPA_TYPE_FLAGS_BASE SPA_TYPE__Flags ":"
|
||||
|
||||
#define SPA_TYPE__Enum SPA_TYPE_BASE "Enum"
|
||||
#define SPA_TYPE_ENUM_BASE SPA_TYPE__Enum ":"
|
||||
|
||||
#define SPA_TYPE__Pod SPA_TYPE_BASE "Pod"
|
||||
#define SPA_TYPE_POD_BASE SPA_TYPE__Pod ":"
|
||||
|
||||
#define SPA_TYPE__Struct SPA_TYPE_POD_BASE "Struct"
|
||||
#define SPA_TYPE_STRUCT_BASE SPA_TYPE__Struct ":"
|
||||
|
||||
#define SPA_TYPE__Object SPA_TYPE_POD_BASE "Object"
|
||||
#define SPA_TYPE_OBJECT_BASE SPA_TYPE__Object ":"
|
||||
|
||||
#define SPA_TYPE__Pointer SPA_TYPE_BASE "Pointer"
|
||||
#define SPA_TYPE_POINTER_BASE SPA_TYPE__Pointer ":"
|
||||
|
||||
#define SPA_TYPE__Interface SPA_TYPE_POINTER_BASE "Interface"
|
||||
#define SPA_TYPE_INTERFACE_BASE SPA_TYPE__Interface ":"
|
||||
|
||||
#define SPA_TYPE__Event SPA_TYPE_OBJECT_BASE "Event"
|
||||
#define SPA_TYPE_EVENT_BASE SPA_TYPE__Event ":"
|
||||
|
||||
#include <spa/monitor/type-info.h>
|
||||
#include <spa/node/type-info.h>
|
||||
|
||||
static const struct spa_type_info spa_types[] = {
|
||||
{ SPA_ID_INVALID, "*invalid*", SPA_ID_INVALID, },
|
||||
|
||||
/* Basic types */
|
||||
{ SPA_ID_BASE, SPA_TYPE_BASE, SPA_ID_BASE, },
|
||||
{ SPA_ID_None, SPA_TYPE_BASE "None", SPA_ID_None, },
|
||||
{ SPA_ID_Bool, SPA_TYPE_BASE "Bool", SPA_ID_Bool, },
|
||||
{ SPA_ID_Enum, SPA_TYPE__Enum, SPA_ID_Int, },
|
||||
{ SPA_ID_Int, SPA_TYPE_BASE "Int", SPA_ID_Int, },
|
||||
{ SPA_ID_Long, SPA_TYPE_BASE "Long", SPA_ID_Long, },
|
||||
{ SPA_ID_Float, SPA_TYPE_BASE "Float", SPA_ID_Float, },
|
||||
{ SPA_ID_Double, SPA_TYPE_BASE "Double", SPA_ID_Double, },
|
||||
{ SPA_ID_String, SPA_TYPE_BASE "String", SPA_ID_String, },
|
||||
{ SPA_ID_Bytes, SPA_TYPE_BASE "Bytes", SPA_ID_Bytes, },
|
||||
{ SPA_ID_Rectangle, SPA_TYPE_BASE "Rectangle", SPA_ID_Rectangle, },
|
||||
{ SPA_ID_Fraction, SPA_TYPE_BASE "Fraction", SPA_ID_Fraction, },
|
||||
{ SPA_ID_Bitmap, SPA_TYPE_BASE "Bitmap", SPA_ID_Bitmap, },
|
||||
{ SPA_ID_Array, SPA_TYPE_BASE "Array", SPA_ID_Array, },
|
||||
{ SPA_ID_Pod, SPA_TYPE__Pod, SPA_ID_Pod, },
|
||||
{ SPA_ID_Struct, SPA_TYPE__Struct, SPA_ID_Pod, },
|
||||
{ SPA_ID_Object, SPA_TYPE__Object, SPA_ID_Pod, },
|
||||
{ SPA_ID_Sequence, SPA_TYPE_POD_BASE "Sequence", SPA_ID_Pod, },
|
||||
{ SPA_ID_Pointer, SPA_TYPE__Pointer, SPA_ID_Pointer, },
|
||||
{ SPA_ID_Fd, SPA_TYPE_BASE "Fd", SPA_ID_Fd, },
|
||||
{ SPA_ID_Prop, SPA_TYPE_POD_BASE "Prop", SPA_ID_Pod, },
|
||||
|
||||
{ SPA_ID_INTERFACE_BASE, SPA_TYPE__Interface, SPA_ID_Pointer, },
|
||||
{ SPA_ID_INTERFACE_Handle, SPA_TYPE_INTERFACE_BASE "Handle", SPA_ID_INTERFACE_BASE, },
|
||||
{ SPA_ID_INTERFACE_HandleFactory, SPA_TYPE_INTERFACE_BASE "HandleFactory", SPA_ID_INTERFACE_BASE, },
|
||||
{ SPA_ID_INTERFACE_Log, SPA_TYPE_INTERFACE_BASE "Log", SPA_ID_INTERFACE_BASE, },
|
||||
{ SPA_ID_INTERFACE_Loop, SPA_TYPE_INTERFACE_BASE "Loop", SPA_ID_INTERFACE_BASE, },
|
||||
{ SPA_ID_INTERFACE_LoopControl, SPA_TYPE_INTERFACE_BASE "LoopControl", SPA_ID_INTERFACE_BASE, },
|
||||
{ SPA_ID_INTERFACE_LoopUtils, SPA_TYPE_INTERFACE_BASE "LoopUtils", SPA_ID_INTERFACE_BASE, },
|
||||
{ SPA_ID_INTERFACE_DataLoop, SPA_TYPE_INTERFACE_BASE "DataLoop", SPA_ID_INTERFACE_BASE, },
|
||||
{ SPA_ID_INTERFACE_MainLoop, SPA_TYPE_INTERFACE_BASE "MainLoop", SPA_ID_INTERFACE_BASE, },
|
||||
{ SPA_ID_INTERFACE_DBus, SPA_TYPE_INTERFACE_BASE "DBus", SPA_ID_INTERFACE_BASE, },
|
||||
{ SPA_ID_INTERFACE_Monitor, SPA_TYPE_INTERFACE_BASE "Monitor", SPA_ID_INTERFACE_BASE, },
|
||||
{ SPA_ID_INTERFACE_Node, SPA_TYPE_INTERFACE_BASE "Node", SPA_ID_INTERFACE_BASE, },
|
||||
|
||||
{ SPA_ID_EVENT_BASE, SPA_TYPE__Event, SPA_ID_Object, },
|
||||
{ SPA_ID_EVENT_Monitor, SPA_TYPE_EVENT_BASE "Monitor", SPA_ID_EVENT_BASE, },
|
||||
{ SPA_ID_EVENT_Node, SPA_TYPE_EVENT_BASE "Node", SPA_ID_EVENT_BASE, },
|
||||
|
||||
|
||||
{ 0, NULL, }
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -27,8 +27,33 @@ extern "C" {
|
|||
#include <spa/utils/defs.h>
|
||||
|
||||
enum {
|
||||
SPA_ID_UNASSIGNED = 0,
|
||||
SPA_ID_INVALID = 0xffffffff,
|
||||
|
||||
/* Basic types */
|
||||
SPA_ID_BASE = 0x00000,
|
||||
SPA_ID_None,
|
||||
SPA_ID_Bool,
|
||||
SPA_ID_Enum,
|
||||
SPA_ID_Int,
|
||||
SPA_ID_Long,
|
||||
SPA_ID_Float,
|
||||
SPA_ID_Double,
|
||||
SPA_ID_String,
|
||||
SPA_ID_Bytes,
|
||||
SPA_ID_Rectangle,
|
||||
SPA_ID_Fraction,
|
||||
SPA_ID_Bitmap,
|
||||
SPA_ID_Array,
|
||||
SPA_ID_Struct,
|
||||
SPA_ID_Object,
|
||||
SPA_ID_Sequence,
|
||||
SPA_ID_Pointer,
|
||||
SPA_ID_Fd,
|
||||
SPA_ID_Prop,
|
||||
SPA_ID_Pod,
|
||||
|
||||
/* Interfaces */
|
||||
SPA_ID_INTERFACE_BASE = 0x10000,
|
||||
SPA_ID_INTERFACE_Handle,
|
||||
SPA_ID_INTERFACE_HandleFactory,
|
||||
SPA_ID_INTERFACE_Log,
|
||||
|
|
@ -42,27 +67,16 @@ enum {
|
|||
SPA_ID_INTERFACE_Node,
|
||||
|
||||
/* Events */
|
||||
SPA_ID_EVENT_BASE = 0x10000,
|
||||
SPA_ID_EVENT_MONITOR_Added,
|
||||
SPA_ID_EVENT_MONITOR_Removed,
|
||||
SPA_ID_EVENT_MONITOR_Changed,
|
||||
SPA_ID_EVENT_NODE_Error,
|
||||
SPA_ID_EVENT_NODE_Buffering,
|
||||
SPA_ID_EVENT_NODE_RequestRefresh,
|
||||
SPA_ID_EVENT_BASE = 0x20000,
|
||||
SPA_ID_EVENT_Monitor,
|
||||
SPA_ID_EVENT_Node,
|
||||
|
||||
/* Commands */
|
||||
SPA_ID_COMMAND_BASE = 0x20000,
|
||||
SPA_ID_COMMAND_NODE_Suspend,
|
||||
SPA_ID_COMMAND_NODE_Pause,
|
||||
SPA_ID_COMMAND_NODE_Start,
|
||||
SPA_ID_COMMAND_NODE_Enable,
|
||||
SPA_ID_COMMAND_NODE_Disable,
|
||||
SPA_ID_COMMAND_NODE_Flush,
|
||||
SPA_ID_COMMAND_NODE_Drain,
|
||||
SPA_ID_COMMAND_NODE_Marker,
|
||||
SPA_ID_COMMAND_BASE = 0x30000,
|
||||
SPA_ID_COMMAND_Node,
|
||||
|
||||
/* Objects */
|
||||
SPA_ID_OBJECT_BASE = 0x30000,
|
||||
SPA_ID_OBJECT_BASE = 0x40000,
|
||||
SPA_ID_OBJECT_MonitorItem,
|
||||
|
||||
SPA_ID_OBJECT_ParamList,
|
||||
|
|
@ -92,6 +106,12 @@ enum {
|
|||
SPA_ID_PARAM_Meta, /**< allowed metadata for buffers */
|
||||
SPA_ID_PARAM_IO, /**< configurable IO areas */
|
||||
|
||||
/* Pointers */
|
||||
SPA_ID_POINTER_BASE = 0x60000,
|
||||
SPA_ID_POINTER_Buffer,
|
||||
SPA_ID_POINTER_Meta,
|
||||
SPA_ID_POINTER_Dict,
|
||||
|
||||
/* vendor extensions */
|
||||
SPA_ID_VENDOR_PipeWire = 0x01000000,
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue