Browse Source

Merge pull request #867 from marauder2k9-torque/OpenalQuickFix

OpenAL Mac
Brian Roberts 3 years ago
parent
commit
964183b7e5

+ 2 - 3
Engine/source/sfx/openal/LoadOAL.h

@@ -28,7 +28,7 @@
 #endif
 
 #if defined(TORQUE_OS_MAC)
-//#define AL_ALEXT_PROTOTYPES true
+#undef AL_ALEXT_PROTOTYPES
 #  include <OpenAL/al.h>
 #  include <OpenAL/alc.h>
 #elif defined(TORQUE_OS_LINUX)
@@ -267,12 +267,11 @@ typedef struct
    LPALGETAUXILIARYEFFECTSLOTIV			alGetAuxiliaryEffectSlotiv;
    LPALGETAUXILIARYEFFECTSLOTF			alGetAuxiliaryEffectSlotf;
    LPALGETAUXILIARYEFFECTSLOTFV			alGetAuxiliaryEffectSlotfv;
-#endif
    LPALGENFILTERS         alGenFilters;
    LPALDELETEFILTERS      alDeleteFilters;
    LPALFILTERI            alFilteri;
-
    LPALCGETSTRINGISOFT alcGetStringiSOFT;
+#endif
 
 } OPENALFNTABLE, *LPOPENALFNTABLE;
 #endif

+ 10 - 4
Engine/source/sfx/openal/aldlist.cpp

@@ -83,17 +83,23 @@ ALDeviceList::ALDeviceList( const OPENALFNTABLE &oalft )
          dMemset(&ALDeviceInfo, 0, sizeof(ALDEVICEINFO));
          ALDeviceInfo.bSelected = true;
          dStrncpy(ALDeviceInfo.strInternalDeviceName, devices, sizeof(ALDeviceInfo.strInternalDeviceName));
-         char* openFind = dStrchr(devices, '(');
+         char deviceExternal[256];
+         dStrcpy(deviceExternal, devices, 256);
+         char* openFind = dStrchr(deviceExternal, '(');
          if (openFind)
          {
-            devices = openFind + 1;
-            char* closeFind = dStrchr(devices, ')');
+            char* deviceName = openFind + 1;
+            char* closeFind = dStrchr(deviceName, ')');
             if (closeFind)
                (*closeFind) = '\0';
 
-            dStrncpy(ALDeviceInfo.strDeviceName, devices, sizeof(ALDeviceInfo.strDeviceName));
+            dStrncpy(ALDeviceInfo.strDeviceName, deviceName, sizeof(ALDeviceInfo.strDeviceName));
 
          }
+         else
+         {
+            dStrncpy(ALDeviceInfo.strDeviceName, devices, sizeof(ALDeviceInfo.strDeviceName));
+         }
 
          vDeviceInfo.push_back(ALDeviceInfo);
       }

+ 3 - 152
Engine/source/sfx/openal/sfxALDevice.cpp

@@ -62,161 +62,13 @@ void SFXALDevice::printALInfo(ALCdevice* device)
   
 }
 
