mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04: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;
|
||||
next:
|
||||
switch (t) {
|
||||
case '<':
|
||||
case '{':
|
||||
{
|
||||
uint32_t type = 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 '(':
|
||||
spa_pod_builder_push_array(builder);
|
||||
break;
|
||||
case '{':
|
||||
case '<':
|
||||
{
|
||||
uint32_t unit = va_arg(args, uint32_t);
|
||||
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);
|
||||
|
||||
if (t == '<' || t == '[')
|
||||
if (t == '{' || t == '[' || t == '<')
|
||||
goto next;
|
||||
|
||||
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,...) \
|
||||
"<", type, id, ##__VA_ARGS__, ">"
|
||||
"{", type, id, ##__VA_ARGS__, "}"
|
||||
|
||||
#define SPA_POD_STRUCT(...) \
|
||||
"[", ##__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__
|
||||
|
||||
#define SPA_POD_SEQUENCE(unit,...) \
|
||||
"{", unit, ##__VA_ARGS__, "}"
|
||||
"<", unit, ##__VA_ARGS__, ">"
|
||||
|
||||
#define SPA_POD_CONTROL(offset,type,...) \
|
||||
".", offset, type, ##__VA_ARGS__
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ static inline int spa_pod_parser_getv(struct spa_pod_parser *parser,
|
|||
|
||||
while (format) {
|
||||
switch (*format) {
|
||||
case '<':
|
||||
case '{':
|
||||
if (pod == NULL || SPA_POD_TYPE(pod) != SPA_TYPE_Object)
|
||||
return -EINVAL;
|
||||
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];
|
||||
spa_pod_iter_init(it, pod, SPA_POD_SIZE(pod), sizeof(struct spa_pod_struct));
|
||||
goto read_pod;
|
||||
case ']': case '>':
|
||||
case ']': case '}':
|
||||
if (current != NULL)
|
||||
return -EINVAL;
|
||||
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; \
|
||||
spa_pod_parser_pod(&__p, pod); \
|
||||
spa_pod_parser_get(&__p, "<", ##__VA_ARGS__, NULL); \
|
||||
spa_pod_parser_get(&__p, "{", ##__VA_ARGS__, NULL); \
|
||||
})
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ fill_item(struct impl *this, snd_ctl_card_info_t *card_info,
|
|||
name = "Unknown";
|
||||
|
||||
spa_pod_builder_add(builder,
|
||||
"<", SPA_TYPE_OBJECT_MonitorItem, 0,
|
||||
"{", SPA_TYPE_OBJECT_MonitorItem, 0,
|
||||
":", SPA_MONITOR_ITEM_id, "s", id,
|
||||
":", SPA_MONITOR_ITEM_flags, "I", SPA_MONITOR_ITEM_FLAG_NONE,
|
||||
":", 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) {
|
||||
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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ static void fill_item(struct spa_bt_monitor *this, struct spa_bt_transport *tran
|
|||
char trans[16];
|
||||
|
||||
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_flags, "I", SPA_MONITOR_ITEM_FLAG_NONE,
|
||||
":", 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,
|
||||
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) {
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ static void fill_item(struct impl *this, struct item *item, struct udev_device *
|
|||
name = "Unknown";
|
||||
|
||||
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_flags, "I", SPA_MONITOR_ITEM_FLAG_NONE,
|
||||
":", 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);
|
||||
}
|
||||
|
||||
*result = spa_pod_builder_add(builder, "]>", NULL);
|
||||
*result = spa_pod_builder_add(builder, "]}", NULL);
|
||||
}
|
||||
|
||||
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,
|
||||
"<", SPA_TYPE_OBJECT_Format, 0,
|
||||
"{", SPA_TYPE_OBJECT_Format, 0,
|
||||
":", SPA_FORMAT_mediaType, "I", SPA_MEDIA_TYPE_video,
|
||||
":", SPA_FORMAT_mediaSubtype, "I", SPA_MEDIA_SUBTYPE_raw,
|
||||
":", 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),
|
||||
2, &SPA_FRACTION(0,1),
|
||||
&SPA_FRACTION(INT32_MAX,1),
|
||||
">", NULL);
|
||||
"}", NULL);
|
||||
|
||||
spa_debug_pod(0, spa_debug_types, &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));
|
||||
fmt = spa_pod_builder_add(&b,
|
||||
"<",0,format,
|
||||
"{",0,format,
|
||||
" [ i", video, "i",raw,"]"
|
||||
" :", format, "ieu", I420,
|
||||
2, I420, YUY2,
|
||||
|
|
@ -52,17 +52,17 @@ int main(int argc, char *argv[])
|
|||
" :", framerate, "Fru", &SPA_FRACTION(25,1),
|
||||
2, &SPA_FRACTION(0,1),
|
||||
&SPA_FRACTION(INT32_MAX, 1),
|
||||
">", NULL);
|
||||
"}", NULL);
|
||||
spa_debug_pod(0, NULL, fmt);
|
||||
|
||||
spa_pod_parser_pod(&prs, fmt);
|
||||
res = spa_pod_parser_get(&prs,
|
||||
"<"
|
||||
"{"
|
||||
" [ i",&media_type,"*i"/*,&media_subtype,*/" ]"
|
||||
" :", framerate, "V", &pod,
|
||||
" :", 10, "?V", &pod2,
|
||||
" :", format, "?i", &fmt_value,
|
||||
">", NULL);
|
||||
"}", NULL);
|
||||
|
||||
printf("res :%d\n", res);
|
||||
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));
|
||||
pod = spa_pod_builder_add(&b,
|
||||
"<",0,format,
|
||||
"{",0,format,
|
||||
" P", NULL,
|
||||
" [ i", 44, "i",45,"]"
|
||||
">", NULL);
|
||||
"}", NULL);
|
||||
spa_debug_pod(0, NULL, pod);
|
||||
|
||||
spa_pod_parser_pod(&prs, pod);
|
||||
res = spa_pod_parser_get(&prs,
|
||||
"<"
|
||||
"{"
|
||||
" ?[ i",&media_type,"i",&media_subtype," ]"
|
||||
" [ i", &video, "i",&raw,"]"
|
||||
">", NULL);
|
||||
"}", NULL);
|
||||
printf("res :%d\n", res);
|
||||
printf("video:%d raw:%d\n", video, raw);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue