Update OpenAL-soft to 1.23.1-bc7cb17.

This commit is contained in:
Miku AuahDark
2024-03-20 11:06:03 +08:00
parent 4a512be715
commit 73a6fc9196
294 changed files with 44342 additions and 40077 deletions
+87 -10
View File
@@ -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)