--- sourceforge.net/trunk/rdesktop/rdpsnd_oss.c 2003/10/22 10:55:11 508 +++ sourceforge.net/trunk/rdesktop/rdpsnd_oss.c 2003/10/22 12:16:03 509 @@ -116,13 +116,34 @@ void wave_out_volume(uint16 left, uint16 right) { + static BOOL use_dev_mixer = False; uint32 volume; + int fd_mix = -1; volume = left / (65536 / 100); volume |= right / (65536 / 100) << 8; + + if (use_dev_mixer) + { + if ((fd_mix = open( "/dev/mixer", O_RDWR|O_NONBLOCK )) == -1 ) + { + perror("open /dev/mixer"); + return; + } + + if (ioctl(fd_mix, MIXER_WRITE(SOUND_MIXER_PCM), &volume) == -1) + { + perror("MIXER_WRITE(SOUND_MIXER_PCM)"); + return; + } + + close(fd_mix); + } + if (ioctl(g_dsp_fd, MIXER_WRITE(SOUND_MIXER_PCM), &volume) == -1) { perror("MIXER_WRITE(SOUND_MIXER_PCM)"); + use_dev_mixer = True; return; } }