mirror of
https://github.com/LegitCamper/picocalc-os-rs.git
synced 2025-12-27 07:45:28 +00:00
allow userapps to change sample rate of audio
This commit is contained in:
@@ -12,7 +12,7 @@ use strum::{EnumCount, EnumIter};
|
||||
|
||||
pub type EntryFn = fn();
|
||||
|
||||
pub const SYS_CALL_TABLE_COUNT: usize = 14;
|
||||
pub const SYS_CALL_TABLE_COUNT: usize = 15;
|
||||
const _: () = assert!(SYS_CALL_TABLE_COUNT == SyscallTable::COUNT);
|
||||
|
||||
#[derive(Clone, Copy, EnumIter, EnumCount)]
|
||||
@@ -30,8 +30,9 @@ pub enum SyscallTable {
|
||||
ReadFile = 9,
|
||||
WriteFile = 10,
|
||||
FileLen = 11,
|
||||
AudioBufferReady = 12,
|
||||
SendAudioBuffer = 13,
|
||||
ReconfigureAudioSampleRate = 12,
|
||||
AudioBufferReady = 13,
|
||||
SendAudioBuffer = 14,
|
||||
}
|
||||
|
||||
#[unsafe(no_mangle)]
|
||||
@@ -473,6 +474,17 @@ pub extern "C" fn file_len(str: *const u8, len: usize) -> usize {
|
||||
}
|
||||
}
|
||||
|
||||
pub type ReconfigureAudioSampleRate = extern "C" fn(sample_rate: u32);
|
||||
|
||||
#[allow(unused)]
|
||||
pub fn reconfigure_audio_sample_rate(sample_rate: u32) {
|
||||
unsafe {
|
||||
let ptr = SYS_CALL_TABLE[SyscallTable::ReconfigureAudioSampleRate as usize];
|
||||
let f: ReconfigureAudioSampleRate = core::mem::transmute(ptr);
|
||||
f(sample_rate)
|
||||
}
|
||||
}
|
||||
|
||||
pub type AudioBufferReady = extern "C" fn() -> bool;
|
||||
|
||||
#[allow(unused)]
|
||||
|
||||
Reference in New Issue
Block a user