diff --git a/Source/Core/AudioCommon/AudioCommon.vcproj b/Source/Core/AudioCommon/AudioCommon.vcproj
index ee39204101..05d33b9aee 100644
--- a/Source/Core/AudioCommon/AudioCommon.vcproj
+++ b/Source/Core/AudioCommon/AudioCommon.vcproj
@@ -453,6 +453,14 @@
RelativePath=".\Src\AudioCommon.h"
>
+
+
+
+
diff --git a/Source/Core/AudioCommon/Src/AudioCommon.cpp b/Source/Core/AudioCommon/Src/AudioCommon.cpp
index 713d617e0f..8e25561a5d 100644
--- a/Source/Core/AudioCommon/Src/AudioCommon.cpp
+++ b/Source/Core/AudioCommon/Src/AudioCommon.cpp
@@ -24,19 +24,28 @@
namespace AudioCommon
{
- SoundStream *InitSoundStream(std::string backend, CMixer *mixer)
+ SoundStream *InitSoundStream(CMixer *mixer)
{
if (!mixer)
mixer = new CMixer();
-
+ std::string backend = ac_Config.sBackend;
if (backend == BACKEND_DIRECTSOUND && DSound::isValid()) soundStream = new DSound(mixer, g_dspInitialize.hWnd);
if (backend == BACKEND_AOSOUND && AOSound::isValid()) soundStream = new AOSound(mixer);
if (backend == BACKEND_OPENAL && OpenALStream::isValid()) soundStream = new OpenALStream(mixer);
if (backend == BACKEND_NULL && NullSound::isValid()) soundStream = new NullSound(mixer);
if (soundStream != NULL) {
- if (soundStream->Start())
+ ac_Config.Update();
+ if (soundStream->Start()) {
+ // Start the sound recording
+ /*
+ if (ac_Config.record) {
+ soundStream->StartLogAudio(FULL_DUMP_DIR g_Config.recordFile);
+ }
+ */
+
return soundStream;
+ }
PanicAlert("Could not initialize backend %s, falling back to NULL", backend.c_str());
}
@@ -45,7 +54,7 @@ namespace AudioCommon
delete soundStream;
soundStream = new NullSound(mixer);
soundStream->Start();
-
+
return NULL;
}
diff --git a/Source/Core/AudioCommon/Src/AudioCommon.h b/Source/Core/AudioCommon/Src/AudioCommon.h
index 10451a8743..ba0a1a7e87 100644
--- a/Source/Core/AudioCommon/Src/AudioCommon.h
+++ b/Source/Core/AudioCommon/Src/AudioCommon.h
@@ -19,25 +19,22 @@
#define _AUDIO_COMMON_H_
#include "Common.h"
+#include "AudioCommonConfig.h"
#include "../../../PluginSpecs/pluginspecs_dsp.h"
#include "SoundStream.h"
+
class CMixer;
extern DSPInitialize g_dspInitialize;
extern SoundStream *soundStream;
+extern AudioCommonConfig ac_Config;
namespace AudioCommon
{
- SoundStream *InitSoundStream(std::string backend, CMixer *mixer = NULL);
+ SoundStream *InitSoundStream(CMixer *mixer = NULL);
void ShutdownSoundStream();
std::vector GetSoundBackends();
-
- // Backend Types
- #define BACKEND_DIRECTSOUND "DSound"
- #define BACKEND_AOSOUND "AOSound"
- #define BACKEND_OPENAL "OpenAL"
- #define BACKEND_NULL "NullSound"
}
#endif // _AUDIO_COMMON_H_
diff --git a/Source/Core/AudioCommon/Src/AudioCommonConfig.cpp b/Source/Core/AudioCommon/Src/AudioCommonConfig.cpp
new file mode 100644
index 0000000000..476918771e
--- /dev/null
+++ b/Source/Core/AudioCommon/Src/AudioCommonConfig.cpp
@@ -0,0 +1,29 @@
+#include "AudioCommon.h"
+
+AudioCommonConfig ac_Config;
+
+// Load from given file
+void AudioCommonConfig::Load(IniFile &file) {
+ file.Get("Config", "EnableDTKMusic", &m_EnableDTKMusic, true);
+ file.Get("Config", "EnableThrottle", &m_EnableThrottle, true);
+#ifdef _WIN32
+ file.Get("Config", "Backend", &sBackend, "DSound");
+#else
+ file.Get("Config", "Backend", &sBackend, "AOSound");
+#endif
+}
+
+// Set the values for the file
+void AudioCommonConfig::Set(IniFile &file) {
+ file.Set("Config", "EnableDTKMusic", m_EnableDTKMusic);
+ file.Set("Config", "EnableThrottle", m_EnableThrottle);
+ file.Set("Config", "Backend", sBackend.c_str());
+}
+
+// Update according to the values (stream/mixer)
+void AudioCommonConfig::Update() {
+ if (soundStream) {
+ soundStream->GetMixer()->SetThrottle(m_EnableThrottle);
+ soundStream->GetMixer()->SetDTKMusic(m_EnableDTKMusic);
+ }
+}
diff --git a/Source/Core/AudioCommon/Src/AudioCommonConfig.h b/Source/Core/AudioCommon/Src/AudioCommonConfig.h
new file mode 100644
index 0000000000..aeceed2486
--- /dev/null
+++ b/Source/Core/AudioCommon/Src/AudioCommonConfig.h
@@ -0,0 +1,29 @@
+#ifndef _AUDIO_COMMON_CONFIG_H_
+#define _AUDIO_COMMON_CONFIG_H_
+
+#include
+#include "IniFile.h"
+
+// Backend Types
+#define BACKEND_DIRECTSOUND "DSound"
+#define BACKEND_AOSOUND "AOSound"
+#define BACKEND_OPENAL "OpenAL"
+#define BACKEND_NULL "NullSound"
+
+struct AudioCommonConfig
+{
+ bool m_EnableDTKMusic;
+ bool m_EnableThrottle;
+ std::string sBackend;
+
+ // Load from given file
+ void Load(IniFile &file);
+
+ // Set the values for the file
+ void Set(IniFile &file);
+
+ // Update according to the values (stream/mixer)
+ void Update();
+};
+
+#endif //AUDIO_COMMON_CONFIG
diff --git a/Source/Core/AudioCommon/Src/Mixer.cpp b/Source/Core/AudioCommon/Src/Mixer.cpp
index 3247e610a0..69bc4699fb 100644
--- a/Source/Core/AudioCommon/Src/Mixer.cpp
+++ b/Source/Core/AudioCommon/Src/Mixer.cpp
@@ -39,6 +39,11 @@ void CMixer::Mix(short *samples, int numSamples)
return;
}
+ // first get the DTK Music
+ if (m_EnableDTKMusic) {
+ g_dspInitialize.pGetAudioStreaming(samples, numSamples);
+ }
+
Premix(samples, numSamples);
push_sync.Enter();
diff --git a/Source/Core/AudioCommon/Src/Mixer.h b/Source/Core/AudioCommon/Src/Mixer.h
index 3d9c2cc31a..e2394da893 100644
--- a/Source/Core/AudioCommon/Src/Mixer.h
+++ b/Source/Core/AudioCommon/Src/Mixer.h
@@ -41,6 +41,7 @@ public:
int GetSampleRate() {return m_sampleRate;}
void SetThrottle(bool use) { m_throttle = use;}
+ void SetDTKMusic(bool use) { m_EnableDTKMusic = use;}
// TODO: do we need this
bool IsHLEReady() { return m_HLEready;}
@@ -56,6 +57,7 @@ protected:
bool m_HLEready;
int m_queueSize;
+ bool m_EnableDTKMusic;
bool m_throttle;
private:
Common::CriticalSection push_sync;
diff --git a/Source/Core/AudioCommon/Src/SConscript b/Source/Core/AudioCommon/Src/SConscript
index cfd1cbe6b7..2f64311a41 100644
--- a/Source/Core/AudioCommon/Src/SConscript
+++ b/Source/Core/AudioCommon/Src/SConscript
@@ -3,9 +3,10 @@
Import('env')
files = [
- 'AOSoundStream.cpp',
- 'OpenALStream.cpp',
- 'WaveFile.cpp',
+ 'AOSoundStream.cpp',
+ 'AudioCommonConfig.cpp',
+ 'OpenALStream.cpp',
+ 'WaveFile.cpp',
'Mixer.cpp',
'AudioCommon.cpp',
]
diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/Config.cpp b/Source/Plugins/Plugin_DSP_HLE/Src/Config.cpp
index 3d96992efc..914880cd56 100644
--- a/Source/Plugins/Plugin_DSP_HLE/Src/Config.cpp
+++ b/Source/Plugins/Plugin_DSP_HLE/Src/Config.cpp
@@ -18,6 +18,7 @@
#include "Common.h"
#include "IniFile.h"
#include "Config.h"
+#include "AudioCommon.h"
CConfig g_Config;
@@ -34,13 +35,7 @@ void CConfig::Load()
IniFile file;
file.Load(FULL_CONFIG_DIR "DSP.ini");
file.Get("Config", "EnableHLEAudio", &m_EnableHLEAudio, true); // Sound Settings
- file.Get("Config", "EnableDTKMusic", &m_EnableDTKMusic, true);
- file.Get("Config", "EnableThrottle", &m_EnableThrottle, true);
-#ifdef _WIN32
- file.Get("Config", "Backend", &sBackend, "DSound");
-#else
- file.Get("Config", "Backend", &sBackend, "AOSound");
-#endif
+ ac_Config.Load(file);
}
void CConfig::Save()
@@ -48,9 +43,7 @@ void CConfig::Save()
IniFile file;
file.Load(FULL_CONFIG_DIR "DSP.ini");
file.Set("Config", "EnableHLEAudio", m_EnableHLEAudio); // Sound Settings
- file.Set("Config", "EnableDTKMusic", m_EnableDTKMusic);
- file.Set("Config", "EnableThrottle", m_EnableThrottle);
- file.Set("Config", "Backend", sBackend.c_str());
-
+ ac_Config.Set(file);
+
file.Save(FULL_CONFIG_DIR "DSP.ini");
}
diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/Config.h b/Source/Plugins/Plugin_DSP_HLE/Src/Config.h
index a255b52c7d..eea67b29ea 100644
--- a/Source/Plugins/Plugin_DSP_HLE/Src/Config.h
+++ b/Source/Plugins/Plugin_DSP_HLE/Src/Config.h
@@ -23,10 +23,7 @@
struct CConfig
{
bool m_EnableHLEAudio;
- bool m_EnableDTKMusic;
- bool m_EnableThrottle;
- std::string sBackend;
-
+
CConfig();
void Load();
diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.cpp b/Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.cpp
index 8384a867d0..104679c4bb 100644
--- a/Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.cpp
+++ b/Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.cpp
@@ -46,8 +46,8 @@ ConfigDialog::ConfigDialog(wxWindow *parent, wxWindowID id, const wxString &titl
// Update values
m_buttonEnableHLEAudio->SetValue(g_Config.m_EnableHLEAudio ? true : false);
- m_buttonEnableDTKMusic->SetValue(g_Config.m_EnableDTKMusic ? true : false);
- m_buttonEnableThrottle->SetValue(g_Config.m_EnableThrottle ? true : false);
+ m_buttonEnableDTKMusic->SetValue(ac_Config.m_EnableDTKMusic ? true : false);
+ m_buttonEnableThrottle->SetValue(ac_Config.m_EnableThrottle ? true : false);
// Add tooltips
m_buttonEnableHLEAudio->SetToolTip(wxT("This is the most common sound type"));
@@ -81,7 +81,7 @@ void ConfigDialog::AddBackend(const char* backend)
{
m_BackendSelection->Append(wxString::FromAscii(backend));
// Update value
- m_BackendSelection->SetValue(wxString::FromAscii(g_Config.sBackend.c_str()));
+ m_BackendSelection->SetValue(wxString::FromAscii(ac_Config.sBackend.c_str()));
}
ConfigDialog::~ConfigDialog()
@@ -91,9 +91,9 @@ ConfigDialog::~ConfigDialog()
void ConfigDialog::SettingsChanged(wxCommandEvent& event)
{
g_Config.m_EnableHLEAudio = m_buttonEnableHLEAudio->GetValue();
- g_Config.m_EnableDTKMusic = m_buttonEnableDTKMusic->GetValue();
- g_Config.m_EnableThrottle = m_buttonEnableThrottle->GetValue();
- g_Config.sBackend = m_BackendSelection->GetValue().mb_str();
+ ac_Config.m_EnableDTKMusic = m_buttonEnableDTKMusic->GetValue();
+ ac_Config.m_EnableThrottle = m_buttonEnableThrottle->GetValue();
+ ac_Config.sBackend = m_BackendSelection->GetValue().mb_str();
g_Config.Save();
if (event.GetId() == wxID_OK)
diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.h b/Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.h
index d0fe6e1466..9aa0da6021 100644
--- a/Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.h
+++ b/Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.h
@@ -22,6 +22,7 @@
#include
#include
#include
+#include "AudioCommon.h"
class ConfigDialog : public wxDialog
{
diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/HLEMixer.cpp b/Source/Plugins/Plugin_DSP_HLE/Src/HLEMixer.cpp
index 5a14b9809f..e3efae0465 100644
--- a/Source/Plugins/Plugin_DSP_HLE/Src/HLEMixer.cpp
+++ b/Source/Plugins/Plugin_DSP_HLE/Src/HLEMixer.cpp
@@ -15,9 +15,9 @@ void HLEMixer::MixUCode(short *samples, int numSamples) {
void HLEMixer::Premix(short *samples, int numSamples) {
// first get the DTK Music
- if (g_Config.m_EnableDTKMusic) {
- g_dspInitialize.pGetAudioStreaming(samples, numSamples);
- }
+ // if (g_Config.m_EnableDTKMusic) {
+ // g_dspInitialize.pGetAudioStreaming(samples, numSamples);
+ // }
MixUCode(samples, numSamples);
}
diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/main.cpp b/Source/Plugins/Plugin_DSP_HLE/Src/main.cpp
index bccece2ec3..6c69ee06a5 100644
--- a/Source/Plugins/Plugin_DSP_HLE/Src/main.cpp
+++ b/Source/Plugins/Plugin_DSP_HLE/Src/main.cpp
@@ -194,16 +194,8 @@ void Initialize(void *init)
CDSPHandler::CreateInstance();
- soundStream = AudioCommon::InitSoundStream(g_Config.sBackend,
- new HLEMixer());
- soundStream->GetMixer()->SetThrottle(g_Config.m_EnableThrottle);
+ soundStream = AudioCommon::InitSoundStream(new HLEMixer());
- // Start the sound recording
- /*
- if (g_Config.record) {
- soundStream->StartLogAudio(FULL_DUMP_DIR g_Config.recordFile);
- }
- */
}
void DSP_StopSoundStream()
diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/Config.cpp b/Source/Plugins/Plugin_DSP_LLE-testing/Src/Config.cpp
index f54f63a721..cce00ef958 100644
--- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/Config.cpp
+++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/Config.cpp
@@ -18,6 +18,8 @@
#include "Common.h"
#include "IniFile.h"
#include "Config.h"
+#include "AudioCommon.h"
+
#define LLE_CONFIG_FILE "DSPLLE.ini"
CConfig g_Config;
@@ -34,20 +36,14 @@ void CConfig::Load()
IniFile file;
file.Load(FULL_CONFIG_DIR LLE_CONFIG_FILE);
- file.Get("Config", "EnableThrottle", &m_EnableThrottle, true);
-#ifdef _WIN32
- file.Get("Config", "Backend", &sBackend, "DSound");
-#else
- file.Get("Config", "Backend", &sBackend, "AOSound");
-#endif
+ ac_Config.Load(file);
}
void CConfig::Save()
{
IniFile file;
file.Load(FULL_CONFIG_DIR LLE_CONFIG_FILE);
- file.Set("Config", "EnableThrottle", m_EnableThrottle);
- file.Set("Config", "Backend", sBackend.c_str());
-
+ ac_Config.Set(file);
+
file.Save(FULL_CONFIG_DIR LLE_CONFIG_FILE);
}
diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/Config.h b/Source/Plugins/Plugin_DSP_LLE-testing/Src/Config.h
index a255b52c7d..07589b94c9 100644
--- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/Config.h
+++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/Config.h
@@ -21,12 +21,7 @@
#include
struct CConfig
-{
- bool m_EnableHLEAudio;
- bool m_EnableDTKMusic;
- bool m_EnableThrottle;
- std::string sBackend;
-
+{
CConfig();
void Load();
diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPConfigDlgLLE.cpp b/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPConfigDlgLLE.cpp
index 8b994def7d..b770377a08 100644
--- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPConfigDlgLLE.cpp
+++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPConfigDlgLLE.cpp
@@ -21,6 +21,7 @@
BEGIN_EVENT_TABLE(DSPConfigDialogLLE, wxDialog)
EVT_BUTTON(wxID_OK, DSPConfigDialogLLE::SettingsChanged)
+EVT_CHECKBOX(ID_ENABLE_DTK_MUSIC, DSPConfigDialogLLE::SettingsChanged)
EVT_CHECKBOX(ID_ENABLE_THROTTLE, DSPConfigDialogLLE::SettingsChanged)
END_EVENT_TABLE()
@@ -36,14 +37,17 @@ DSPConfigDialogLLE::DSPConfigDialogLLE(wxWindow *parent, wxWindowID id, const wx
m_OK = new wxButton(this, wxID_OK, wxT("OK"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
// Create items
+ m_buttonEnableDTKMusic = new wxCheckBox(this, ID_ENABLE_DTK_MUSIC, wxT("Enable DTK Music"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
m_buttonEnableThrottle = new wxCheckBox(this, ID_ENABLE_THROTTLE, wxT("Enable Other Audio (Throttle)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
wxStaticText *BackendText = new wxStaticText(this, wxID_ANY, wxT("Audio Backend"), wxDefaultPosition, wxDefaultSize, 0);
m_BackendSelection = new wxComboBox(this, ID_BACKEND, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxArrayBackends, wxCB_READONLY, wxDefaultValidator);
// Update values
- m_buttonEnableThrottle->SetValue(g_Config.m_EnableThrottle ? true : false);
+ m_buttonEnableDTKMusic->SetValue(ac_Config.m_EnableDTKMusic ? true : false);
+ m_buttonEnableThrottle->SetValue(ac_Config.m_EnableThrottle ? true : false);
// Add tooltips
+ m_buttonEnableDTKMusic->SetToolTip(wxT("This is sometimes used to play music tracks from the disc"));
m_buttonEnableThrottle->SetToolTip(wxT("This is sometimes used together with pre-rendered movies.\n"
"Disabling this also disables the speed throttle which this causes,\n"
"meaning that there will be no upper limit on your FPS."));
@@ -52,6 +56,7 @@ DSPConfigDialogLLE::DSPConfigDialogLLE(wxWindow *parent, wxWindowID id, const wx
// Create sizer and add items to dialog
wxBoxSizer *sMain = new wxBoxSizer(wxVERTICAL);
wxStaticBoxSizer *sbSettings = new wxStaticBoxSizer(wxVERTICAL, this, wxT("Sound Settings"));
+ sbSettings->Add(m_buttonEnableDTKMusic, 0, wxALL, 5);
sbSettings->Add(m_buttonEnableThrottle, 0, wxALL, 5);
wxBoxSizer *sBackend = new wxBoxSizer(wxHORIZONTAL);
sBackend->Add(BackendText, 0, wxALIGN_CENTRE_VERTICAL|wxALL, 5);
@@ -71,7 +76,7 @@ void DSPConfigDialogLLE::AddBackend(const char* backend)
{
m_BackendSelection->Append(wxString::FromAscii(backend));
// Update value
- m_BackendSelection->SetValue(wxString::FromAscii(g_Config.sBackend.c_str()));
+ m_BackendSelection->SetValue(wxString::FromAscii(ac_Config.sBackend.c_str()));
}
DSPConfigDialogLLE::~DSPConfigDialogLLE()
@@ -80,9 +85,12 @@ DSPConfigDialogLLE::~DSPConfigDialogLLE()
void DSPConfigDialogLLE::SettingsChanged(wxCommandEvent& event)
{
- g_Config.m_EnableThrottle = m_buttonEnableThrottle->GetValue();
- g_Config.sBackend = m_BackendSelection->GetValue().mb_str();
+ ac_Config.m_EnableDTKMusic = m_buttonEnableDTKMusic->GetValue();
+ ac_Config.m_EnableThrottle = m_buttonEnableThrottle->GetValue();
+ ac_Config.sBackend = m_BackendSelection->GetValue().mb_str();
+ ac_Config.Update();
g_Config.Save();
+
if (event.GetId() == wxID_OK)
EndModal(wxID_OK);
diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPConfigDlgLLE.h b/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPConfigDlgLLE.h
index feb63022f1..2b43b1628f 100644
--- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPConfigDlgLLE.h
+++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPConfigDlgLLE.h
@@ -22,6 +22,7 @@
#include
#include
#include
+#include "AudioCommon.h"
class DSPConfigDialogLLE : public wxDialog
{
@@ -39,6 +40,7 @@ private:
DECLARE_EVENT_TABLE();
wxButton *m_OK;
+ wxCheckBox *m_buttonEnableDTKMusic;
wxCheckBox *m_buttonEnableThrottle;
wxArrayString wxArrayBackends;
wxComboBox *m_BackendSelection;
@@ -46,6 +48,7 @@ private:
enum
{
wxID_OK,
+ ID_ENABLE_DTK_MUSIC,
ID_ENABLE_THROTTLE,
ID_BACKEND
};
diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/main.cpp b/Source/Plugins/Plugin_DSP_LLE-testing/Src/main.cpp
index d8f55c1ee8..dbda183f6f 100644
--- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/main.cpp
+++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/main.cpp
@@ -201,6 +201,7 @@ void Initialize(void *init)
bCanWork = true;
g_dspInitialize = *(DSPInitialize*)init;
+ g_Config.Load();
gdsp_init();
g_dsp.step_counter = 0;
g_dsp.cpu_ram = g_dspInitialize.pGetMemoryPointer(0);
@@ -224,9 +225,7 @@ void Initialize(void *init)
g_hDSPThread = new Common::Thread(dsp_thread, NULL);
- soundStream = AudioCommon::InitSoundStream(g_Config.sBackend);
-
- soundStream->GetMixer()->SetThrottle(g_Config.m_EnableThrottle);
+ soundStream = AudioCommon::InitSoundStream();
}
void DSP_StopSoundStream()