Commit e58ff62d authored by Peter Krempa's avatar Peter Krempa Committed by Gerd Hoffmann
Browse files

audio: pa: Set volume of recording stream instead of recording device



Since pulseaudio 1.0 it's possible to set the individual stream volume
rather than setting the device volume. With this, setting hardware mixer
of a emulated sound card doesn't mess up the volume configuration of the
host.

A side effect is that this limits compatible pulseaudio version to 1.0
which was released on 2011-09-27.

Signed-off-by: default avatarPeter Krempa <pkrempa@redhat.com>
Reviewed-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
Message-id: 78853815be2069971b89b3a2e3181837064dd8f3.1462962512.git.pkrempa@redhat.com
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 2c107d76
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -781,23 +781,22 @@ static int qpa_ctl_in (HWVoiceIn *hw, int cmd, ...)

            pa_threaded_mainloop_lock (g->mainloop);

            /* FIXME: use the upcoming "set_source_output_{volume,mute}" */
            op = pa_context_set_source_volume_by_index (g->context,
                pa_stream_get_device_index (pa->stream),
            op = pa_context_set_source_output_volume (g->context,
                pa_stream_get_index (pa->stream),
                &v, NULL, NULL);
            if (!op) {
                qpa_logerr (pa_context_errno (g->context),
                            "set_source_volume() failed\n");
                            "set_source_output_volume() failed\n");
            } else {
                pa_operation_unref(op);
            }

            op = pa_context_set_source_mute_by_index (g->context,
            op = pa_context_set_source_output_mute (g->context,
                pa_stream_get_index (pa->stream),
                sw->vol.mute, NULL, NULL);
            if (!op) {
                qpa_logerr (pa_context_errno (g->context),
                            "set_source_mute() failed\n");
                            "set_source_output_mute() failed\n");
            } else {
                pa_operation_unref (op);
            }
+2 −2
Original line number Diff line number Diff line
@@ -2813,8 +2813,8 @@ for drv in $audio_drv_list; do
    ;;

    pa)
    audio_drv_probe $drv pulse/mainloop.h "-lpulse" \
        "pa_mainloop *m = 0; pa_mainloop_free (m); return 0;"
    audio_drv_probe $drv pulse/pulseaudio.h "-lpulse" \
        "pa_context_set_source_output_volume(NULL, 0, NULL, NULL, NULL); return 0;"
    libs_softmmu="-lpulse $libs_softmmu"
    audio_pt_int="yes"
    ;;