mizchi/kagura_engine/audio does not have a README file
pub trait AudioContext {
fn create_player(Self, clip : AudioClip) -> PlayerId raise
fn play(Self, id : PlayerId) -> Unit raise
fn pause(Self, id : PlayerId) -> Unit raise
fn stop(Self, id : PlayerId) -> Unit raise
fn state(Self, id : PlayerId) -> PlayerState
fn set_volume(Self, id : PlayerId, volume : Double) -> Unit
fn current_position(Self, id : PlayerId) -> Double
fn seek(Self, id : PlayerId, position : Double) -> Unit raise
fn set_pan(Self, id : PlayerId, pan : Double) -> Unit
fn dispose(Self, id : PlayerId) -> Unit
}pub trait AudioStream {
fn read(Self, buf : FixedArray[Byte], length : Int) -> Int
fn content_length(Self) -> Int
}impl AudioStream for AudioClipStreampub struct AudioOutputHooks {
try_initialize : (AudioFormat) -> Bool
write_frames : (FixedArray[Float], Int) -> Int
suspend : () -> Unit
resume_playback : () -> Unit
close : () -> Unit
output_latency : () -> Double
}pub struct AudioOutputStats {
initialized : Bool
frames_written : Int
suspended : Bool
} derive(Debug)impl Show for AudioOutputStatspub struct BufferedAudioStream {
chunks : Array[Bytes]
total_bytes : Int
read_chunk_idx : Int
read_byte_idx : Int
finalized : Bool
final_length : Int
}impl AudioStream for BufferedAudioStreamimpl AudioContext for MixerAudioContextfn MixerAudioContext::crossfade_bgm(self : MixerAudioContext, clip : AudioClip, duration_seconds : Double, volume? : Double) -> Unitfn MixerAudioContext::fade_bgm(self : MixerAudioContext, target_volume : Double, duration_seconds : Double) -> Unitfn MixerAudioContext::play_bgm(self : MixerAudioContext, clip : AudioClip, volume? : Double) -> Unitfn MixerAudioContext::render(self : MixerAudioContext, frames : Int, output : FixedArray[Float]) -> Unitpub struct SimpleAudioContext {
players : Array[SimpleAudioPlayer]
next_id : Int
format : AudioFormat
}impl AudioContext for SimpleAudioContextpub struct SimpleAudioPlayer {
id : PlayerId
clip : AudioClip
state : PlayerState
volume : Double
position_samples : Int
}fn detect_audio_format(data : Bytes) -> Stringfn new_audio_output_hooks(try_initialize : (AudioFormat) -> Bool, write_frames : (FixedArray[Float], Int) -> Int, suspend : () -> Unit, resume_playback : () -> Unit, close : () -> Unit) -> AudioOutputHooksfn new_audio_output_hooks_full(try_initialize : (AudioFormat) -> Bool, write_frames : (FixedArray[Float], Int) -> Int, suspend : () -> Unit, resume_playback : () -> Unit, close : () -> Unit, output_latency : () -> Double) -> AudioOutputHooksfn new_tracked_audio_output_hooks(inner : AudioOutputHooks, stats : Ref[AudioOutputStats]) -> AudioOutputHooksRendering, runtime, platform, asset, audio, and glTF infrastructure for Kagura
Dependencies