yeah, start OpenAL sound output

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2764 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hyperiris 2009-03-27 15:24:22 +00:00
parent a5db816490
commit 13ddd0648b
4 changed files with 142 additions and 28 deletions

View File

@ -409,14 +409,9 @@
<References>
</References>
<Files>
<File
RelativePath=".\Src\AudioCommon.cpp"
<Filter
Name="StreamOut"
>
</File>
<File
RelativePath=".\Src\AudioCommon.h"
>
</File>
<File
RelativePath=".\Src\AOSoundStream.cpp"
>
@ -425,7 +420,6 @@
RelativePath=".\Src\AOSoundStream.h"
>
</File>
<File
RelativePath=".\Src\DSoundStream.cpp"
>
@ -439,17 +433,34 @@
>
</File>
<File
RelativePath=".\Src\SoundStream.h"
RelativePath=".\Src\OpenALStream.cpp"
>
</File>
<File
RelativePath=".\Src\Mixer.h"
RelativePath=".\Src\OpenALStream.h"
>
</File>
<File
RelativePath=".\Src\SoundStream.h"
>
</File>
</Filter>
<File
RelativePath=".\Src\AudioCommon.cpp"
>
</File>
<File
RelativePath=".\Src\AudioCommon.h"
>
</File>
<File
RelativePath=".\Src\Mixer.cpp"
>
</File>
<File
RelativePath=".\Src\Mixer.h"
>
</File>
<File
RelativePath=".\Src\WaveFile.cpp"
>

View File

@ -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);
}

View File

@ -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()
{
}

View File

@ -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