summaryrefslogtreecommitdiffstats
path: root/src/audio/oal
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio/oal')
-rw-r--r--src/audio/oal/aldlist.cpp14
-rw-r--r--src/audio/oal/aldlist.h4
-rw-r--r--src/audio/oal/channel.cpp6
-rw-r--r--src/audio/oal/stream.cpp27
4 files changed, 39 insertions, 12 deletions
diff --git a/src/audio/oal/aldlist.cpp b/src/audio/oal/aldlist.cpp
index 2c2f13a8..458b7c80 100644
--- a/src/audio/oal/aldlist.cpp
+++ b/src/audio/oal/aldlist.cpp
@@ -23,6 +23,12 @@
*/
#include "aldlist.h"
+
+#ifndef _WIN32
+#define _stricmp strcasecmp
+#define _strnicmp strncasecmp
+#endif
+
#ifdef AUDIO_OAL
/*
* Init call
@@ -47,7 +53,7 @@ ALDeviceList::ALDeviceList()
index = 0;
// go through device list (each device terminated with a single NULL, list terminated with double NULL)
- while (*devices != NULL) {
+ while (*devices != '\0') {
if (strcmp(defaultDeviceName, devices) == 0) {
defaultDeviceIndex = index;
}
@@ -67,7 +73,7 @@ ALDeviceList::ALDeviceList()
if ((bNewName) && (actualDeviceName != NULL) && (strlen(actualDeviceName) > 0)) {
memset(&ALDeviceInfo, 0, sizeof(ALDEVICEINFO));
ALDeviceInfo.bSelected = true;
- ALDeviceInfo.strDeviceName = std::string(actualDeviceName, strlen(actualDeviceName));
+ ALDeviceInfo.strDeviceName.assign(actualDeviceName, strlen(actualDeviceName));
alcGetIntegerv(device, ALC_MAJOR_VERSION, sizeof(int), &ALDeviceInfo.iMajorVersion);
alcGetIntegerv(device, ALC_MINOR_VERSION, sizeof(int), &ALDeviceInfo.iMinorVersion);
@@ -180,7 +186,7 @@ unsigned int ALDeviceList::GetMaxNumSources(int index)
/*
* Checks if the extension is supported on the given device
*/
-bool ALDeviceList::IsExtensionSupported(int index, char *szExtName)
+bool ALDeviceList::IsExtensionSupported(int index, const char *szExtName)
{
bool bReturn = false;
@@ -326,4 +332,4 @@ unsigned int ALDeviceList::GetMaxNumSources()
return iSourceCount;
}
-#endif \ No newline at end of file
+#endif
diff --git a/src/audio/oal/aldlist.h b/src/audio/oal/aldlist.h
index b8f1b31a..694c9d01 100644
--- a/src/audio/oal/aldlist.h
+++ b/src/audio/oal/aldlist.h
@@ -32,7 +32,7 @@ public:
char *GetDeviceName(int index);
void GetDeviceVersion(int index, int *major, int *minor);
unsigned int GetMaxNumSources(int index);
- bool IsExtensionSupported(int index, char *szExtName);
+ bool IsExtensionSupported(int index, const char *szExtName);
int GetDefaultDevice();
void FilterDevicesMinVer(int major, int minor);
void FilterDevicesMaxVer(int major, int minor);
@@ -46,4 +46,4 @@ private:
};
#endif
-#endif // ALDEVICELIST_H \ No newline at end of file
+#endif // ALDEVICELIST_H
diff --git a/src/audio/oal/channel.cpp b/src/audio/oal/channel.cpp
index 7742a06a..6fe1d856 100644
--- a/src/audio/oal/channel.cpp
+++ b/src/audio/oal/channel.cpp
@@ -4,6 +4,10 @@
#include "common.h"
#include "sampman.h"
+#ifndef _WIN32
+#include <float.h>
+#endif
+
extern bool IsFXSupported();
CChannel::CChannel()
@@ -207,4 +211,4 @@ void CChannel::UpdateReverb(ALuint slot)
alSource3i(alSource, AL_AUXILIARY_SEND_FILTER, slot, 0, alFilter);
}
-#endif \ No newline at end of file
+#endif
diff --git a/src/audio/oal/stream.cpp b/src/audio/oal/stream.cpp
index 9bca0546..5a9c7d7d 100644
--- a/src/audio/oal/stream.cpp
+++ b/src/audio/oal/stream.cpp
@@ -4,13 +4,15 @@
#include "common.h"
#include "sampman.h"
-typedef long ssize_t;
-
#include <sndfile.h>
#include <mpg123.h>
-
+#ifdef _WIN32
+typedef long ssize_t;
#pragma comment( lib, "libsndfile-1.lib" )
#pragma comment( lib, "libmpg123.lib" )
+#else
+#include "crossplatform.h"
+#endif
class CSndFile : public IDecoder
{
@@ -192,7 +194,22 @@ CStream::CStream(char *filename, ALuint &source, ALuint (&buffers)[NUM_STREAMBUF
m_nPosBeforeReset(0)
{
- strcpy(m_aFilename, filename);
+// Be case-insensitive on linux (from https://github.com/OneSadCookie/fcaseopen/)
+#if !defined(_WIN32)
+ FILE *test = fopen(filename, "r");
+ if (!test) {
+ char *r = (char*)alloca(strlen(filename) + 2);
+ if (casepath(filename, r))
+ {
+ strcpy(m_aFilename, r);
+ }
+ } else {
+ fclose(test);
+#else
+ {
+#endif
+ strcpy(m_aFilename, filename);
+ }
DEV("Stream %s\n", m_aFilename);
@@ -517,4 +534,4 @@ void CStream::ProviderTerm()
ClearBuffers();
}
-#endif \ No newline at end of file
+#endif