75ece68dcf
Made cAudio, cAudioCapture, cAudioManager and other classes thread safe. Made cAudioManager use a seperate update thread by default. Added cAudioSleep, a cross-platform sleep() function Moved global defines to cAudioDefines Added defines to disable thread safety or the internal update thread if the user wishes it Updated tutorials to reflect the changes made
52 lines
876 B
C++
52 lines
876 B
C++
#ifndef CAUDIOMUTEX_H
|
|
#define CAUDIOMUTEX_H
|
|
|
|
#include "../include/cAudioDefines.h"
|
|
|
|
#ifdef CAUDIO_MAKE_THREAD_SAFE
|
|
#ifdef _WIN32
|
|
#include <windows.h> //Basic windows include
|
|
#else
|
|
#include <pthread.h> //Assumed linux system
|
|
#endif
|
|
#endif
|
|
|
|
namespace cAudio
|
|
{
|
|
//Basic mutex class used for internal thread locking
|
|
#ifdef CAUDIO_MAKE_THREAD_SAFE
|
|
class cAudioMutex
|
|
{
|
|
public:
|
|
cAudioMutex();
|
|
~cAudioMutex();
|
|
|
|
void lock();
|
|
void unlock();
|
|
private:
|
|
void initialize();
|
|
#ifdef _WIN32
|
|
CRITICAL_SECTION criticalSection;
|
|
#else
|
|
pthread_mutex_t Mutex;
|
|
#endif
|
|
bool Initialized;
|
|
};
|
|
#else
|
|
//Dud class to disable the mutex
|
|
class cAudioMutex
|
|
{
|
|
public:
|
|
cAudioMutex();
|
|
~cAudioMutex();
|
|
|
|
void lock();
|
|
void unlock();
|
|
private:
|
|
void initialize();
|
|
bool Initialized;
|
|
};
|
|
#endif
|
|
};
|
|
|
|
#endif //! CAUDIOMUTEX_H
|