1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 04:27:45 +00:00

Kernel: Allow higher audio sample rates than 65kHZ (u16)

Executing `asctl set r 96000` no longer results in weird sample rates
being set on the audio devices. SB16 checks for a sample rate between 1
and 44100 Hz, while AC97 implements double-rate support which allows
sample rates between 8kHz and 96kHZ.
This commit is contained in:
Jelle Raaijmakers 2021-11-24 12:20:20 +01:00 committed by Andreas Kling
parent c349634967
commit f97c9a5968
9 changed files with 56 additions and 28 deletions

View file

@ -165,7 +165,7 @@ void Mixer::set_muted(bool muted)
});
}
int Mixer::audiodevice_set_sample_rate(u16 sample_rate)
int Mixer::audiodevice_set_sample_rate(u32 sample_rate)
{
int code = ioctl(m_device->fd(), SOUNDCARD_IOCTL_SET_SAMPLE_RATE, sample_rate);
if (code != 0)
@ -173,9 +173,9 @@ int Mixer::audiodevice_set_sample_rate(u16 sample_rate)
return code;
}
u16 Mixer::audiodevice_get_sample_rate() const
u32 Mixer::audiodevice_get_sample_rate() const
{
u16 sample_rate = 0;
u32 sample_rate = 0;
int code = ioctl(m_device->fd(), SOUNDCARD_IOCTL_GET_SAMPLE_RATE, &sample_rate);
if (code != 0)
dbgln("Error while getting sample rate: ioctl error: {}", strerror(errno));