props: make properties dynamic keys and values

This commit is contained in:
Wim Taymans 2017-03-23 12:38:00 +01:00
parent 048a4b81a8
commit e28b5f91b8
15 changed files with 271 additions and 223 deletions

View file

@ -32,16 +32,31 @@ typedef SpaPODObject SpaProps;
#define SPA_PROPS_URI "http://spaplug.in/ns/props"
#define SPA_PROPS_PREFIX SPA_PROPS_URI "#"
#define SPA_PROPS__device SPA_PROPS_PREFIX "device"
#define SPA_PROPS__deviceName SPA_PROPS_PREFIX "deviceName"
#define SPA_PROPS__deviceFd SPA_PROPS_PREFIX "deviceFd"
#define SPA_PROPS__card SPA_PROPS_PREFIX "card"
#define SPA_PROPS__cardName SPA_PROPS_PREFIX "cardName"
#define SPA_PROPS__periods SPA_PROPS_PREFIX "periods"
#define SPA_PROPS__periodSize SPA_PROPS_PREFIX "periodSize"
#define SPA_PROPS__periodEvent SPA_PROPS_PREFIX "periodEvent"
#define SPA_PROPS__live SPA_PROPS_PREFIX "live"
#define SPA_PROPS__waveType SPA_PROPS_PREFIX "waveType"
#define SPA_PROPS__frequency SPA_PROPS_PREFIX "frequency"
#define SPA_PROPS__volume SPA_PROPS_PREFIX "volume"
#define SPA_PROPS__mute SPA_PROPS_PREFIX "mute"
#define SPA_PROPS__patternType SPA_PROPS_PREFIX "patternType"
static inline uint32_t
spa_pod_builder_push_props (SpaPODBuilder *builder,
SpaPODFrame *frame)
SpaPODFrame *frame,
uint32_t props_type)
{
return spa_pod_builder_push_object (builder, frame, 0, 0);
return spa_pod_builder_push_object (builder, frame, 0, props_type);
}
#define spa_pod_builder_props(b,f,...) \
spa_pod_builder_object(b, f, 0, 0,__VA_ARGS__)
#define spa_pod_builder_props(b,f,props_type,...) \
spa_pod_builder_object(b, f, 0, props_type,__VA_ARGS__)
static inline uint32_t
spa_props_query (const SpaProps *props, uint32_t key, ...)