diff options
author | Daniel Mack <daniel@caiaq.de> | 2009-10-08 14:19:47 +0800 |
---|---|---|
committer | Daniel Mack <daniel@caiaq.de> | 2009-10-08 14:19:47 +0800 |
commit | 0b388bff522f689fdb4d98529a39f3701db57c08 (patch) | |
tree | 837b4fb0993078a708dfddb5801220e44a711d32 /src/pulse/proplist.c | |
parent | 94aa9097f4ded68623160d754a4bf2632b8efc79 (diff) | |
parent | 8ec304d2d1e956cc3f5f35437ac4fe580b36f004 (diff) |
Merge branch 'master' of git://0pointer.de/pulseaudio
Diffstat (limited to 'src/pulse/proplist.c')
-rw-r--r-- | src/pulse/proplist.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/pulse/proplist.c b/src/pulse/proplist.c index 048b241a..faa98b79 100644 --- a/src/pulse/proplist.c +++ b/src/pulse/proplist.c @@ -681,3 +681,32 @@ int pa_proplist_isempty(pa_proplist *p) { return pa_hashmap_isempty(MAKE_HASHMAP(p)); } + +int pa_proplist_equal(pa_proplist *a, pa_proplist *b) { + const void *key = NULL; + struct property *a_prop = NULL; + struct property *b_prop = NULL; + void *state = NULL; + + pa_assert(a); + pa_assert(b); + + if (a == b) + return 1; + + if (pa_proplist_size(a) != pa_proplist_size(b)) + return 0; + + while ((a_prop = pa_hashmap_iterate(MAKE_HASHMAP(a), &state, &key))) { + if (!(b_prop = pa_hashmap_get(MAKE_HASHMAP(b), key))) + return 0; + + if (a_prop->nbytes != b_prop->nbytes) + return 0; + + if (memcmp(a_prop->value, b_prop->value, a_prop->nbytes) != 0) + return 0; + } + + return 1; +} |