|
|
- #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<T>(ptr)
- #else
- #define FUNCTION_CAST(T, ptr) (T)(ptr)
- #endif
-
- #ifdef __cplusplus
- } // extern "C"
- #endif
-
- #endif /* ALHELPERS_H */
|