1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package miniaudio
- import "core:c"
- when ODIN_OS == .Windows {
- foreign import lib "lib/miniaudio.lib"
- } else {
- foreign import lib "lib/miniaudio.a"
- }
- /************************************************************************************************************************************************************
- Encoding
- ========
- Encoders do not perform any format conversion for you. If your target format does not support the format, and error will be returned.
- ************************************************************************************************************************************************************/
- encoder_write_proc :: proc "c" (pEncoder: ^encoder, pBufferIn: rawptr, bytesToWrite: c.size_t, pBytesWritten: ^c.size_t) -> result
- encoder_seek_proc :: proc "c" (pEncoder: ^encoder, offset: i64, origin: seek_origin) -> result
- encoder_init_proc :: proc "c" (pEncoder: ^encoder) -> result
- encoder_uninit_proc :: proc "c" (pEncoder: ^encoder)
- encoder_write_pcm_frames_proc :: proc "c" (pEncoder: ^encoder, pFramesIn: rawptr, frameCount: u64, pFramesWritten: ^u64) -> result
- encoder_config :: struct {
- encodingFormat: encoding_format,
- format: format,
- channels: u32,
- sampleRate: u32,
- allocationCallbacks: allocation_callbacks,
- }
- encoder :: struct {
- config: encoder_config,
- onWrite: encoder_write_proc,
- onSeek: encoder_seek_proc,
- onInit: encoder_init_proc,
- onUninit: encoder_uninit_proc,
- onWritePCMFrames: encoder_write_pcm_frames_proc,
- pUserData: rawptr,
- pInternalEncoder: rawptr,
- data: struct #raw_union {
- vfs: struct {
- pVFS: ^vfs,
- file: vfs_file,
- },
- },
- }
- @(default_calling_convention="c", link_prefix="ma_")
- foreign lib {
- encoder_config_init :: proc(encodingFormat: encoding_format, format: format, channels: u32, sampleRate: u32) -> encoder_config ---
- encoder_init :: proc(onWrite: encoder_write_proc, onSeek: encoder_seek_proc, pUserData: rawptr, pConfig: ^encoder_config, pEncoder: ^encoder) -> result ---
- encoder_init_vfs :: proc(pVFS: ^vfs, pFilePath: cstring, pConfig: ^encoder_config, pEncoder: ^encoder) -> result ---
- encoder_init_vfs_w :: proc(pVFS: ^vfs, pFilePath: [^]c.wchar_t, pConfig: ^encoder_config, pEncoder: ^encoder) -> result ---
- encoder_init_file :: proc(pFilePath: cstring, pConfig: ^encoder_config, pEncoder: ^encoder) -> result ---
- encoder_init_file_w :: proc(pFilePath: [^]c.wchar_t, pConfig: ^encoder_config, pEncoder: ^encoder) -> result ---
- encoder_uninit :: proc(pEncoder: ^encoder) ---
- encoder_write_pcm_frames :: proc(pEncoder: ^encoder, FramesIn: rawptr, frameCount: u64, pFramesWritten: ^u64) -> result ---
- }
|