Mixer fallback for broken sound-drivers
git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@508 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
parent
0affa3f3ff
commit
a1b061098d
21
rdpsnd_oss.c
21
rdpsnd_oss.c
@ -116,13 +116,34 @@ wave_out_set_format(WAVEFORMATEX * pwfx)
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user