mirror of
https://github.com/love2d/megasource.git
synced 2026-08-19 20:20:11 +02:00
Update OpenAL-soft to 1.23.1-bc7cb17.
This commit is contained in:
@@ -45,11 +45,11 @@
|
||||
#define FUNCTION_CAST(T, ptr) (T)(ptr)
|
||||
#endif
|
||||
|
||||
#define MAX_WIDTH 80
|
||||
enum { MaxWidth = 80 };
|
||||
|
||||
static void printList(const char *list, char separator)
|
||||
{
|
||||
size_t col = MAX_WIDTH, len;
|
||||
size_t col = MaxWidth, len;
|
||||
const char *indent = " ";
|
||||
const char *next;
|
||||
|
||||
@@ -71,7 +71,7 @@ static void printList(const char *list, char separator)
|
||||
else
|
||||
len = strlen(list);
|
||||
|
||||
if(len + col + 2 >= MAX_WIDTH)
|
||||
if(len + col + 2 >= MaxWidth)
|
||||
{
|
||||
fprintf(stdout, "\n%s", indent);
|
||||
col = strlen(indent);
|
||||
@@ -167,11 +167,11 @@ static void printHRTFInfo(ALCdevice *device)
|
||||
|
||||
alcGetIntegerv(device, ALC_NUM_HRTF_SPECIFIERS_SOFT, 1, &num_hrtfs);
|
||||
if(!num_hrtfs)
|
||||
printf("No HRTFs found\n");
|
||||
printf("No HRTF profiles found\n");
|
||||
else
|
||||
{
|
||||
ALCint i;
|
||||
printf("Available HRTFs:\n");
|
||||
printf("Available HRTF profiles:\n");
|
||||
for(i = 0;i < num_hrtfs;++i)
|
||||
{
|
||||
const ALCchar *name = alcGetStringiSOFT(device, ALC_HRTF_SPECIFIER_SOFT, i);
|
||||
@@ -181,8 +181,18 @@ static void printHRTFInfo(ALCdevice *device)
|
||||
checkALCErrors(device);
|
||||
}
|
||||
|
||||
static void printALCIntegerValue(ALCdevice *device, ALCenum enumValue, char* enumName)
|
||||
{
|
||||
ALCint value;
|
||||
alcGetIntegerv(device, enumValue, 1, &value);
|
||||
if (checkALCErrors(device) == ALC_NO_ERROR)
|
||||
printf("%s: %d\n", enumName, value);
|
||||
}
|
||||
|
||||
static void printModeInfo(ALCdevice *device)
|
||||
{
|
||||
ALCint srate = 0;
|
||||
|
||||
if(alcIsExtensionPresent(device, "ALC_SOFT_output_mode"))
|
||||
{
|
||||
const char *modename = "(error)";
|
||||
@@ -203,10 +213,76 @@ static void printModeInfo(ALCdevice *device)
|
||||
case ALC_SURROUND_6_1_SOFT: modename = "6.1 Surround"; break;
|
||||
case ALC_SURROUND_7_1_SOFT: modename = "7.1 Surround"; break;
|
||||
}
|
||||
printf("Output channel mode: %s\n", modename);
|
||||
printf("Device output mode: %s\n", modename);
|
||||
}
|
||||
else
|
||||
printf("Output mode extension not available\n");
|
||||
|
||||
alcGetIntegerv(device, ALC_FREQUENCY, 1, &srate);
|
||||
if(checkALCErrors(device) == ALC_NO_ERROR)
|
||||
printf("Device sample rate: %dhz\n", srate);
|
||||
|
||||
if(alcIsExtensionPresent(device, "ALC_SOFT_HRTF"))
|
||||
{
|
||||
const ALCchar *hrtfname = "(disabled)";
|
||||
ALCint isenabled = 0;
|
||||
|
||||
alcGetIntegerv(device, ALC_HRTF_SOFT, 1, &isenabled);
|
||||
checkALCErrors(device);
|
||||
if(isenabled == ALC_TRUE)
|
||||
{
|
||||
hrtfname = alcGetString(device, ALC_HRTF_SPECIFIER_SOFT);
|
||||
checkALCErrors(device);
|
||||
}
|
||||
printf("Device HRTF profile: %s\n", hrtfname ? hrtfname : "<null>");
|
||||
}
|
||||
|
||||
printALCIntegerValue(device, ALC_MONO_SOURCES, "Device number of mono sources");
|
||||
printALCIntegerValue(device, ALC_STEREO_SOURCES, "Device number of stereo sources");
|
||||
}
|
||||
|
||||
static void printALCSOFTSystemEventIsSupportedResult(LPALCEVENTISSUPPORTEDSOFT alcEventIsSupportedSOFT, ALCenum eventType, ALCenum deviceType)
|
||||
{
|
||||
if (alcEventIsSupportedSOFT == NULL)
|
||||
{
|
||||
printf("ERROR (alcEventIsSupportedSOFT missing)\n");
|
||||
return;
|
||||
}
|
||||
ALCenum supported = alcEventIsSupportedSOFT(eventType, deviceType);
|
||||
if (supported == ALC_EVENT_SUPPORTED_SOFT)
|
||||
{
|
||||
printf("SUPPORTED\n");
|
||||
}
|
||||
else if (supported == ALC_EVENT_NOT_SUPPORTED_SOFT)
|
||||
{
|
||||
printf("NOT SUPPORTED\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("UNEXPECTED VALUE : %d\n", supported);
|
||||
}
|
||||
}
|
||||
|
||||
static void printALC_SOFT_system_event(void)
|
||||
{
|
||||
if(alcIsExtensionPresent(NULL, "ALC_SOFT_system_events"))
|
||||
{
|
||||
LPALCEVENTISSUPPORTEDSOFT alcEventIsSupportedSOFT;
|
||||
alcEventIsSupportedSOFT = FUNCTION_CAST(LPALCEVENTISSUPPORTEDSOFT, alGetProcAddress("alcEventIsSupportedSOFT"));
|
||||
printf("Available events:\n");
|
||||
printf(" ALC_EVENT_TYPE_DEFAULT_DEVICE_CHANGED_SOFT for ALC_PLAYBACK_DEVICE_SOFT - ");
|
||||
printALCSOFTSystemEventIsSupportedResult(alcEventIsSupportedSOFT, ALC_EVENT_TYPE_DEFAULT_DEVICE_CHANGED_SOFT, ALC_PLAYBACK_DEVICE_SOFT);
|
||||
printf(" ALC_EVENT_TYPE_DEFAULT_DEVICE_CHANGED_SOFT for ALC_CAPTURE_DEVICE_SOFT - ");
|
||||
printALCSOFTSystemEventIsSupportedResult(alcEventIsSupportedSOFT, ALC_EVENT_TYPE_DEFAULT_DEVICE_CHANGED_SOFT, ALC_CAPTURE_DEVICE_SOFT);
|
||||
printf(" ALC_EVENT_TYPE_DEVICE_ADDED_SOFT for ALC_PLAYBACK_DEVICE_SOFT - ");
|
||||
printALCSOFTSystemEventIsSupportedResult(alcEventIsSupportedSOFT, ALC_EVENT_TYPE_DEVICE_ADDED_SOFT, ALC_PLAYBACK_DEVICE_SOFT);
|
||||
printf(" ALC_EVENT_TYPE_DEVICE_ADDED_SOFT for ALC_CAPTURE_DEVICE_SOFT - ");
|
||||
printALCSOFTSystemEventIsSupportedResult(alcEventIsSupportedSOFT, ALC_EVENT_TYPE_DEVICE_ADDED_SOFT, ALC_CAPTURE_DEVICE_SOFT);
|
||||
printf(" ALC_EVENT_TYPE_DEVICE_REMOVED_SOFT for ALC_PLAYBACK_DEVICE_SOFT - ");
|
||||
printALCSOFTSystemEventIsSupportedResult(alcEventIsSupportedSOFT, ALC_EVENT_TYPE_DEVICE_REMOVED_SOFT, ALC_PLAYBACK_DEVICE_SOFT);
|
||||
printf(" ALC_EVENT_TYPE_DEVICE_REMOVED_SOFT for ALC_CAPTURE_DEVICE_SOFT - ");
|
||||
printALCSOFTSystemEventIsSupportedResult(alcEventIsSupportedSOFT, ALC_EVENT_TYPE_DEVICE_REMOVED_SOFT, ALC_CAPTURE_DEVICE_SOFT);
|
||||
}
|
||||
}
|
||||
|
||||
static void printALInfo(void)
|
||||
@@ -317,7 +393,7 @@ static void printEFXInfo(ALCdevice *device)
|
||||
|
||||
palFilteri(object, AL_FILTER_TYPE, filters[i]);
|
||||
if(alGetError() != AL_NO_ERROR)
|
||||
memmove(current, next+1, strlen(next));
|
||||
memmove(current, next+1, strlen(next)); /* NOLINT(clang-analyzer-security.insecureAPI.*) */
|
||||
else
|
||||
current = next+1;
|
||||
}
|
||||
@@ -336,7 +412,7 @@ static void printEFXInfo(ALCdevice *device)
|
||||
|
||||
palEffecti(object, AL_EFFECT_TYPE, effects[i]);
|
||||
if(alGetError() != AL_NO_ERROR)
|
||||
memmove(current, next+1, strlen(next));
|
||||
memmove(current, next+1, strlen(next)); /* NOLINT(clang-analyzer-security.insecureAPI.*) */
|
||||
else
|
||||
current = next+1;
|
||||
}
|
||||
@@ -349,7 +425,7 @@ static void printEFXInfo(ALCdevice *device)
|
||||
|
||||
palEffecti(object, AL_EFFECT_TYPE, dedeffects[i]);
|
||||
if(alGetError() != AL_NO_ERROR)
|
||||
memmove(current, next+1, strlen(next));
|
||||
memmove(current, next+1, strlen(next)); /* NOLINT(clang-analyzer-security.insecureAPI.*) */
|
||||
else
|
||||
current = next+1;
|
||||
}
|
||||
@@ -360,7 +436,7 @@ static void printEFXInfo(ALCdevice *device)
|
||||
{
|
||||
char *next = strchr(current, ',');
|
||||
assert(next != NULL);
|
||||
memmove(current, next+1, strlen(next));
|
||||
memmove(current, next+1, strlen(next)); /* NOLINT(clang-analyzer-security.insecureAPI.*) */
|
||||
}
|
||||
}
|
||||
printf("Supported effects:");
|
||||
@@ -414,6 +490,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
printALCInfo(device);
|
||||
printHRTFInfo(device);
|
||||
printALC_SOFT_system_event();
|
||||
|
||||
context = alcCreateContext(device, NULL);
|
||||
if(!context || alcMakeContextCurrent(context) == ALC_FALSE)
|
||||
|
||||
Reference in New Issue
Block a user