mirror of
https://github.com/make-42/xyosc
synced 2025-01-18 18:57:10 +01:00
109 lines
4.6 KiB
Go
109 lines
4.6 KiB
Go
package malgo
|
|
|
|
/*
|
|
#include "malgo.h"
|
|
*/
|
|
import "C"
|
|
|
|
// Result type.
|
|
type Result int32
|
|
|
|
func (self Result) Error() string {
|
|
return errTag + C.GoString(C.ma_result_description(C.ma_result(self)))
|
|
}
|
|
|
|
// Errors.
|
|
const (
|
|
errTag = "miniaudio: "
|
|
)
|
|
|
|
var (
|
|
// General errors.
|
|
ErrGeneric = Result(C.MA_ERROR)
|
|
ErrInvalidArgs = Result(C.MA_INVALID_ARGS)
|
|
ErrInvalidOperation = Result(C.MA_INVALID_OPERATION)
|
|
ErrOutOfMemory = Result(C.MA_OUT_OF_MEMORY)
|
|
ErrOutOfRange = Result(C.MA_OUT_OF_RANGE)
|
|
ErrAccessDenied = Result(C.MA_ACCESS_DENIED)
|
|
ErrDoesNotExist = Result(C.MA_DOES_NOT_EXIST)
|
|
ErrAlreadyExists = Result(C.MA_ALREADY_EXISTS)
|
|
ErrTooManyOpenFiles = Result(C.MA_TOO_MANY_OPEN_FILES)
|
|
ErrInvalidFile = Result(C.MA_INVALID_FILE)
|
|
ErrTooBig = Result(C.MA_TOO_BIG)
|
|
ErrPathTooLong = Result(C.MA_PATH_TOO_LONG)
|
|
ErrNameTooLong = Result(C.MA_NAME_TOO_LONG)
|
|
ErrNotDirectory = Result(C.MA_NOT_DIRECTORY)
|
|
ErrIsDirectory = Result(C.MA_IS_DIRECTORY)
|
|
ErrDirectoryNotEmpty = Result(C.MA_DIRECTORY_NOT_EMPTY)
|
|
ErrAtEnd = Result(C.MA_AT_END)
|
|
ErrNoSpace = Result(C.MA_NO_SPACE)
|
|
ErrBusy = Result(C.MA_BUSY)
|
|
ErrIO = Result(C.MA_IO_ERROR)
|
|
ErrInterrupt = Result(C.MA_INTERRUPT)
|
|
ErrUnavailable = Result(C.MA_UNAVAILABLE)
|
|
ErrAlreadyInUse = Result(C.MA_ALREADY_IN_USE)
|
|
ErrBadAddress = Result(C.MA_BAD_ADDRESS)
|
|
ErrBadSeek = Result(C.MA_BAD_SEEK)
|
|
ErrBadPipe = Result(C.MA_BAD_PIPE)
|
|
ErrDeadlock = Result(C.MA_DEADLOCK)
|
|
ErrTooManyLinks = Result(C.MA_TOO_MANY_LINKS)
|
|
ErrNotImplemented = Result(C.MA_NOT_IMPLEMENTED)
|
|
ErrNoMessage = Result(C.MA_NO_MESSAGE)
|
|
ErrBadMessage = Result(C.MA_BAD_MESSAGE)
|
|
ErrNoDataAvailable = Result(C.MA_NO_DATA_AVAILABLE)
|
|
ErrInvalidData = Result(C.MA_INVALID_DATA)
|
|
ErrTimeout = Result(C.MA_TIMEOUT)
|
|
ErrNetwork = Result(C.MA_NO_NETWORK)
|
|
ErrNotUnique = Result(C.MA_NOT_UNIQUE)
|
|
ErrNotSocket = Result(C.MA_NOT_SOCKET)
|
|
ErrNoAddress = Result(C.MA_NO_ADDRESS)
|
|
ErrBadProtocol = Result(C.MA_BAD_PROTOCOL)
|
|
ErrProtocolUnavailable = Result(C.MA_PROTOCOL_UNAVAILABLE)
|
|
ErrProtocolNotSupported = Result(C.MA_PROTOCOL_NOT_SUPPORTED)
|
|
ErrProtocolFamilyNotSupported = Result(C.MA_PROTOCOL_FAMILY_NOT_SUPPORTED)
|
|
ErrAddressFamilyNotSupported = Result(C.MA_ADDRESS_FAMILY_NOT_SUPPORTED)
|
|
ErrSocketNotSupported = Result(C.MA_SOCKET_NOT_SUPPORTED)
|
|
ErrConnectionReset = Result(C.MA_CONNECTION_RESET)
|
|
ErrAlreadyConnected = Result(C.MA_ALREADY_CONNECTED)
|
|
ErrNotConnected = Result(C.MA_NOT_CONNECTED)
|
|
ErrConnectionRefused = Result(C.MA_CONNECTION_REFUSED)
|
|
ErrNoHost = Result(C.MA_NO_HOST)
|
|
ErrInProgress = Result(C.MA_IN_PROGRESS)
|
|
ErrCancelled = Result(C.MA_CANCELLED)
|
|
ErrMemoryAlreadyMapped = Result(C.MA_MEMORY_ALREADY_MAPPED)
|
|
|
|
// General miniaudio-specific errors.
|
|
ErrFormatNotSupported = Result(C.MA_FORMAT_NOT_SUPPORTED)
|
|
ErrDeviceTypeNotSupported = Result(C.MA_DEVICE_TYPE_NOT_SUPPORTED)
|
|
ErrShareModeNotSupported = Result(C.MA_SHARE_MODE_NOT_SUPPORTED)
|
|
ErrNoBackend = Result(C.MA_NO_BACKEND)
|
|
ErrNoDevice = Result(C.MA_NO_DEVICE)
|
|
ErrAPINotFound = Result(C.MA_API_NOT_FOUND)
|
|
ErrInvalidDeviceConfig = Result(C.MA_INVALID_DEVICE_CONFIG)
|
|
ErrLoop = Result(C.MA_LOOP)
|
|
|
|
// State errors.
|
|
|
|
ErrDeviceNotInitialized = Result(C.MA_DEVICE_NOT_INITIALIZED)
|
|
ErrDeviceAlreadyInitialized = Result(C.MA_DEVICE_ALREADY_INITIALIZED)
|
|
ErrDeviceNotStarted = Result(C.MA_DEVICE_NOT_STARTED)
|
|
ErrDeviceNotStopped = Result(C.MA_DEVICE_NOT_STOPPED)
|
|
|
|
// Operation errors.
|
|
|
|
ErrFailedToInitBackend = Result(C.MA_FAILED_TO_INIT_BACKEND)
|
|
ErrFailedToOpenBackendDevice = Result(C.MA_FAILED_TO_OPEN_BACKEND_DEVICE)
|
|
ErrFailedToStartBackendDevice = Result(C.MA_FAILED_TO_START_BACKEND_DEVICE)
|
|
ErrFailedToStopBackendDevice = Result(C.MA_FAILED_TO_STOP_BACKEND_DEVICE)
|
|
)
|
|
|
|
// errorFromResult returns error for result code.
|
|
func errorFromResult(r C.ma_result) error {
|
|
switch r {
|
|
case C.MA_SUCCESS:
|
|
return nil
|
|
default:
|
|
return Result(r)
|
|
}
|
|
}
|