33
33
static const ALCchar sndio_device[] = "SndIO Default";
37
static void *sndio_handle;
38
#define MAKE_FUNC(x) static typeof(x) * p##x
39
MAKE_FUNC(sio_initpar);
42
MAKE_FUNC(sio_setpar);
43
MAKE_FUNC(sio_getpar);
44
MAKE_FUNC(sio_getcap);
45
MAKE_FUNC(sio_onmove);
51
MAKE_FUNC(sio_pollfd);
52
MAKE_FUNC(sio_revents);
54
MAKE_FUNC(sio_setvol);
57
#define sio_initpar psio_initpar
58
#define sio_open psio_open
59
#define sio_close psio_close
60
#define sio_setpar psio_setpar
61
#define sio_getpar psio_getpar
62
#define sio_getcap psio_getcap
63
#define sio_onmove psio_onmove
64
#define sio_write psio_write
65
#define sio_read psio_read
66
#define sio_start psio_start
67
#define sio_stop psio_stop
68
#define sio_nfds psio_nfds
69
#define sio_pollfd psio_pollfd
70
#define sio_revents psio_revents
71
#define sio_eof psio_eof
72
#define sio_setvol psio_setvol
73
#define sio_onvol psio_onvol
77
36
static ALCboolean sndio_load(void)
82
sndio_handle = LoadLib("libsndio.so.2");
86
#define LOAD_FUNC(f) do { \
87
p##f = GetSymbol(sndio_handle, #f); \
89
CloseLib(sndio_handle); \
90
sndio_handle = NULL; \
94
LOAD_FUNC(sio_initpar);
97
LOAD_FUNC(sio_setpar);
98
LOAD_FUNC(sio_getpar);
99
LOAD_FUNC(sio_getcap);
100
LOAD_FUNC(sio_onmove);
101
LOAD_FUNC(sio_write);
103
LOAD_FUNC(sio_start);
106
LOAD_FUNC(sio_pollfd);
107
LOAD_FUNC(sio_revents);
109
LOAD_FUNC(sio_setvol);
110
LOAD_FUNC(sio_onvol);