diff options
| author | hyperiris <hyperiris@gmail.com> | 2009-03-27 15:24:22 +0000 |
|---|---|---|
| committer | hyperiris <hyperiris@gmail.com> | 2009-03-27 15:24:22 +0000 |
| commit | 13ddd0648bec01dd2819d5b84a16b7aac92bc439 (patch) | |
| tree | 3bd2f30bfbed083634d1e1236c98132cd6b01f51 /Source/Core/AudioCommon | |
| parent | a5db816490e8ae95f4aa64256e92018b509e0476 (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.vcproj | 65 | ||||
| -rw-r--r-- | Source/Core/AudioCommon/Src/AudioCommon.cpp | 6 | ||||
| -rw-r--r-- | Source/Core/AudioCommon/Src/OpenALStream.cpp | 47 | ||||
| -rw-r--r-- | Source/Core/AudioCommon/Src/OpenALStream.h | 52 |
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 |
