mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-23 08:56:47 -05:00
Type changes
Only allow properties inside objects, this makes it easier to iterate the object, which is needed for efficiently processing control streams. Add a choice type to mark variable properties. SPA_TYPE_Enum -> SPA_TYPE_Id to avoid confusion with choice enum Make it easier to allocate and initialize properties on the stack Make more efficient methods to make objects.
This commit is contained in:
parent
03fdabd155
commit
cc842cbdc8
63 changed files with 2253 additions and 1880 deletions
|
|
@ -46,24 +46,24 @@ int main(int argc, char *argv[])
|
|||
spa_pod_builder_push_object(&b, 0, 0);
|
||||
|
||||
uint32_t formats[] = { 1, 2 };
|
||||
spa_pod_builder_push_prop(&b, 1, SPA_POD_PROP_RANGE_ENUM);
|
||||
spa_pod_builder_prop(&b, 1, 0);
|
||||
spa_pod_builder_push_array(&b);
|
||||
spa_pod_builder_int(&b, 1);
|
||||
spa_pod_builder_int(&b, formats[0]);
|
||||
spa_pod_builder_int(&b, formats[1]);
|
||||
spa_pod_builder_pop(&b);
|
||||
|
||||
spa_pod_builder_push_prop(&b, 2, 0);
|
||||
spa_pod_builder_prop(&b, 2, 0);
|
||||
spa_pod_builder_int(&b, 42);
|
||||
spa_pod_builder_pop(&b);
|
||||
|
||||
struct spa_rectangle sizes[] = { {0, 0}, {1024, 1024} };
|
||||
spa_pod_builder_push_prop(&b,
|
||||
3, SPA_POD_PROP_RANGE_MIN_MAX | SPA_POD_PROP_FLAG_UNSET);
|
||||
spa_pod_builder_prop(&b, 3, 0);
|
||||
spa_pod_builder_push_array(&b);
|
||||
spa_pod_builder_rectangle(&b, 320, 240);
|
||||
spa_pod_builder_raw(&b, sizes, sizeof(sizes));
|
||||
spa_pod_builder_pop(&b);
|
||||
|
||||
spa_pod_builder_push_prop(&b, 4, SPA_POD_PROP_FLAG_READONLY);
|
||||
spa_pod_builder_prop(&b, 4, SPA_POD_PROP_FLAG_READONLY);
|
||||
ref = spa_pod_builder_push_struct(&b);
|
||||
spa_pod_builder_int(&b, 4);
|
||||
spa_pod_builder_long(&b, 6000);
|
||||
|
|
@ -78,14 +78,12 @@ int main(int argc, char *argv[])
|
|||
spa_pod_builder_int(&b, 6);
|
||||
spa_pod_builder_pop(&b);
|
||||
spa_pod_builder_pop(&b);
|
||||
spa_pod_builder_pop(&b);
|
||||
obj = spa_pod_builder_pop(&b);
|
||||
|
||||
spa_debug_pod(0, NULL, obj);
|
||||
|
||||
struct spa_pod_prop *p = spa_pod_find_prop(obj, 4);
|
||||
printf("%d %d\n", p->body.key, p->body.flags);
|
||||
spa_debug_pod(0, NULL, &p->body.value);
|
||||
spa_debug_pod(0, NULL, &p->value);
|
||||
|
||||
obj = spa_pod_builder_deref(&b, ref);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue