#ifndef ALHELPERS_H #define ALHELPERS_H #include "AL/al.h" #ifdef __cplusplus extern "C" { #endif /* Some helper functions to get the name from the format enums. */ const char *FormatName(ALenum type); /* Easy device init/deinit functions. InitAL returns 0 on success. */ int InitAL(char ***argv, int *argc); void CloseAL(void); /* Cross-platform timeget and sleep functions. */ int altime_get(void); void al_nssleep(unsigned long nsec); /* C doesn't allow casting between function and non-function pointer types, so * with C99 we need to use a union to reinterpret the pointer type. Pre-C99 * still needs to use a normal cast and live with the warning (C++ is fine with * a regular reinterpret_cast). */ #if __STDC_VERSION__ >= 199901L #define FUNCTION_CAST(T, ptr) (union{void *p; T f;}){ptr}.f #elif defined(__cplusplus) #define FUNCTION_CAST(T, ptr) reinterpret_cast(ptr) #else #define FUNCTION_CAST(T, ptr) (T)(ptr) #endif #ifdef __cplusplus } // extern "C" #endif #endif /* ALHELPERS_H */