Skip to content

Instantly share code, notes, and snippets.

@quonic
Last active April 6, 2024 02:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save quonic/989d40e4958dc096bf395a36890760b1 to your computer and use it in GitHub Desktop.
Save quonic/989d40e4958dc096bf395a36890760b1 to your computer and use it in GitHub Desktop.
Helper function to check if the result from miniaudio functions where successful or not. Logs to raylib's TraceLog.
package main
// License: Do what ever you want with this.
// Example use case
// audioengineConfig = miniaudio.engine_config_init()
// result: miniaudio.result = miniaudio.engine_init(&audioengineConfig, &audioEngine)
// assert(checkAudioResult(result), "Failed to initialize audio engine")
import "vendor:miniaudio"
import "vendor:raylib"
checkAudioResult :: proc(result: miniaudio.result) -> bool {
switch result {
case .SUCCESS:
return true
case .ADDRESS_FAMILY_NOT_SUPPORTED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Address family not supported")
case .ALREADY_CONNECTED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Already connected")
case .ALREADY_EXISTS:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Already exists")
case .API_NOT_FOUND:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: API not found")
case .AT_END:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: At end")
case .BAD_ADDRESS:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Bad address")
case .ACCESS_DENIED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Access denied")
case .ALREADY_IN_USE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Already in use")
case .BACKEND_NOT_ENABLED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Backend not enabled")
case .BAD_MESSAGE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Bad message")
case .BAD_PROTOCOL:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Bad protocol")
case .BAD_PIPE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Bad pipe")
case .BAD_SEEK:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Bad seek")
case .BUSY:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Busy")
case .CANCELLED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Cancelled")
case .CONNECTION_REFUSED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Connection refused")
case .CONNECTION_RESET:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Connection reset")
case .CRC_MISMATCH:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: CRC mismatch")
case .DEADLOCK:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Deadlock")
case .DEVICE_ALREADY_INITIALIZED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Device already initialized")
case .DEVICE_NOT_INITIALIZED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Device not initialized")
case .DEVICE_NOT_STARTED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Device not started")
case .DEVICE_NOT_STOPPED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Device not stopped")
case .DEVICE_TYPE_NOT_SUPPORTED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Device type not supported")
case .DIRECTORY_NOT_EMPTY:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Directory not empty")
case .DOES_NOT_EXIST:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Does not exist")
case .ERROR:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Error")
case .FAILED_TO_INIT_BACKEND:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Failed to init backend")
case .FAILED_TO_OPEN_BACKEND_DEVICE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Failed to open backend device")
case .FAILED_TO_START_BACKEND_DEVICE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Failed to start backend device")
case .FAILED_TO_STOP_BACKEND_DEVICE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Failed to stop backend device")
case .FORMAT_NOT_SUPPORTED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Format not supported")
case .IN_PROGRESS:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: In progress")
case .INVALID_ARGS:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Invalid args")
case .INVALID_OPERATION:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Invalid operation")
case .INTERRUPT:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Interrupt")
case .INVALID_DATA:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Invalid data")
case .INVALID_FILE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Invalid file")
case .INVALID_DEVICE_CONFIG:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Invalid device config")
case .IO_ERROR:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: IO error")
case .IS_DIRECTORY:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Is directory")
case .LOOP:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Loop")
case .MEMORY_ALREADY_MAPPED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Memory already mapped")
case .NAME_TOO_LONG:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Name too long")
case .NO_DEVICE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: No device")
case .NO_ADDRESS:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: No address")
case .NO_DATA_AVAILABLE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: No data available")
case .NO_BACKEND:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: No backend")
case .NO_HOST:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: No host")
case .NO_MESSAGE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: No message")
case .NO_NETWORK:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: No network")
case .NO_SPACE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: No space")
case .NOT_CONNECTED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Not connected")
case .NOT_IMPLEMENTED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Not implemented")
case .NOT_DIRECTORY:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Not directory")
case .NOT_SOCKET:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Not socket")
case .NOT_UNIQUE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Not unique")
case .OUT_OF_MEMORY:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Out of memory")
case .OUT_OF_RANGE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Out of range")
case .PATH_TOO_LONG:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Path too long")
case .PROTOCOL_FAMILY_NOT_SUPPORTED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Protocol family not supported")
case .PROTOCOL_NOT_SUPPORTED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Protocol not supported")
case .PROTOCOL_UNAVAILABLE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Protocol unavailable")
case .SHARE_MODE_NOT_SUPPORTED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Share mode not supported")
case .SOCKET_NOT_SUPPORTED:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Socket not supported")
case .TIMEOUT:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Timeout")
case .TOO_BIG:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Too big")
case .TOO_MANY_LINKS:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Too many links")
case .TOO_MANY_OPEN_FILES:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Too many open files")
case .UNAVAILABLE:
raylib.TraceLog(raylib.TraceLogLevel.ERROR, "MINIAUDIO: Unavailable")
}
return false
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment