summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/audio/DMAudio.cpp29
-rw-r--r--src/audio/DMAudio.h4
-rw-r--r--src/core/Game.cpp29
3 files changed, 26 insertions, 36 deletions
diff --git a/src/audio/DMAudio.cpp b/src/audio/DMAudio.cpp
index 74968e0d..b0d5745c 100644
--- a/src/audio/DMAudio.cpp
+++ b/src/audio/DMAudio.cpp
@@ -113,33 +113,6 @@ cDMAudio::Get3DProviderName(uint8 id)
return AudioManager.Get3DProviderName(id);
}
-int8 cDMAudio::AutoDetect3DProviders(void)
-{
- for ( int32 i = 0; i < GetNum3DProvidersAvailable(); i++ )
- {
- wchar buff[64];
-
-#ifdef AUDIO_OAL
- if (defaultProvider >= 0 && defaultProvider < GetNum3DProvidersAvailable()) {
- return i;
- }
-#endif
- char *name = Get3DProviderName(i);
- AsciiToUnicode(name, buff);
- char *providername = UnicodeToAscii(buff);
- strupr(providername);
-#if defined(AUDIO_MSS)
- if ( !strcmp(providername, "MILES FAST 2D POSITIONAL AUDIO") )
- return i;
-#elif defined(AUDIO_OAL)
- if ( !strcmp(providername, "OPENAL SOFT") )
- return i;
-#endif
- }
-
- return -1;
-}
-
int8
cDMAudio::GetCurrent3DProviderIndex(void)
{
@@ -350,7 +323,7 @@ cDMAudio::SetRadioInCar(uint32 radio)
}
void
-cDMAudio::SetRadioChannel(int8 radio, int32 pos)
+cDMAudio::SetRadioChannel(uint8 radio, int32 pos)
{
MusicManager.SetRadioChannelByScript(radio, pos);
}
diff --git a/src/audio/DMAudio.h b/src/audio/DMAudio.h
index bb95f303..3e6d5603 100644
--- a/src/audio/DMAudio.h
+++ b/src/audio/DMAudio.h
@@ -35,8 +35,6 @@ public:
uint8 GetNum3DProvidersAvailable(void);
char *Get3DProviderName(uint8 id);
- int8 AutoDetect3DProviders(void);
-
int8 GetCurrent3DProviderIndex(void);
int8 SetCurrent3DProvider(uint8 which);
@@ -86,6 +84,6 @@ public:
uint8 GetRadioInCar(void);
void SetRadioInCar(uint32 radio);
- void SetRadioChannel(int8 radio, int32 pos);
+ void SetRadioChannel(uint8 radio, int32 pos);
};
extern cDMAudio DMAudio;
diff --git a/src/core/Game.cpp b/src/core/Game.cpp
index 93f0d1b0..1be62611 100644
--- a/src/core/Game.cpp
+++ b/src/core/Game.cpp
@@ -277,12 +277,31 @@ bool CGame::InitialiseOnceAfterRW(void)
if ( DMAudio.GetNum3DProvidersAvailable() == 0 )
FrontEndMenuManager.m_nPrefsAudio3DProviderIndex = -1;
- if ( FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -99 || FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -2 )
- {
+ if ( FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -99 || FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -2 ) {
CMenuManager::m_PrefsSpeakers = 0;
- int8 provider = DMAudio.AutoDetect3DProviders();
- if ( provider != -1 )
- FrontEndMenuManager.m_nPrefsAudio3DProviderIndex = provider;
+ int32 i;
+ for (i = 0; i < DMAudio.GetNum3DProvidersAvailable(); i++) {
+ wchar buff[64];
+
+#ifdef AUDIO_OAL
+ extern int defaultProvider;
+ if (defaultProvider >= 0 && defaultProvider < DMAudio.GetNum3DProvidersAvailable())
+ break;
+#endif
+ char *name = DMAudio.Get3DProviderName(i);
+ AsciiToUnicode(name, buff);
+ char *providername = UnicodeToAscii(buff);
+ strupr(providername);
+#if defined(AUDIO_MSS)
+ if (strcmp(providername, "MILES FAST 2D POSITIONAL AUDIO") == 0)
+ break;
+#elif defined(AUDIO_OAL)
+ if (strcmp(providername, "OPENAL SOFT") == 0)
+ break;
+#endif
+ }
+
+ FrontEndMenuManager.m_nPrefsAudio3DProviderIndex = i;
}
DMAudio.SetCurrent3DProvider(FrontEndMenuManager.m_nPrefsAudio3DProviderIndex);