mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-13 01:21:38 -07:00
60 lines
1.8 KiB
Odin
60 lines
1.8 KiB
Odin
package miniaudio
|
|
|
|
import "core:c/libc"
|
|
|
|
foreign import lib { LIB }
|
|
|
|
MAX_LOG_CALLBACKS :: 4
|
|
|
|
|
|
/*
|
|
The callback for handling log messages.
|
|
|
|
|
|
Parameters
|
|
----------
|
|
pUserData (in)
|
|
The user data pointer that was passed into ma_log_register_callback().
|
|
|
|
logLevel (in)
|
|
The log level. This can be one of the following:
|
|
|
|
+----------------------+
|
|
| Log Level |
|
|
+----------------------+
|
|
| MA_LOG_LEVEL_DEBUG |
|
|
| MA_LOG_LEVEL_INFO |
|
|
| MA_LOG_LEVEL_WARNING |
|
|
| MA_LOG_LEVEL_ERROR |
|
|
+----------------------+
|
|
|
|
pMessage (in)
|
|
The log message.
|
|
*/
|
|
log_callback_proc :: proc "c" (pUserData: rawptr, level: u32, pMessage: cstring)
|
|
|
|
log_callback :: struct {
|
|
onLog: log_callback_proc,
|
|
pUserData: rawptr,
|
|
}
|
|
|
|
log :: struct {
|
|
callbacks: [MAX_LOG_CALLBACKS]log_callback,
|
|
callbackCount: u32,
|
|
allocationCallbacks: allocation_callbacks, /* Need to store these persistently because log_postv() might need to allocate a buffer on the heap. */
|
|
lock: (struct {} when NO_THREADING else mutex),
|
|
}
|
|
|
|
@(default_calling_convention="c", link_prefix="ma_")
|
|
foreign lib {
|
|
log_callback_init :: proc(onLog: log_callback_proc, pUserData: rawptr) -> log_callback ---
|
|
|
|
log_init :: proc(pAllocationCallbacks: ^allocation_callbacks, pLog: ^log) -> result ---
|
|
log_uninit :: proc(pLog: ^log) ---
|
|
log_register_callback :: proc(pLog: ^log, callback: log_callback) -> result ---
|
|
log_unregister_callback :: proc(pLog: ^log, callback: log_callback) -> result ---
|
|
log_post :: proc(pLog: ^log, level: u32, pMessage: cstring) -> result ---
|
|
log_postv :: proc(pLog: ^log, level: u32, pFormat: cstring, args: libc.va_list) -> result ---
|
|
log_postf :: proc(pLog: ^log, level: u32, pFormat: cstring, #c_vararg args: ..any) -> result ---
|
|
}
|