-void SFXALDevice::printHRTFInfo(ALCdevice* device)
-{
-   if (mOpenAL.alcIsExtensionPresent(device, "ALC_SOFT_HRTF") == AL_FALSE)
-   {
-      Con::printf("HRTF Extensions not compatible");
-      return;
-   }
-
-   ALCint numHrtfs;
-
-   mOpenAL.alcGetIntegerv(device, ALC_NUM_HRTF_SPECIFIERS_SOFT, 1, &numHrtfs);
-   if (!numHrtfs)
-      Con::printf("No HRTFs Found");
-   else
-   {
-      Con::printf("Available HRTFs");
-      for (U32 i = 0; i < numHrtfs; ++i)
-      {
-         const ALCchar* name = mOpenAL.alcGetStringiSOFT(device, ALC_HRTF_SPECIFIER_SOFT, i);
-         printf("   %s", name);
-      }
-   }
-
-   U32 err = mOpenAL.alcGetError(device);
-   if (err != ALC_NO_ERROR)
-      Con::errorf("SFXALDevice - Error Retrieving HRTF info: %s", mOpenAL.alcGetString(device, err));
-
-}
-
-void SFXALDevice::getEFXInfo(ALCdevice *device)
-{
-   static const ALint filters[] = {
-        AL_FILTER_LOWPASS, AL_FILTER_HIGHPASS, AL_FILTER_BANDPASS,
-        AL_FILTER_NULL
-   };
-
-   char filterNames[] = "Low-pass,High-pass,Band-pass,";
-   static const ALint effects[] = {
-       AL_EFFECT_EAXREVERB, AL_EFFECT_REVERB, AL_EFFECT_CHORUS,
-       AL_EFFECT_DISTORTION, AL_EFFECT_ECHO, AL_EFFECT_FLANGER,
-       AL_EFFECT_FREQUENCY_SHIFTER, AL_EFFECT_VOCAL_MORPHER,
-       AL_EFFECT_PITCH_SHIFTER, AL_EFFECT_RING_MODULATOR,
-       AL_EFFECT_AUTOWAH, AL_EFFECT_COMPRESSOR, AL_EFFECT_EQUALIZER,
-       AL_EFFECT_NULL
-   };
-   static const ALint dedeffects[] = {
-       AL_EFFECT_DEDICATED_DIALOGUE, AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT,
-       AL_EFFECT_NULL
-   };
-   char effectNames[] = "EAX Reverb,Reverb,Chorus,Distortion,Echo,Flanger,"
-      "Frequency Shifter,Vocal Morpher,Pitch Shifter,Ring Modulator,Autowah,"
-      "Compressor,Equalizer,Dedicated Dialog,Dedicated LFE,";
-
-   ALCint major, minor, sends;
-   ALuint obj;
-
-   char* current;
-   U32 i;
-
-   if (mOpenAL.alcIsExtensionPresent(device, "ALC_EXT_EFX") == AL_FALSE)
-   {
-      Con::printf("SFXALDevice - EFX Not available.");
-      return;
-   }
-
-   mOpenAL.alcGetIntegerv(device, ALC_EFX_MAJOR_VERSION, 1, &major);
-   mOpenAL.alcGetIntegerv(device, ALC_EFX_MINOR_VERSION, 1, &minor);
-   U32 err = mOpenAL.alcGetError(device);
-   if (err != ALC_NO_ERROR)
-      Con::errorf("SFXALDevice - Error Retrieving EFX Version: %s", mOpenAL.alcGetString(device, err));
-   else
-   {
-      Con::printf("| EFX Version: %d.%d", major, minor);
-   }
-
-   mOpenAL.alcGetIntegerv(device, ALC_MAX_AUXILIARY_SENDS, 1, &sends);
-   err = mOpenAL.alcGetError(device);
-   if (err != ALC_NO_ERROR)
-      Con::errorf("SFXALDevice - Error Retrieving Auxiliary Sends: %s", mOpenAL.alcGetString(device, err));
-   else
-   {
-      Con::printf("| Max Aux Sends: %d", sends);
-   }
-
-   mOpenAL.alGenFilters(1, &obj);
-   err = mOpenAL.alcGetError(device);
-   if (err != ALC_NO_ERROR)
-      Con::errorf("SFXALDevice - Error Generating filter: %s", mOpenAL.alcGetString(device, err));
-
-   current = filterNames;
-   for (i = 0; filters[i] != AL_FILTER_NULL; i++)
-   {
-      char* next = dStrchr(current, ',');
-
-      mOpenAL.alFilteri(obj, AL_FILTER_TYPE, filters[i]);
-      if (mOpenAL.alGetError() != AL_NO_ERROR)
-         dMemmove(current, next + 1, strlen(next));
-      else
-         current = next + 1;
-   }
-
-   Con::printf("| Supported Filters: %s", filterNames);
-
-   mOpenAL.alDeleteFilters(1, &obj);
-
-   mOpenAL.alGenEffects(1, &obj);
-   err = mOpenAL.alcGetError(device);
-   if (err != ALC_NO_ERROR)
-      Con::errorf("SFXALDevice - Error Generating effects: %s", mOpenAL.alcGetString(device, err));
-
-   current = effectNames;
-   for (i = 0; effects[i] != AL_EFFECT_NULL; i++)
-   {
-      char* next = dStrchr(current, ',');
-      mOpenAL.alEffecti(obj, AL_FILTER_TYPE, effects[i]);
-      if (mOpenAL.alGetError() != AL_NO_ERROR)
-         dMemmove(current, next + 1, strlen(next));
-      else
-         current = next + 1;
-   }
-
-   if (mOpenAL.alcIsExtensionPresent(device, "ALC_EXT_DEDICATED"))
-   {
-      for (i = 0; dedeffects[i] != AL_EFFECT_NULL; i++)
-      {
-         char* next = dStrchr(current, ',');
-         mOpenAL.alEffecti(obj, AL_FILTER_TYPE, dedeffects[i]);
-         if (mOpenAL.alGetError() != AL_NO_ERROR)
-            dMemmove(current, next + 1, strlen(next));
-         else
-            current = next + 1;
-      }
-   }
-   else
-   {
-      for (i = 0; dedeffects[i] != AL_EFFECT_NULL; i++)
-      {
-         char* next = dStrchr(current, ',');
-         dMemmove(current, next + 1, strlen(next));
-      }
-   }
-
-   Con::printf("| Supported Effects: %s", effectNames);
-
-   mOpenAL.alDeleteEffects(1, &obj);
-}
-
 S32 SFXALDevice::getMaxSources()
 {
-   // Clear AL Error Code
    mOpenAL.alGetError();
-
+   
    ALCint nummono;
    mOpenAL.alcGetIntegerv(mDevice, ALC_MONO_SOURCES, 1, &nummono);
-
+   
    return nummono;
 }
 
@@ -292,8 +144,7 @@ SFXALDevice::SFXALDevice(  SFXProvider *provider,
 #endif
 
    printALInfo(mDevice);
-   printHRTFInfo(mDevice);
-   getEFXInfo(mDevice);
+   
 
    mMaxBuffers = getMaxSources();