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: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-id: 78853815be2069971b89b3a2e3181837064dd8f3.1462962512.git.pkrempa@redhat.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
		
							parent
							
								
									2c107d7684
								
							
						
					
					
						commit
						e58ff62d58
					
				@ -781,23 +781,22 @@ static int qpa_ctl_in (HWVoiceIn *hw, int cmd, ...)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            pa_threaded_mainloop_lock (g->mainloop);
 | 
					            pa_threaded_mainloop_lock (g->mainloop);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            /* FIXME: use the upcoming "set_source_output_{volume,mute}" */
 | 
					            op = pa_context_set_source_output_volume (g->context,
 | 
				
			||||||
            op = pa_context_set_source_volume_by_index (g->context,
 | 
					                pa_stream_get_index (pa->stream),
 | 
				
			||||||
                pa_stream_get_device_index (pa->stream),
 | 
					 | 
				
			||||||
                &v, NULL, NULL);
 | 
					                &v, NULL, NULL);
 | 
				
			||||||
            if (!op) {
 | 
					            if (!op) {
 | 
				
			||||||
                qpa_logerr (pa_context_errno (g->context),
 | 
					                qpa_logerr (pa_context_errno (g->context),
 | 
				
			||||||
                            "set_source_volume() failed\n");
 | 
					                            "set_source_output_volume() failed\n");
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                pa_operation_unref(op);
 | 
					                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),
 | 
					                pa_stream_get_index (pa->stream),
 | 
				
			||||||
                sw->vol.mute, NULL, NULL);
 | 
					                sw->vol.mute, NULL, NULL);
 | 
				
			||||||
            if (!op) {
 | 
					            if (!op) {
 | 
				
			||||||
                qpa_logerr (pa_context_errno (g->context),
 | 
					                qpa_logerr (pa_context_errno (g->context),
 | 
				
			||||||
                            "set_source_mute() failed\n");
 | 
					                            "set_source_output_mute() failed\n");
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                pa_operation_unref (op);
 | 
					                pa_operation_unref (op);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@ -2813,8 +2813,8 @@ for drv in $audio_drv_list; do
 | 
				
			|||||||
    ;;
 | 
					    ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa)
 | 
					    pa)
 | 
				
			||||||
    audio_drv_probe $drv pulse/mainloop.h "-lpulse" \
 | 
					    audio_drv_probe $drv pulse/pulseaudio.h "-lpulse" \
 | 
				
			||||||
        "pa_mainloop *m = 0; pa_mainloop_free (m); return 0;"
 | 
					        "pa_context_set_source_output_volume(NULL, 0, NULL, NULL, NULL); return 0;"
 | 
				
			||||||
    libs_softmmu="-lpulse $libs_softmmu"
 | 
					    libs_softmmu="-lpulse $libs_softmmu"
 | 
				
			||||||
    audio_pt_int="yes"
 | 
					    audio_pt_int="yes"
 | 
				
			||||||
    ;;
 | 
					    ;;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user