TRAP LOCAL
CATCH GOTO alut_handle_error
lib$ = "libalut.so"
seq = -1
LABEL alut_import_retry
INCR seq
retry = FALSE
IMPORT "alutInit(long,long)" FROM lib$ TYPE int
IF retry THEN GOTO alut_import_retry
GOTO alut_continue
LABEL alut_handle_error
ERROR = 0
IF seq IS 0 THEN lib$ = "libalut.so.0"
ELSE lib$ = CONCAT$(LEFT$(lib$, INSTRREV(lib$, ".")), STR$(seq))
IF seq < 50 THEN
retry = TRUE
ELSE
PRINT "Alut library not found!"
END
END IF
RESUME
LABEL alut_continue
CATCH RESET
CONST ALUT_API_MAJOR_VERSION = 1
CONST ALUT_API_MINOR_VERSION = 1
CONST ALUT_ERROR_NO_ERROR = 0
CONST ALUT_ERROR_OUT_OF_MEMORY = 0x200
CONST ALUT_ERROR_INVALID_ENUM = 0x201
CONST ALUT_ERROR_INVALID_VALUE = 0x202
CONST ALUT_ERROR_INVALID_OPERATION = 0x203
CONST ALUT_ERROR_NO_CURRENT_CONTEXT = 0x204
CONST ALUT_ERROR_AL_ERROR_ON_ENTRY = 0x205
CONST ALUT_ERROR_ALC_ERROR_ON_ENTRY = 0x206
CONST ALUT_ERROR_OPEN_DEVICE = 0x207
CONST ALUT_ERROR_CLOSE_DEVICE = 0x208
CONST ALUT_ERROR_CREATE_CONTEXT = 0x209
CONST ALUT_ERROR_MAKE_CONTEXT_CURRENT = 0x20A
CONST ALUT_ERROR_DESTROY_CONTEXT = 0x20B
CONST ALUT_ERROR_GEN_BUFFERS = 0x20C
CONST ALUT_ERROR_BUFFER_DATA = 0x20D
CONST ALUT_ERROR_IO_ERROR = 0x20E
CONST ALUT_ERROR_UNSUPPORTED_FILE_TYPE = 0x20F
CONST ALUT_ERROR_UNSUPPORTED_FILE_SUBTYPE = 0x210
CONST ALUT_ERROR_CORRUPT_OR_TRUNCATED_DATA = 0x211
CONST ALUT_WAVEFORM_SINE = 0x100
CONST ALUT_WAVEFORM_SQUARE = 0x101
CONST ALUT_WAVEFORM_SAWTOOTH = 0x102
CONST ALUT_WAVEFORM_WHITENOISE = 0x103
CONST ALUT_WAVEFORM_IMPULSE = 0x104
CONST ALUT_LOADER_BUFFER = 0x300
CONST ALUT_LOADER_MEMORY = 0x301
IMPORT "alutInitWithoutContext(long,long)" FROM lib$ TYPE int
IMPORT "alutExit(void)" FROM lib$ TYPE int
IMPORT "alutGetError(void)" FROM lib$ TYPE int
IMPORT "alutGetErrorString(int)" FROM lib$ TYPE char* ALIAS alutGetErrorString$
IMPORT "alutCreateBufferFromFile(char*)" FROM lib$ TYPE int
IMPORT "alutCreateBufferFromFileImage(void*,int)" FROM lib$ TYPE int
IMPORT "alutCreateBufferHelloWorld(void)" FROM lib$ TYPE int
IMPORT "alutCreateBufferWaveform(int,float,float,float)" FROM lib$ TYPE int
IMPORT "alutLoadMemoryFromFile(char*,long,long,long)" FROM lib$ TYPE void*
IMPORT "alutLoadMemoryFromFileImage(void*,int,long,long,long)" FROM lib$ TYPE void*
IMPORT "alutLoadMemoryHelloWorld(long,long,long)" FROM lib$ TYPE void*
IMPORT "alutLoadMemoryWaveform(int,float,float,float,long,long,long)" FROM lib$ TYPE void*
IMPORT "alutGetMIMETypes(int)" FROM lib$ TYPE char* ALIAS alutGetMIMETypes$
IMPORT "alutGetMajorVersion(void)" FROM lib$ TYPE int
IMPORT "alutGetMinorVersion (void)" FROM lib$ TYPE int
IMPORT "alutSleep(float)" FROM lib$ TYPE int
alutInit(ADDRESS(argc), ADDRESS(argv))
TRAP SYSTEM