mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 20:07:35 +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:
parent
c349634967
commit
f97c9a5968
9 changed files with 56 additions and 28 deletions
|
@ -123,9 +123,10 @@ ErrorOr<void> SB16::ioctl(OpenFileDescription&, unsigned request, Userspace<void
|
|||
return copy_to_user(output, &m_sample_rate);
|
||||
}
|
||||
case SOUNDCARD_IOCTL_SET_SAMPLE_RATE: {
|
||||
auto sample_rate_value = static_cast<u16>(arg.ptr());
|
||||
if (sample_rate_value == 0)
|
||||
return EINVAL;
|
||||
auto sample_rate_input = static_cast<u32>(arg.ptr());
|
||||
if (sample_rate_input == 0 || sample_rate_input > 44100)
|
||||
return ENOTSUP;
|
||||
auto sample_rate_value = static_cast<u16>(sample_rate_input);
|
||||
if (m_sample_rate != sample_rate_value)
|
||||
set_sample_rate(sample_rate_value);
|
||||
return {};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue