Index: mumble-1.2.3/src/mumble/PulseAudio.cpp =================================================================== --- mumble-1.2.3.orig/src/mumble/PulseAudio.cpp 2012-04-16 17:04:07.000000000 +0200 +++ mumble-1.2.3/src/mumble/PulseAudio.cpp 2012-04-16 17:38:01.370359508 +0200 @@ -151,6 +151,8 @@ if (! bSourceDone || ! bSinkDone || ! bServerDone) return; + QString default_dev = "(default)"; + AudioInputPtr ai = g.ai; AudioOutputPtr ao = g.ao; AudioInput *raw_ai = ai.get(); @@ -159,7 +161,7 @@ PulseAudioOutput *pao = dynamic_cast(raw_ao); if (raw_ao) { - QString odev = g.s.qsPulseAudioOutput.isEmpty() ? qsDefaultOutput : g.s.qsPulseAudioOutput; + QString odev = g.s.qsPulseAudioOutput.isEmpty() ? default_dev : g.s.qsPulseAudioOutput; pa_stream_state ost = pasOutput ? pa_stream_get_state(pasOutput) : PA_STREAM_TERMINATED; bool do_stop = false; bool do_start = false; @@ -217,12 +219,12 @@ bPositionalCache = g.s.doPositionalAudio(); qsOutputCache = odev; - pa_stream_connect_playback(pasOutput, qPrintable(odev), &buff, PA_STREAM_ADJUST_LATENCY, NULL, NULL); + pa_stream_connect_playback(pasOutput, odev == default_dev ? NULL : qPrintable(odev), &buff, PA_STREAM_ADJUST_LATENCY, NULL, NULL); } } if (raw_ai) { - QString idev = g.s.qsPulseAudioInput.isEmpty() ? qsDefaultInput : g.s.qsPulseAudioInput; + QString idev = g.s.qsPulseAudioInput.isEmpty() ? default_dev : g.s.qsPulseAudioInput; pa_stream_state ist = pasInput ? pa_stream_get_state(pasInput) : PA_STREAM_TERMINATED; bool do_stop = false; bool do_start = false; @@ -275,7 +277,7 @@ qsInputCache = idev; - pa_stream_connect_record(pasInput, qPrintable(idev), &buff, PA_STREAM_ADJUST_LATENCY); + pa_stream_connect_record(pasInput, idev == default_dev ? NULL : qPrintable(idev), &buff, PA_STREAM_ADJUST_LATENCY); } }