summaryrefslogtreecommitdiff
path: root/Source/Core/AudioCommon
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2011-01-31 08:19:27 +0000
committerJordan Woyak <jordan.woyak@gmail.com>2011-01-31 08:19:27 +0000
commit1de40588acd0bfa6d49e3d94fef2cbd6dc09f6e5 (patch)
tree93472097d7916eb4680f3b032286f729abdffd46 /Source/Core/AudioCommon
parent67a4ac0bf67d9299fb19575ccf5fc2034a8da9fd (diff)
Eliminate some trampoline functions.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7015 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/AudioCommon')
-rw-r--r--Source/Core/AudioCommon/Src/AOSoundStream.cpp8
-rw-r--r--Source/Core/AudioCommon/Src/AlsaSoundStream.cpp9
-rw-r--r--Source/Core/AudioCommon/Src/DSoundStream.cpp12
-rw-r--r--Source/Core/AudioCommon/Src/OpenALStream.cpp9
-rw-r--r--Source/Core/AudioCommon/Src/OpenALStream.h2
-rw-r--r--Source/Core/AudioCommon/Src/PulseAudioStream.cpp9
-rw-r--r--Source/Core/AudioCommon/Src/PulseAudioStream.h1
7 files changed, 16 insertions, 34 deletions
diff --git a/Source/Core/AudioCommon/Src/AOSoundStream.cpp b/Source/Core/AudioCommon/Src/AOSoundStream.cpp
index a1bc0e0a76..c857856f1a 100644
--- a/Source/Core/AudioCommon/Src/AOSoundStream.cpp
+++ b/Source/Core/AudioCommon/Src/AOSoundStream.cpp
@@ -15,6 +15,7 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
+#include <functional>
#include <string.h>
#include "AOSoundStream.h"
@@ -54,18 +55,13 @@ void AOSound::SoundLoop()
}
}
-void soundThread(AOSound *aosound)
-{
- aosound->SoundLoop();
-}
-
bool AOSound::Start()
{
memset(realtimeBuffer, 0, sizeof(realtimeBuffer));
soundSyncEvent.Init();
- thread = std::thread(soundThread, this);
+ thread = std::thread(std::mem_fun(&AOSound::SoundLoop), this);
return true;
}
diff --git a/Source/Core/AudioCommon/Src/AlsaSoundStream.cpp b/Source/Core/AudioCommon/Src/AlsaSoundStream.cpp
index 5ad6e45390..76f13b6cb1 100644
--- a/Source/Core/AudioCommon/Src/AlsaSoundStream.cpp
+++ b/Source/Core/AudioCommon/Src/AlsaSoundStream.cpp
@@ -15,6 +15,8 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
+#include <functional>
+
#include "Common.h"
#include "Thread.h"
#include "AlsaSoundStream.h"
@@ -33,14 +35,9 @@ AlsaSound::~AlsaSound()
delete [] mix_buffer;
}
-static void ThreadTrampoline(AlsaSound* args)
-{
- args->SoundLoop();
-}
-
bool AlsaSound::Start()
{
- thread = std::thread(ThreadTrampoline, this);
+ thread = std::thread(std::mem_fun(&AlsaSound::SoundLoop), this);
thread_data = 0;
return true;
}
diff --git a/Source/Core/AudioCommon/Src/DSoundStream.cpp b/Source/Core/AudioCommon/Src/DSoundStream.cpp
index 4823c46732..206685f707 100644
--- a/Source/Core/AudioCommon/Src/DSoundStream.cpp
+++ b/Source/Core/AudioCommon/Src/DSoundStream.cpp
@@ -15,9 +15,12 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
-#include <windows.h>
#include <cmath>
+#include <functional>
+
+#include <windows.h>
#include <dxerr.h>
+
#include "AudioCommon.h"
#include "DSoundStream.h"
@@ -91,11 +94,6 @@ bool DSound::WriteDataToBuffer(DWORD dwOffset, // Our own write
}
// The audio thread.
-void soundThread(DSound* dsound)
-{
- dsound->SoundLoop();
-}
-
void DSound::SoundLoop()
{
currentPos = 0;
@@ -137,7 +135,7 @@ bool DSound::Start()
dsBuffer->Lock(0, bufferSize, (void* *)&p1, &num1, 0, 0, 0);
memset(p1, 0, num1);
dsBuffer->Unlock(p1, num1, 0, 0);
- thread = std::thread(soundThread, this);
+ thread = std::thread(std::mem_fun(&DSound::SoundLoop), this);
return true;
}
diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp
index 908f1c0099..5d46763613 100644
--- a/Source/Core/AudioCommon/Src/OpenALStream.cpp
+++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp
@@ -15,6 +15,8 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
+#include <functional>
+
#include "aldlist.h"
#include "OpenALStream.h"
@@ -44,7 +46,7 @@ bool OpenALStream::Start()
if (pContext)
{
alcMakeContextCurrent(pContext);
- thread = std::thread(OpenALStream::ThreadFunc, this);
+ thread = std::thread(std::mem_fun(&OpenALStream::SoundLoop), this);
bReturn = true;
}
else
@@ -121,11 +123,6 @@ void OpenALStream::Clear(bool mute)
}
}
-void OpenALStream::ThreadFunc(OpenALStream* alstream)
-{
- alstream->SoundLoop();
-}
-
void OpenALStream::SoundLoop()
{
ALenum err;
diff --git a/Source/Core/AudioCommon/Src/OpenALStream.h b/Source/Core/AudioCommon/Src/OpenALStream.h
index 7475fcfe83..b6e9253590 100644
--- a/Source/Core/AudioCommon/Src/OpenALStream.h
+++ b/Source/Core/AudioCommon/Src/OpenALStream.h
@@ -58,8 +58,6 @@ public:
virtual bool usesMixer() const { return true; }
virtual void Update();
- static void ThreadFunc(OpenALStream* args);
-
private:
std::thread thread;
Common::EventEx soundSyncEvent;
diff --git a/Source/Core/AudioCommon/Src/PulseAudioStream.cpp b/Source/Core/AudioCommon/Src/PulseAudioStream.cpp
index fd7aa31cfd..19d5d5c298 100644
--- a/Source/Core/AudioCommon/Src/PulseAudioStream.cpp
+++ b/Source/Core/AudioCommon/Src/PulseAudioStream.cpp
@@ -15,6 +15,8 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
+#include <functional>
+
#include "Common.h"
#include "Thread.h"
@@ -35,15 +37,10 @@ PulseAudio::~PulseAudio()
delete [] mix_buffer;
}
-void PulseAudio::ThreadTrampoline(PulseAudio* args)
-{
- args->SoundLoop();
-}
-
bool PulseAudio::Start()
{
thread_running = true;
- thread = std::thread(ThreadTrampoline, this);
+ thread = std::thread(std::mem_fun(&PulseAudio::SoundLoop), this);
return true;
}
diff --git a/Source/Core/AudioCommon/Src/PulseAudioStream.h b/Source/Core/AudioCommon/Src/PulseAudioStream.h
index 522e0ae6bb..f3a5a43e79 100644
--- a/Source/Core/AudioCommon/Src/PulseAudioStream.h
+++ b/Source/Core/AudioCommon/Src/PulseAudioStream.h
@@ -46,7 +46,6 @@ public:
private:
virtual void SoundLoop();
- static void ThreadTrampoline(PulseAudio* args);
bool PulseInit();
void PulseShutdown();
bool Write(const void *data, size_t bytes);