--- sourceforge.net/trunk/rdesktop/rdpsnd_oss.c 2004/08/23 11:13:50 753 +++ sourceforge.net/trunk/rdesktop/rdpsnd_oss.c 2004/09/03 18:04:48 760 @@ -85,7 +85,7 @@ BOOL wave_out_set_format(WAVEFORMATEX * pwfx) { - int channels, format; + int stereo, format; ioctl(g_dsp_fd, SNDCTL_DSP_RESET, NULL); ioctl(g_dsp_fd, SNDCTL_DSP_SYNC, NULL); @@ -104,17 +104,21 @@ return False; } - channels = pwfx->nChannels; - if (ioctl(g_dsp_fd, SNDCTL_DSP_CHANNELS, &channels) == -1) + if (pwfx->nChannels == 2) { - perror("SNDCTL_DSP_CHANNELS"); - close(g_dsp_fd); - return False; + stereo = 1; + g_samplewidth *= 2; + } + else + { + stereo = 0; } - if (channels == 2) + if (ioctl(g_dsp_fd, SNDCTL_DSP_STEREO, &stereo) == -1) { - g_samplewidth *= 2; + perror("SNDCTL_DSP_CHANNELS"); + close(g_dsp_fd); + return False; } g_snd_rate = pwfx->nSamplesPerSec;