mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-16 08:56:45 -05:00
pod: use {} as object delimited, like json
Use <> for sequence
This commit is contained in:
parent
ff6a244d8f
commit
2631db14a8
7 changed files with 24 additions and 24 deletions
|
|
@ -526,7 +526,7 @@ spa_pod_builder_addv(struct spa_pod_builder *builder,
|
||||||
char t = *format;
|
char t = *format;
|
||||||
next:
|
next:
|
||||||
switch (t) {
|
switch (t) {
|
||||||
case '<':
|
case '{':
|
||||||
{
|
{
|
||||||
uint32_t type = va_arg(args, uint32_t);
|
uint32_t type = va_arg(args, uint32_t);
|
||||||
uint32_t id = va_arg(args, uint32_t);
|
uint32_t id = va_arg(args, uint32_t);
|
||||||
|
|
@ -539,7 +539,7 @@ spa_pod_builder_addv(struct spa_pod_builder *builder,
|
||||||
case '(':
|
case '(':
|
||||||
spa_pod_builder_push_array(builder);
|
spa_pod_builder_push_array(builder);
|
||||||
break;
|
break;
|
||||||
case '{':
|
case '<':
|
||||||
{
|
{
|
||||||
uint32_t unit = va_arg(args, uint32_t);
|
uint32_t unit = va_arg(args, uint32_t);
|
||||||
spa_pod_builder_push_sequence(builder, unit);
|
spa_pod_builder_push_sequence(builder, unit);
|
||||||
|
|
@ -570,7 +570,7 @@ spa_pod_builder_addv(struct spa_pod_builder *builder,
|
||||||
|
|
||||||
spa_pod_builder_push_prop(builder, key, flags);
|
spa_pod_builder_push_prop(builder, key, flags);
|
||||||
|
|
||||||
if (t == '<' || t == '[')
|
if (t == '{' || t == '[' || t == '<')
|
||||||
goto next;
|
goto next;
|
||||||
|
|
||||||
n_values = -1;
|
n_values = -1;
|
||||||
|
|
@ -621,7 +621,7 @@ static inline void *spa_pod_builder_add(struct spa_pod_builder *builder, const c
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SPA_POD_OBJECT(type,id,...) \
|
#define SPA_POD_OBJECT(type,id,...) \
|
||||||
"<", type, id, ##__VA_ARGS__, ">"
|
"{", type, id, ##__VA_ARGS__, "}"
|
||||||
|
|
||||||
#define SPA_POD_STRUCT(...) \
|
#define SPA_POD_STRUCT(...) \
|
||||||
"[", ##__VA_ARGS__, "]"
|
"[", ##__VA_ARGS__, "]"
|
||||||
|
|
@ -630,7 +630,7 @@ static inline void *spa_pod_builder_add(struct spa_pod_builder *builder, const c
|
||||||
":", key, spec, value, ##__VA_ARGS__
|
":", key, spec, value, ##__VA_ARGS__
|
||||||
|
|
||||||
#define SPA_POD_SEQUENCE(unit,...) \
|
#define SPA_POD_SEQUENCE(unit,...) \
|
||||||
"{", unit, ##__VA_ARGS__, "}"
|
"<", unit, ##__VA_ARGS__, ">"
|
||||||
|
|
||||||
#define SPA_POD_CONTROL(offset,type,...) \
|
#define SPA_POD_CONTROL(offset,type,...) \
|
||||||
".", offset, type, ##__VA_ARGS__
|
".", offset, type, ##__VA_ARGS__
|
||||||
|
|
|
||||||
|
|
@ -208,7 +208,7 @@ static inline int spa_pod_parser_getv(struct spa_pod_parser *parser,
|
||||||
|
|
||||||
while (format) {
|
while (format) {
|
||||||
switch (*format) {
|
switch (*format) {
|
||||||
case '<':
|
case '{':
|
||||||
if (pod == NULL || SPA_POD_TYPE(pod) != SPA_TYPE_Object)
|
if (pod == NULL || SPA_POD_TYPE(pod) != SPA_TYPE_Object)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (++parser->depth >= SPA_POD_MAX_DEPTH)
|
if (++parser->depth >= SPA_POD_MAX_DEPTH)
|
||||||
|
|
@ -226,7 +226,7 @@ static inline int spa_pod_parser_getv(struct spa_pod_parser *parser,
|
||||||
it = &parser->iter[parser->depth];
|
it = &parser->iter[parser->depth];
|
||||||
spa_pod_iter_init(it, pod, SPA_POD_SIZE(pod), sizeof(struct spa_pod_struct));
|
spa_pod_iter_init(it, pod, SPA_POD_SIZE(pod), sizeof(struct spa_pod_struct));
|
||||||
goto read_pod;
|
goto read_pod;
|
||||||
case ']': case '>':
|
case ']': case '}':
|
||||||
if (current != NULL)
|
if (current != NULL)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (--parser->depth < 0)
|
if (--parser->depth < 0)
|
||||||
|
|
@ -312,7 +312,7 @@ static inline int spa_pod_parser_get(struct spa_pod_parser *parser,
|
||||||
({ \
|
({ \
|
||||||
struct spa_pod_parser __p; \
|
struct spa_pod_parser __p; \
|
||||||
spa_pod_parser_pod(&__p, pod); \
|
spa_pod_parser_pod(&__p, pod); \
|
||||||
spa_pod_parser_get(&__p, "<", ##__VA_ARGS__, NULL); \
|
spa_pod_parser_get(&__p, "{", ##__VA_ARGS__, NULL); \
|
||||||
})
|
})
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
||||||
|
|
@ -161,7 +161,7 @@ fill_item(struct impl *this, snd_ctl_card_info_t *card_info,
|
||||||
name = "Unknown";
|
name = "Unknown";
|
||||||
|
|
||||||
spa_pod_builder_add(builder,
|
spa_pod_builder_add(builder,
|
||||||
"<", SPA_TYPE_OBJECT_MonitorItem, 0,
|
"{", SPA_TYPE_OBJECT_MonitorItem, 0,
|
||||||
":", SPA_MONITOR_ITEM_id, "s", id,
|
":", SPA_MONITOR_ITEM_id, "s", id,
|
||||||
":", SPA_MONITOR_ITEM_flags, "I", SPA_MONITOR_ITEM_FLAG_NONE,
|
":", SPA_MONITOR_ITEM_flags, "I", SPA_MONITOR_ITEM_FLAG_NONE,
|
||||||
":", SPA_MONITOR_ITEM_state, "I", SPA_MONITOR_ITEM_STATE_Available,
|
":", SPA_MONITOR_ITEM_state, "I", SPA_MONITOR_ITEM_STATE_Available,
|
||||||
|
|
@ -233,7 +233,7 @@ fill_item(struct impl *this, snd_ctl_card_info_t *card_info,
|
||||||
if ((str = udev_device_get_property_value(dev, "SOUND_FORM_FACTOR")) && *str) {
|
if ((str = udev_device_get_property_value(dev, "SOUND_FORM_FACTOR")) && *str) {
|
||||||
spa_pod_builder_add(builder, "s", "device.form_factor", "s", str, 0);
|
spa_pod_builder_add(builder, "s", "device.form_factor", "s", str, 0);
|
||||||
}
|
}
|
||||||
*item = spa_pod_builder_add(builder, "]>", NULL);
|
*item = spa_pod_builder_add(builder, "]}", NULL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ static void fill_item(struct spa_bt_monitor *this, struct spa_bt_transport *tran
|
||||||
char trans[16];
|
char trans[16];
|
||||||
|
|
||||||
spa_pod_builder_add(builder,
|
spa_pod_builder_add(builder,
|
||||||
"<", SPA_TYPE_OBJECT_MonitorItem, 0,
|
"{", SPA_TYPE_OBJECT_MonitorItem, 0,
|
||||||
":", SPA_MONITOR_ITEM_id, "s", transport->path,
|
":", SPA_MONITOR_ITEM_id, "s", transport->path,
|
||||||
":", SPA_MONITOR_ITEM_flags, "I", SPA_MONITOR_ITEM_FLAG_NONE,
|
":", SPA_MONITOR_ITEM_flags, "I", SPA_MONITOR_ITEM_FLAG_NONE,
|
||||||
":", SPA_MONITOR_ITEM_state, "I", SPA_MONITOR_ITEM_STATE_Available,
|
":", SPA_MONITOR_ITEM_state, "I", SPA_MONITOR_ITEM_STATE_Available,
|
||||||
|
|
@ -90,7 +90,7 @@ static void fill_item(struct spa_bt_monitor *this, struct spa_bt_transport *tran
|
||||||
"s", "bluez5.transport", "s", trans,
|
"s", "bluez5.transport", "s", trans,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
*result = spa_pod_builder_add(builder, "]>", NULL);
|
*result = spa_pod_builder_add(builder, "]}", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint8_t a2dp_default_bitpool(struct spa_bt_monitor *monitor, uint8_t freq, uint8_t mode) {
|
static uint8_t a2dp_default_bitpool(struct spa_bt_monitor *monitor, uint8_t freq, uint8_t mode) {
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@ static void fill_item(struct impl *this, struct item *item, struct udev_device *
|
||||||
name = "Unknown";
|
name = "Unknown";
|
||||||
|
|
||||||
spa_pod_builder_add(builder,
|
spa_pod_builder_add(builder,
|
||||||
"<", SPA_TYPE_OBJECT_MonitorItem, 0,
|
"{", SPA_TYPE_OBJECT_MonitorItem, 0,
|
||||||
":", SPA_MONITOR_ITEM_id, "s", udev_device_get_syspath(item->udevice),
|
":", SPA_MONITOR_ITEM_id, "s", udev_device_get_syspath(item->udevice),
|
||||||
":", SPA_MONITOR_ITEM_flags, "I", SPA_MONITOR_ITEM_FLAG_NONE,
|
":", SPA_MONITOR_ITEM_flags, "I", SPA_MONITOR_ITEM_FLAG_NONE,
|
||||||
":", SPA_MONITOR_ITEM_state, "I", SPA_MONITOR_ITEM_STATE_Available,
|
":", SPA_MONITOR_ITEM_state, "I", SPA_MONITOR_ITEM_STATE_Available,
|
||||||
|
|
@ -156,7 +156,7 @@ static void fill_item(struct impl *this, struct item *item, struct udev_device *
|
||||||
spa_pod_builder_add(builder, "s", "device.capabilities", "s", str, 0);
|
spa_pod_builder_add(builder, "s", "device.capabilities", "s", str, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
*result = spa_pod_builder_add(builder, "]>", NULL);
|
*result = spa_pod_builder_add(builder, "]}", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void impl_on_fd_events(struct spa_source *source)
|
static void impl_on_fd_events(struct spa_source *source)
|
||||||
|
|
|
||||||
|
|
@ -328,7 +328,7 @@ int main(int argc, char *argv[])
|
||||||
* )
|
* )
|
||||||
*/
|
*/
|
||||||
fmt = spa_pod_builder_add(&b,
|
fmt = spa_pod_builder_add(&b,
|
||||||
"<", SPA_TYPE_OBJECT_Format, 0,
|
"{", SPA_TYPE_OBJECT_Format, 0,
|
||||||
":", SPA_FORMAT_mediaType, "I", SPA_MEDIA_TYPE_video,
|
":", SPA_FORMAT_mediaType, "I", SPA_MEDIA_TYPE_video,
|
||||||
":", SPA_FORMAT_mediaSubtype, "I", SPA_MEDIA_SUBTYPE_raw,
|
":", SPA_FORMAT_mediaSubtype, "I", SPA_MEDIA_SUBTYPE_raw,
|
||||||
":", SPA_FORMAT_VIDEO_format, "Ieu", SPA_VIDEO_FORMAT_I420,
|
":", SPA_FORMAT_VIDEO_format, "Ieu", SPA_VIDEO_FORMAT_I420,
|
||||||
|
|
@ -340,7 +340,7 @@ int main(int argc, char *argv[])
|
||||||
":", SPA_FORMAT_VIDEO_framerate, "Fru", &SPA_FRACTION(25,1),
|
":", SPA_FORMAT_VIDEO_framerate, "Fru", &SPA_FRACTION(25,1),
|
||||||
2, &SPA_FRACTION(0,1),
|
2, &SPA_FRACTION(0,1),
|
||||||
&SPA_FRACTION(INT32_MAX,1),
|
&SPA_FRACTION(INT32_MAX,1),
|
||||||
">", NULL);
|
"}", NULL);
|
||||||
|
|
||||||
spa_debug_pod(0, spa_debug_types, &fmt->pod);
|
spa_debug_pod(0, spa_debug_types, &fmt->pod);
|
||||||
spa_debug_format(0, NULL, &fmt->pod);
|
spa_debug_format(0, NULL, &fmt->pod);
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
spa_pod_builder_init(&b, buffer, sizeof(buffer));
|
spa_pod_builder_init(&b, buffer, sizeof(buffer));
|
||||||
fmt = spa_pod_builder_add(&b,
|
fmt = spa_pod_builder_add(&b,
|
||||||
"<",0,format,
|
"{",0,format,
|
||||||
" [ i", video, "i",raw,"]"
|
" [ i", video, "i",raw,"]"
|
||||||
" :", format, "ieu", I420,
|
" :", format, "ieu", I420,
|
||||||
2, I420, YUY2,
|
2, I420, YUY2,
|
||||||
|
|
@ -52,17 +52,17 @@ int main(int argc, char *argv[])
|
||||||
" :", framerate, "Fru", &SPA_FRACTION(25,1),
|
" :", framerate, "Fru", &SPA_FRACTION(25,1),
|
||||||
2, &SPA_FRACTION(0,1),
|
2, &SPA_FRACTION(0,1),
|
||||||
&SPA_FRACTION(INT32_MAX, 1),
|
&SPA_FRACTION(INT32_MAX, 1),
|
||||||
">", NULL);
|
"}", NULL);
|
||||||
spa_debug_pod(0, NULL, fmt);
|
spa_debug_pod(0, NULL, fmt);
|
||||||
|
|
||||||
spa_pod_parser_pod(&prs, fmt);
|
spa_pod_parser_pod(&prs, fmt);
|
||||||
res = spa_pod_parser_get(&prs,
|
res = spa_pod_parser_get(&prs,
|
||||||
"<"
|
"{"
|
||||||
" [ i",&media_type,"*i"/*,&media_subtype,*/" ]"
|
" [ i",&media_type,"*i"/*,&media_subtype,*/" ]"
|
||||||
" :", framerate, "V", &pod,
|
" :", framerate, "V", &pod,
|
||||||
" :", 10, "?V", &pod2,
|
" :", 10, "?V", &pod2,
|
||||||
" :", format, "?i", &fmt_value,
|
" :", format, "?i", &fmt_value,
|
||||||
">", NULL);
|
"}", NULL);
|
||||||
|
|
||||||
printf("res :%d\n", res);
|
printf("res :%d\n", res);
|
||||||
printf("media-type:%d media-subtype:%d\n", media_type, media_subtype);
|
printf("media-type:%d media-subtype:%d\n", media_type, media_subtype);
|
||||||
|
|
@ -73,18 +73,18 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
spa_pod_builder_init(&b, buffer, sizeof(buffer));
|
spa_pod_builder_init(&b, buffer, sizeof(buffer));
|
||||||
pod = spa_pod_builder_add(&b,
|
pod = spa_pod_builder_add(&b,
|
||||||
"<",0,format,
|
"{",0,format,
|
||||||
" P", NULL,
|
" P", NULL,
|
||||||
" [ i", 44, "i",45,"]"
|
" [ i", 44, "i",45,"]"
|
||||||
">", NULL);
|
"}", NULL);
|
||||||
spa_debug_pod(0, NULL, pod);
|
spa_debug_pod(0, NULL, pod);
|
||||||
|
|
||||||
spa_pod_parser_pod(&prs, pod);
|
spa_pod_parser_pod(&prs, pod);
|
||||||
res = spa_pod_parser_get(&prs,
|
res = spa_pod_parser_get(&prs,
|
||||||
"<"
|
"{"
|
||||||
" ?[ i",&media_type,"i",&media_subtype," ]"
|
" ?[ i",&media_type,"i",&media_subtype," ]"
|
||||||
" [ i", &video, "i",&raw,"]"
|
" [ i", &video, "i",&raw,"]"
|
||||||
">", NULL);
|
"}", NULL);
|
||||||
printf("res :%d\n", res);
|
printf("res :%d\n", res);
|
||||||
printf("video:%d raw:%d\n", video, raw);
|
printf("video:%d raw:%d\n", video, raw);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue