[Spice-devel] [spice-gtk PATCH 2/5] audio: use stream functions for pulse source

Victor Toso victortoso at redhat.com
Mon Mar 23 06:15:15 PDT 2015


On Wed, Mar 18, 2015 at 01:56:20PM -0400, Marc-André Lureau wrote:
> Hi
> 
> ----- Original Message -----
> > Hi,
> > 
> > ----- Original Message -----
> > > The functions pa_context_set_source_output_mute/volume are specifically
> > > to change source stream volume/mute.
> > > I changed the warnings to be compatible to sink_input ones;
> > 
> > Iirc, the problem is that source_output used to not implement flat volume
> > logic. Maybe they do nowadays?
> > 
> > So if they still don't, the guest won't have full volume range. We should
> > rather keep the current code in this case, because the main reason why we
> > added volume control in the first place is to have full hw volume control
> > from the guest.
> 
> I just did some test with pulseaudio 5.0, and it seems to apply some flat-volume logic on source stream nowadays. So ACK!

Thanks, pushed as 9ef68ecd1fd11dea626628417928cb7815182bb6

> 
> >  
> > > ---
> > >  gtk/spice-pulse.c | 13 ++++++-------
> > >  1 file changed, 6 insertions(+), 7 deletions(-)
> > > 
> > > diff --git a/gtk/spice-pulse.c b/gtk/spice-pulse.c
> > > index fc1662e..dd7f309 100644
> > > --- a/gtk/spice-pulse.c
> > > +++ b/gtk/spice-pulse.c
> > > @@ -672,11 +672,11 @@ static void record_mute_changed(GObject *object,
> > > GParamSpec *pspec, gpointer dat
> > >          pa_stream_get_device_index(p->record.stream) == PA_INVALID_INDEX)
> > >          return;
> > >  
> > > -    op = pa_context_set_source_mute_by_index(p->context,
> > > -        pa_stream_get_device_index(p->record.stream),
> > > +    op = pa_context_set_source_output_mute(p->context,
> > > +        pa_stream_get_index(p->record.stream),
> > >          mute, NULL, NULL);
> > >      if (!op)
> > > -        g_warning("set_source_mute() failed: %s",
> > > +        g_warning("set_source_output_mute() failed: %s",
> > >                    pa_strerror(pa_context_errno(p->context)));
> > >      else
> > >          pa_operation_unref(op);
> > > @@ -708,12 +708,11 @@ static void record_volume_changed(GObject *object,
> > > GParamSpec *pspec, gpointer d
> > >          pa_stream_get_device_index(p->record.stream) == PA_INVALID_INDEX)
> > >          return;
> > >  
> > > -    /* FIXME: use the upcoming "set_source_output_volume" */
> > > -    op = pa_context_set_source_volume_by_index(p->context,
> > > -        pa_stream_get_device_index(p->record.stream),
> > > +    op = pa_context_set_source_output_volume(p->context,
> > > +        pa_stream_get_index(p->record.stream),
> > >          &v, NULL, NULL);
> > >      if (!op)
> > > -        g_warning("set_source_volume() failed: %s",
> > > +        g_warning("set_source_output_volume() failed: %s",
> > >                    pa_strerror(pa_context_errno(p->context)));
> > >      else
> > >          pa_operation_unref(op);
> > > --
> > > 2.1.0
> > > 
> > > _______________________________________________
> > > Spice-devel mailing list
> > > Spice-devel at lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/spice-devel
> > > 
> > _______________________________________________
> > Spice-devel mailing list
> > Spice-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/spice-devel
> > 


More information about the Spice-devel mailing list