summaryrefslogtreecommitdiff
path: root/Source/Core/AudioCommon
diff options
context:
space:
mode:
authorhyperiris <hyperiris@gmail.com>2009-03-27 15:24:22 +0000
committerhyperiris <hyperiris@gmail.com>2009-03-27 15:24:22 +0000
commit13ddd0648bec01dd2819d5b84a16b7aac92bc439 (patch)
tree3bd2f30bfbed083634d1e1236c98132cd6b01f51 /Source/Core/AudioCommon
parenta5db816490e8ae95f4aa64256e92018b509e0476 (diff)
yeah, start OpenAL sound output
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2764 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/AudioCommon')
-rw-r--r--Source/Core/AudioCommon/AudioCommon.vcproj65
-rw-r--r--Source/Core/AudioCommon/Src/AudioCommon.cpp6
-rw-r--r--Source/Core/AudioCommon/Src/OpenALStream.cpp47
-rw-r--r--Source/Core/AudioCommon/Src/OpenALStream.h52
4 files changed, 142 insertions, 28 deletions
diff --git a/Source/Core/AudioCommon/AudioCommon.vcproj b/Source/Core/AudioCommon/AudioCommon.vcproj
index 22724ae219..72fa38fd81 100644
--- a/Source/Core/AudioCommon/AudioCommon.vcproj
+++ b/Source/Core/AudioCommon/AudioCommon.vcproj
@@ -409,6 +409,42 @@
<References>
</References>
<Files>
+ <Filter
+ Name="StreamOut"
+ >
+ <File
+ RelativePath=".\Src\AOSoundStream.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\Src\AOSoundStream.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Src\DSoundStream.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\Src\DSoundStream.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Src\NullSoundStream.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Src\OpenALStream.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\Src\OpenALStream.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Src\SoundStream.h"
+ >
+ </File>
+ </Filter>
<File
RelativePath=".\Src\AudioCommon.cpp"
>
@@ -417,40 +453,15 @@
RelativePath=".\Src\AudioCommon.h"
>
</File>
- <File
- RelativePath=".\Src\AOSoundStream.cpp"
- >
- </File>
- <File
- RelativePath=".\Src\AOSoundStream.h"
- >
- </File>
-
- <File
- RelativePath=".\Src\DSoundStream.cpp"
- >
- </File>
<File
- RelativePath=".\Src\DSoundStream.h"
+ RelativePath=".\Src\Mixer.cpp"
>
</File>
<File
- RelativePath=".\Src\NullSoundStream.h"
+ RelativePath=".\Src\Mixer.h"
>
</File>
<File
- RelativePath=".\Src\SoundStream.h"
- >
- </File>
- <File
- RelativePath=".\Src\Mixer.h"
- >
- </File>
- <File
- RelativePath=".\Src\Mixer.cpp"
- >
- </File>
- <File
RelativePath=".\Src\WaveFile.cpp"
>
</File>
diff --git a/Source/Core/AudioCommon/Src/AudioCommon.cpp b/Source/Core/AudioCommon/Src/AudioCommon.cpp
index bc3d30c25f..e703e55686 100644
--- a/Source/Core/AudioCommon/Src/AudioCommon.cpp
+++ b/Source/Core/AudioCommon/Src/AudioCommon.cpp
@@ -3,7 +3,7 @@
#include "AOSoundStream.h"
#include "DSoundStream.h"
#include "NullSoundStream.h"
-
+#include "OpenALStream.h"
namespace AudioCommon {
@@ -21,6 +21,10 @@ SoundStream *InitSoundStream(std::string backend, CMixer *mixer) {
if (AOSound::isValid())
soundStream = new AOSound(mixer);
}
+ else if (backend == "OpenAL") {
+ if (OpenALStream::isValid())
+ soundStream = new OpenALStream(mixer);
+ }
else if (backend == "NullSound") {
soundStream = new NullSound(mixer);
}
diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp
new file mode 100644
index 0000000000..2a929a61e9
--- /dev/null
+++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp
@@ -0,0 +1,47 @@
+// Copyright (C) 2003-2009 Dolphin Project.
+
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+
+
+#include "OpenAlStream.h"
+
+#define AUDIO_NUMBUFFERS (4)
+
+
+bool OpenALStream::Start()
+{
+ return false;
+}
+
+void OpenALStream::SoundLoop()
+{
+
+}
+
+void OpenALStream::Stop()
+{
+
+}
+
+void OpenALStream::Update()
+{
+
+}
+
+void OpenALStream::SoundThread()
+{
+
+} \ No newline at end of file
diff --git a/Source/Core/AudioCommon/Src/OpenALStream.h b/Source/Core/AudioCommon/Src/OpenALStream.h
new file mode 100644
index 0000000000..98a51504a9
--- /dev/null
+++ b/Source/Core/AudioCommon/Src/OpenALStream.h
@@ -0,0 +1,52 @@
+// Copyright (C) 2003-2009 Dolphin Project.
+
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+
+#ifndef __OPENALSTREAM_H__
+#define __OPENALSTREAM_H__
+#include "SoundStream.h"
+#include "Thread.h"
+
+//#include <list>
+//using namespace std;
+
+#include "../../../../Externals/OpenAL/al/al.h"
+#include "../../../../Externals/OpenAL/al/alc.h"
+
+// public use
+#define SFX_MAX_SOURCE 1
+
+class OpenALStream: public SoundStream
+{
+public:
+ OpenALStream(CMixer *mixer, void *hWnd = NULL): SoundStream(mixer) {};
+ virtual ~OpenALStream() {};
+
+ virtual bool Start();
+ virtual void SoundLoop();
+ virtual void Stop();
+ static bool isValid() { return true; }
+ virtual bool usesMixer() const { return true; }
+ virtual void Update();
+private:
+ virtual void SoundThread();
+private:
+ Common::Thread *thread;
+ Common::CriticalSection soundCriticalSection;
+ Common::Event soundSyncEvent;
+};
+
+#endif \ No newline at end of file