From 595daf86c6ddca28d676bb2eeab4ac2d7a3d472a Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 8 Oct 2018 11:43:18 +0200 Subject: [PATCH] spa: add some macros to events and object types --- spa/include/spa/node/event.h | 4 ++++ spa/include/spa/pod/pod.h | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/spa/include/spa/node/event.h b/spa/include/spa/node/event.h index 51f773a7f..32a7f8941 100644 --- a/spa/include/spa/node/event.h +++ b/spa/include/spa/node/event.h @@ -38,6 +38,10 @@ enum spa_node_event { #define SPA_NODE_EVENT_ID(ev) SPA_EVENT_ID(ev, SPA_TYPE_EVENT_Node) +#define SPA_NODE_EVENT_INIT(id) (struct spa_event) \ + { { sizeof(struct spa_event_body), SPA_TYPE_Object }, \ + { { SPA_TYPE_EVENT_Node, id } } } \ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/spa/include/spa/pod/pod.h b/spa/include/spa/pod/pod.h index 4f50eab92..644a22dab 100644 --- a/spa/include/spa/pod/pod.h +++ b/spa/include/spa/pod/pod.h @@ -157,6 +157,12 @@ struct spa_pod_struct { /* one or more spa_pod follow */ }; +#define SPA_POD_OBJECT_TYPE(obj) (((struct spa_pod_object*)(obj))->body.type) +#define SPA_POD_OBJECT_ID(obj) (((struct spa_pod_object*)(obj))->body.id) + +#define SPA_POD_IS_OBJECT_TYPE(obj,tp) (SPA_POD_TYPE(obj) == SPA_TYPE_Object && \ + SPA_POD_OBJECT_TYPE(obj) == (tp)) + struct spa_pod_object_body { uint32_t type; /**< one of enum spa_type */ uint32_t id; /**< id of the object, depends on the object type */