format: Extend properties to handle lists/ranges

This replaces the simple string used by pa_format_info's proplist with a
JSON string (accessed via new API only). This allows us to express lists
and ranges more cleanly, and embed type information for future
extensibility.

We use json-c for JSON parsing. This is a lightweight depdency (32 KB on
my system) and avoids the hassle of having to reinvent a JSON parser.

Also included is a test which verifies functionality and is
valgrind-clean.
This commit is contained in:
Arun Raghavan 2011-04-13 14:05:18 +05:30
parent 62f56a9f6b
commit 8d076d0990
7 changed files with 389 additions and 22 deletions

View file

@ -300,6 +300,8 @@ void pa_format_info_free2(pa_format_info *f, void *userdata);
pa_format_info* pa_format_info_from_sample_spec(pa_sample_spec *ss, pa_channel_map *map);
pa_bool_t pa_format_info_to_sample_spec(pa_format_info *f, pa_sample_spec *ss, pa_channel_map *map);
pa_bool_t pa_format_info_to_sample_spec_fake(pa_format_info *f, pa_sample_spec *ss);
pa_bool_t pa_format_info_get_prop_int(pa_format_info *f, const char *key, int *v);
pa_bool_t pa_format_info_get_prop_string(pa_format_info *f, const char *key, char **v);
pa_bool_t pa_mainloop_is_our_api(pa_mainloop_api*m);