[PATCH] introspect: Client-side implementation for has_volume/read_only_volume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2011-03-02 at 00:43 +0530, Arun Raghavan wrote:
> This completes the client-side changes to the protocol extension

Thanks for fixing this!

I forgot also incrementing PA_PROTOCOL_VERSION in my patch, so you
should fix that too.

> introduced by commit 99ddca89cdca9b0b92ab9870764f9211e6a82e31
> ---
>  src/pulse/introspect.c |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/src/pulse/introspect.c b/src/pulse/introspect.c
> index 2a81788..575ca8d 100644
> --- a/src/pulse/introspect.c
> +++ b/src/pulse/introspect.c
> @@ -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, read_only_volume;

The new variables should be initialized - if the server uses a protocol
version less than 20, you assign undefined values to i.has_volume and
i.read_only_volume.

>              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;

-- 
Tanu




[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux