mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-04-29 13:28:03 +03:00
52 lines
1.1 KiB
C++
52 lines
1.1 KiB
C++
![]() |
#include "AudioCommon.h"
|
||
|
#include "Mixer.h"
|
||
|
#include "AOSoundStream.h"
|
||
|
#include "DSoundStream.h"
|
||
|
#include "NullSoundStream.h"
|
||
|
|
||
|
|
||
|
namespace AudioCommon {
|
||
|
|
||
|
SoundStream *InitSoundStream(std::string backend, CMixer *mixer) {
|
||
|
|
||
|
if (!mixer) {
|
||
|
mixer = new CMixer();
|
||
|
}
|
||
|
|
||
|
if (backend == "DSound") {
|
||
|
if (DSound::isValid())
|
||
|
soundStream = new DSound(mixer, g_dspInitialize.hWnd);
|
||
|
}
|
||
|
else if (backend == "AOSound") {
|
||
|
if (AOSound::isValid())
|
||
|
soundStream = new AOSound(mixer);
|
||
|
}
|
||
|
else if (backend == "NullSound") {
|
||
|
soundStream = new NullSound(mixer);
|
||
|
}
|
||
|
else {
|
||
|
PanicAlert("Cannot recognize backend %s", backend.c_str());
|
||
|
return NULL;
|
||
|
}
|
||
|
|
||
|
if (soundStream) {
|
||
|
if (!soundStream->Start()) {
|
||
|
PanicAlert("Could not initialize backend %s, falling back to NULL",
|
||
|
backend.c_str());
|
||
|
delete soundStream;
|
||
|
soundStream = new NullSound(mixer);
|
||
|
soundStream->Start();
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
PanicAlert("Sound backend %s is not valid, falling back to NULL",
|
||
|
backend.c_str());
|
||
|
delete soundStream;
|
||
|
soundStream = new NullSound(mixer);
|
||
|
soundStream->Start();
|
||
|
}
|
||
|
return soundStream;
|
||
|
}
|
||
|
|
||
|
} // Namespace
|