volume ramp: additions to the low level infra
[platform/upstream/pulseaudio.git] / src / pulsecore / tagstruct.c
index 5694a0d..e51fcf2 100644 (file)
@@ -47,7 +47,7 @@ struct pa_tagstruct {
     size_t length, allocated;
     size_t rindex;
 
-    pa_bool_t dynamic;
+    bool dynamic;
 };
 
 pa_tagstruct *pa_tagstruct_new(const uint8_t* data, size_t length) {
@@ -161,7 +161,7 @@ void pa_tagstruct_put_arbitrary(pa_tagstruct *t, const void *p, size_t length) {
     t->length += 5+length;
 }
 
-void pa_tagstruct_put_boolean(pa_tagstruct*t, pa_bool_t b) {
+void pa_tagstruct_put_boolean(pa_tagstruct*t, bool b) {
     pa_assert(t);
 
     extend(t, 1);
@@ -228,6 +228,7 @@ void pa_tagstruct_put_channel_map(pa_tagstruct *t, const pa_channel_map *map) {
     unsigned i;
 
     pa_assert(t);
+    pa_assert(map);
     extend(t, 2 + (size_t) map->channels);
 
     t->data[t->length++] = PA_TAG_CHANNEL_MAP;
@@ -242,6 +243,7 @@ void pa_tagstruct_put_cvolume(pa_tagstruct *t, const pa_cvolume *cvolume) {
     pa_volume_t vol;
 
     pa_assert(t);
+    pa_assert(cvolume);
     extend(t, 2 + cvolume->channels * sizeof(pa_volume_t));
 
     t->data[t->length++] = PA_TAG_CVOLUME;
@@ -427,7 +429,7 @@ const uint8_t* pa_tagstruct_data(pa_tagstruct*t, size_t *l) {
     return t->data;
 }
 
-int pa_tagstruct_get_boolean(pa_tagstruct*t, pa_bool_t *b) {
+int pa_tagstruct_get_boolean(pa_tagstruct*t, bool *b) {
     pa_assert(t);
     pa_assert(b);
 
@@ -435,9 +437,9 @@ int pa_tagstruct_get_boolean(pa_tagstruct*t, pa_bool_t *b) {
         return -1;
 
     if (t->data[t->rindex] == PA_TAG_BOOLEAN_TRUE)
-        *b = TRUE;
+        *b = true;
     else if (t->data[t->rindex] == PA_TAG_BOOLEAN_FALSE)
-        *b = FALSE;
+        *b = false;
     else
         return -1;
 
@@ -600,7 +602,6 @@ int pa_tagstruct_get_proplist(pa_tagstruct *t, pa_proplist *p) {
     size_t saved_rindex;
 
     pa_assert(t);
-    pa_assert(p);
 
     if (t->rindex+1 > t->length)
         return -1;
@@ -622,6 +623,9 @@ int pa_tagstruct_get_proplist(pa_tagstruct *t, pa_proplist *p) {
         if (!k)
             break;
 
+        if (!pa_proplist_key_valid(k))
+            goto fail;
+
         if (pa_tagstruct_getu32(t, &length) < 0)
             goto fail;
 
@@ -631,8 +635,8 @@ int pa_tagstruct_get_proplist(pa_tagstruct *t, pa_proplist *p) {
         if (pa_tagstruct_get_arbitrary(t, &d, length) < 0)
             goto fail;
 
-        if (pa_proplist_set(p, k, d, length) < 0)
-            goto fail;
+        if (p)
+            pa_assert_se(pa_proplist_set(p, k, d, length) >= 0);
     }
 
     return 0;
@@ -795,7 +799,7 @@ int pa_tagstruct_get(pa_tagstruct *t, ...) {
 
             case PA_TAG_BOOLEAN_TRUE:
             case PA_TAG_BOOLEAN_FALSE:
-                ret = pa_tagstruct_get_boolean(t, va_arg(va, pa_bool_t*));
+                ret = pa_tagstruct_get_boolean(t, va_arg(va, bool*));
                 break;
 
             case PA_TAG_TIMEVAL: