sokol/audio
sokol_audio
Types
7Allocator
Allocator :: struct {
alloc_fn: proc(a0: c.size_t, a1: rawptr) -> (rawptr),
a0: c.size_t,
size_t: rawptr,
a1: rawptr,
free_fn: proc(a0: rawptr, a1: rawptr),
a0: rawptr,
a1: rawptr,
user_data: rawptr,
}Sourcesaudio_allocator
Used in saudio_desc to provide custom memory-alloc and -free functions to sokol_audio.h. If memory management should be overridden, both the alloc_fn and free_fn function must be provided (e.g. it's not valid to override one function but not the other).
Desc
Desc :: struct {
sample_rate: c.int,
num_channels: c.int,
buffer_frames: c.int,
packet_frames: c.int,
num_packets: c.int,
stream_cb: proc(a0: ^f32, a1: c.int, a2: c.int),
a0: ^f32,
f32: c.int,
a1: c.int,
int: c.int,
a2: c.int,
stream_userdata_cb: proc(a0: ^f32, a1: c.int, a2: c.int, a3: rawptr),
a0: ^f32,
f32: c.int,
a1: c.int,
int: c.int,
a2: c.int,
int: rawptr,
a3: rawptr,
user_data: rawptr,
win32: Win32_Desc,
n3ds: N3ds_Desc,
allocator: Allocator,
logger: Logger,
}SourceLog_Item
Log_Item :: enum i32 {
OK = 0,
MALLOC_FAILED = 1,
ALSA_SND_PCM_OPEN_FAILED = 2,
ALSA_FLOAT_SAMPLES_NOT_SUPPORTED = 3,
ALSA_REQUESTED_BUFFER_SIZE_NOT_SUPPORTED = 4,
ALSA_REQUESTED_CHANNEL_COUNT_NOT_SUPPORTED = 5,
ALSA_SND_PCM_HW_PARAMS_SET_RATE_NEAR_FAILED = 6,
ALSA_SND_PCM_HW_PARAMS_FAILED = 7,
ALSA_PTHREAD_CREATE_FAILED = 8,
WASAPI_CREATE_EVENT_FAILED = 9,
WASAPI_CREATE_DEVICE_ENUMERATOR_FAILED = 10,
WASAPI_GET_DEFAULT_AUDIO_ENDPOINT_FAILED = 11,
WASAPI_DEVICE_ACTIVATE_FAILED = 12,
WASAPI_AUDIO_CLIENT_INITIALIZE_FAILED = 13,
WASAPI_AUDIO_CLIENT_GET_BUFFER_SIZE_FAILED = 14,
WASAPI_AUDIO_CLIENT_GET_SERVICE_FAILED = 15,
WASAPI_AUDIO_CLIENT_SET_EVENT_HANDLE_FAILED = 16,
WASAPI_CREATE_THREAD_FAILED = 17,
AAUDIO_STREAMBUILDER_OPEN_STREAM_FAILED = 18,
AAUDIO_PTHREAD_CREATE_FAILED = 19,
AAUDIO_RESTARTING_STREAM_AFTER_ERROR = 20,
USING_AAUDIO_BACKEND = 21,
AAUDIO_CREATE_STREAMBUILDER_FAILED = 22,
COREAUDIO_NEW_OUTPUT_FAILED = 23,
COREAUDIO_ALLOCATE_BUFFER_FAILED = 24,
COREAUDIO_START_FAILED = 25,
BACKEND_BUFFER_SIZE_ISNT_MULTIPLE_OF_PACKET_SIZE = 26,
VITA_SCEAUDIO_OPEN_FAILED = 27,
VITA_PTHREAD_CREATE_FAILED = 28,
N3DS_NDSP_OPEN_FAILED = 29,
}SourceLogger
Logger :: struct {
func: proc(
a0: cstring,
a1: u32,
a2: u32,
a3: cstring,
a4: u32,
a5: cstring,
a6: rawptr,
),
a0: cstring,
a1: u32,
a2: u32,
a3: cstring,
a4: u32,
a5: cstring,
a6: rawptr,
user_data: rawptr,
}Sourcesaudio_logger
Used in saudio_desc to provide a custom logging and error reporting callback to sokol-audio.
N3ds_Desc
N3ds_Desc :: struct {
queue_count: c.int,
interpolation_type: N3ds_Ndspinterptype,
channel_id: c.int,
}SourceN3ds_Ndspinterptype
N3ds_Ndspinterptype :: enum i32 {
DSP_INTERP_POLYPHASE = 0,
DSP_INTERP_LINEAR = 1,
DSP_INTERP_NONE = 2,
}SourceWin32_Desc
Win32_Desc :: struct {
skip_coinitialize: bool,
}SourceConstants
4DEBUG
DEBUG :: _ = #config(SOKOL_AUDIO_DEBUG, SOKOL_DEBUG)SourceSOKOL_DEBUG
SOKOL_DEBUG :: _ = #config(SOKOL_DEBUG, ODIN_DEBUG)SourceUSE_DLL
USE_DLL :: _ = #config(SOKOL_DLL, false)SourceUSE_GL
USE_GL :: _ = #config(SOKOL_USE_GL, false)Source