32 #ifndef ALC_ENUMERATE_ALL_EXT
33 #define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012
34 #define ALC_ALL_DEVICES_SPECIFIER 0x1013
38 #define ALC_EFX_MAJOR_VERSION 0x20001
39 #define ALC_EFX_MINOR_VERSION 0x20002
40 #define ALC_MAX_AUXILIARY_SENDS 0x20003
46 static void printList(
const char *list,
char separator)
49 const char *indent =
" ";
52 if(!list || *list ==
'\0')
54 fprintf(stdout,
"\n%s!!! none !!!\n", indent);
59 next = strchr(list, separator);
65 }
while(*next == separator);
72 fprintf(stdout,
"\n%s", indent);
81 len = fwrite(list, 1, len, stdout);
84 if(!next || *next ==
'\0')
96 if(!list || *list ==
'\0')
97 printf(
" !!! none !!!\n");
99 printf(
" %s\n", list);
100 list += strlen(list) + 1;
101 }
while(*list !=
'\0');
109 printf(
"OpenAL Error: %s (0x%x), @ %d\n",
alGetString(err), err, linenum);
112 #define checkALErrors() checkALErrors(__LINE__)
118 printf(
"ALC Error: %s (0x%x), @ %d\n",
alcGetString(device, err), err, linenum);
121 #define checkALCErrors(x) checkALCErrors((x),__LINE__)
136 printf(
"** Info for device \"%s\" **\n", devname);
141 printf(
"ALC version: %d.%d\n", major, minor);
144 printf(
"ALC extensions:");
155 printf(
"OpenAL extensions:");
162 ALCint major, minor, sends;
163 static const ALchar filters[][32] = {
164 "AL_FILTER_LOWPASS",
"AL_FILTER_HIGHPASS",
"AL_FILTER_BANDPASS",
""
166 char filterNames[] =
"Low-pass,High-pass,Band-pass,";
167 static const ALchar effects[][32] = {
168 "AL_EFFECT_EAXREVERB",
"AL_EFFECT_REVERB",
"AL_EFFECT_CHORUS",
169 "AL_EFFECT_DISTORTION",
"AL_EFFECT_ECHO",
"AL_EFFECT_FLANGER",
170 "AL_EFFECT_FREQUENCY_SHIFTER",
"AL_EFFECT_VOCAL_MORPHER",
171 "AL_EFFECT_PITCH_SHIFTER",
"AL_EFFECT_RING_MODULATOR",
172 "AL_EFFECT_AUTOWAH",
"AL_EFFECT_COMPRESSOR",
"AL_EFFECT_EQUALIZER",
""
174 static const ALchar dedeffects[][64] = {
175 "AL_EFFECT_DEDICATED_DIALOGUE",
176 "AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT",
""
178 char effectNames[] =
"EAX Reverb,Reverb,Chorus,Distortion,Echo,Flanger,"
179 "Frequency Shifter,Vocal Morpher,Pitch Shifter,"
180 "Ring Modulator,Autowah,Compressor,Equalizer,"
181 "Dedicated Dialog,Dedicated LFE,";
187 printf(
"EFX not available\n");
194 printf(
"EFX version: %d.%d\n", major, minor);
197 printf(
"Max auxiliary sends: %d\n", sends);
199 current = filterNames;
200 for(i = 0;filters[
i][0];i++)
202 char *next = strchr(current,
',');
207 memmove(current, next+1, strlen(next));
211 printf(
"Supported filters:");
214 current = effectNames;
215 for(i = 0;effects[
i][0];i++)
217 char *next = strchr(current,
',');
222 memmove(current, next+1, strlen(next));
228 for(i = 0;dedeffects[
i][0];i++)
230 char *next = strchr(current,
',');
235 memmove(current, next+1, strlen(next));
242 for(i = 0;dedeffects[
i][0];i++)
244 char *next = strchr(current,
',');
245 memmove(current, next+1, strlen(next));
248 printf(
"Supported effects:");
252 int main(
int argc,
char *argv[])
257 if(argc > 1 && (strcmp(argv[1],
"--help") == 0 ||
258 strcmp(argv[1],
"-h") == 0))
260 printf(
"Usage: %s [playback device]\n", argv[0]);
264 printf(
"Available playback devices:\n");
269 printf(
"Available capture devices:\n");
273 printf(
"Default playback device: %s\n",
276 printf(
"Default playback device: %s\n",
278 printf(
"Default capture device: %s\n",
286 printf(
"\n!!! Failed to open %s !!!\n\n", ((argc>1) ? argv[1] :
"default device"));
297 printf(
"\n!!! Failed to set a context !!!\n\n");
#define ALC_CAPTURE_DEVICE_SPECIFIER
#define ALC_MINOR_VERSION
GLuint const GLfloat * val
ALC_API ALCvoid ALC_APIENTRY alcGetIntegerv(ALCdevice *device, ALCenum param, ALsizei size, ALCint *data)
int main(int argc, char **argv)
ALC_API ALCboolean ALC_APIENTRY alcMakeContextCurrent(ALCcontext *context)
ALC_API ALCboolean ALC_APIENTRY alcCloseDevice(ALCdevice *Device)
ALC_API const ALCchar *ALC_APIENTRY alcGetString(ALCdevice *Device, ALCenum param)
AL_API ALenum AL_APIENTRY alGetError(void)
#define ALC_EFX_MINOR_VERSION
ALC_API ALCvoid ALC_APIENTRY alcDestroyContext(ALCcontext *context)
static void printALInfo(void)
AL_API ALenum AL_APIENTRY alGetEnumValue(const ALchar *ename)
static void printList(const char *list, char separator)
#define ALC_DEFAULT_DEVICE_SPECIFIER
static void printDeviceList(const char *list)
static void printEFXInfo(ALCdevice *device)
static void printALCInfo(ALCdevice *device)
#define ALC_MAJOR_VERSION
ALC_API ALCenum ALC_APIENTRY alcGetError(ALCdevice *device)
#define ALC_DEVICE_SPECIFIER
ALC_API ALCcontext *ALC_APIENTRY alcCreateContext(ALCdevice *device, const ALCint *attrList)
#define ALC_EFX_MAJOR_VERSION
AL_API const ALchar *AL_APIENTRY alGetString(ALenum param)
#define checkALCErrors(x)
#define ALC_MAX_AUXILIARY_SENDS
#define ALC_ALL_DEVICES_SPECIFIER
#define ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER
ALC_API ALCdevice *ALC_APIENTRY alcOpenDevice(const ALCchar *deviceName)
ALC_API ALCboolean ALC_APIENTRY alcIsExtensionPresent(ALCdevice *device, const ALCchar *extName)
#define ALC_DEFAULT_ALL_DEVICES_SPECIFIER