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
|
void
|
||||||
wave_out_volume(uint16 left, uint16 right)
|
wave_out_volume(uint16 left, uint16 right)
|
||||||
{
|
{
|
||||||
|
static BOOL use_dev_mixer = False;
|
||||||
uint32 volume;
|
uint32 volume;
|
||||||
|
int fd_mix = -1;
|
||||||
|
|
||||||
volume = left / (65536 / 100);
|
volume = left / (65536 / 100);
|
||||||
volume |= right / (65536 / 100) << 8;
|
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)
|
if (ioctl(g_dsp_fd, MIXER_WRITE(SOUND_MIXER_PCM), &volume) == -1)
|
||||||
{
|
{
|
||||||
perror("MIXER_WRITE(SOUND_MIXER_PCM)");
|
perror("MIXER_WRITE(SOUND_MIXER_PCM)");
|
||||||
|
use_dev_mixer = True;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user