]> code.delx.au - pulseaudio/commitdiff
introspect: Client-side implementation for has_volume/read_only_volume
authorArun Raghavan <arun.raghavan@collabora.co.uk>
Tue, 1 Mar 2011 20:08:38 +0000 (01:38 +0530)
committerColin Guthrie <cguthrie@mandriva.org>
Wed, 2 Mar 2011 11:17:32 +0000 (11:17 +0000)
This completes the client-side changes to the protocol extension
introduced by commit 99ddca89cdca9b0b92ab9870764f9211e6a82e31

configure.ac
src/pulse/introspect.c

index 21dae308e7992aabc5ea5ce9244db6ac620e5d3a..2171089b271d113072456dcd47987f02ffc3d76e 100644 (file)
@@ -37,7 +37,7 @@ AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
 AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/])
 
 AC_SUBST(PA_API_VERSION, 12)
-AC_SUBST(PA_PROTOCOL_VERSION, 19)
+AC_SUBST(PA_PROTOCOL_VERSION, 20)
 
 # The stable ABI for client applications, for the version info x:y:z
 # always will hold y=z
index 2a81788144749e04276bcaa1c6232092c21a9689..35e091a8a6b0048313251bd8edeae8672705a762 100644 (file)
@@ -996,7 +996,7 @@ static void context_get_sink_input_info_callback(pa_pdispatch *pd, uint32_t comm
 
         while (!pa_tagstruct_eof(t)) {
             pa_sink_input_info i;
-            pa_bool_t mute = FALSE, corked = FALSE;
+            pa_bool_t mute = FALSE, corked = FALSE, has_volume = FALSE, read_only_volume = FALSE;
 
             pa_zero(i);
             i.proplist = pa_proplist_new();
@@ -1015,7 +1015,9 @@ static void context_get_sink_input_info_callback(pa_pdispatch *pd, uint32_t comm
                 pa_tagstruct_gets(t, &i.driver) < 0 ||
                 (o->context->version >= 11 && pa_tagstruct_get_boolean(t, &mute) < 0) ||
                 (o->context->version >= 13 && pa_tagstruct_get_proplist(t, i.proplist) < 0) ||
-                (o->context->version >= 19 && pa_tagstruct_get_boolean(t, &corked) < 0)) {
+                (o->context->version >= 19 && pa_tagstruct_get_boolean(t, &corked) < 0) ||
+                (o->context->version >= 20 && (pa_tagstruct_get_boolean(t, &has_volume) < 0 ||
+                                               pa_tagstruct_get_boolean(t, &read_only_volume) < 0))) {
 
                 pa_context_fail(o->context, PA_ERR_PROTOCOL);
                 pa_proplist_free(i.proplist);
@@ -1024,6 +1026,8 @@ static void context_get_sink_input_info_callback(pa_pdispatch *pd, uint32_t comm
 
             i.mute = (int) mute;
             i.corked = (int) corked;
+            i.has_volume = (int) has_volume;
+            i.read_only_volume = (int) read_only_volume;
 
             if (o->callback) {
                 pa_sink_input_info_cb_t cb = (pa_sink_input_info_cb_t) o->callback;