116 |
void |
void |
117 |
wave_out_volume(uint16 left, uint16 right) |
wave_out_volume(uint16 left, uint16 right) |
118 |
{ |
{ |
119 |
|
static BOOL use_dev_mixer = False; |
120 |
uint32 volume; |
uint32 volume; |
121 |
|
int fd_mix = -1; |
122 |
|
|
123 |
volume = left / (65536 / 100); |
volume = left / (65536 / 100); |
124 |
volume |= right / (65536 / 100) << 8; |
volume |= right / (65536 / 100) << 8; |
125 |
|
|
126 |
|
if (use_dev_mixer) |
127 |
|
{ |
128 |
|
if ((fd_mix = open( "/dev/mixer", O_RDWR|O_NONBLOCK )) == -1 ) |
129 |
|
{ |
130 |
|
perror("open /dev/mixer"); |
131 |
|
return; |
132 |
|
} |
133 |
|
|
134 |
|
if (ioctl(fd_mix, MIXER_WRITE(SOUND_MIXER_PCM), &volume) == -1) |
135 |
|
{ |
136 |
|
perror("MIXER_WRITE(SOUND_MIXER_PCM)"); |
137 |
|
return; |
138 |
|
} |
139 |
|
|
140 |
|
close(fd_mix); |
141 |
|
} |
142 |
|
|
143 |
if (ioctl(g_dsp_fd, MIXER_WRITE(SOUND_MIXER_PCM), &volume) == -1) |
if (ioctl(g_dsp_fd, MIXER_WRITE(SOUND_MIXER_PCM), &volume) == -1) |
144 |
{ |
{ |
145 |
perror("MIXER_WRITE(SOUND_MIXER_PCM)"); |
perror("MIXER_WRITE(SOUND_MIXER_PCM)"); |
146 |
|
use_dev_mixer = True; |
147 |
return; |
return; |
148 |
} |
} |
149 |
} |
} |