Program Listing for File audio_system.h¶
↰ Return to documentation for file (rootex/framework/systems/audio_system.h)
#pragma once
#include "common/common.h"
#include "components/space/transform_component.h"
#include "components/audio/audio_listener_component.h"
#include "al.h"
#include "alc.h"
#include "alut.h"
#include "system.h"
#ifndef ALUT_CHECK
#ifdef _DEBUG
#define ALUT_CHECK(alutFunction) \
do \
{ \
alutFunction; \
AudioSystem::CheckALUTError(#alutFunction, __FILE__, __LINE__); \
} while (0)
#else
#define ALUT_CHECK(alutFunction) alutFunction
#endif
#endif
#ifndef AL_CHECK
#ifdef _DEBUG
#define AL_CHECK(alFunction) \
do \
{ \
alFunction; \
AudioSystem::CheckALError(#alFunction, __FILE__, __LINE__); \
} while (0)
#else
#define AL_CHECK(alFunction) alFunction
#endif
#endif
class AudioBuffer;
class StaticAudioBuffer;
class StreamingAudioBuffer;
class AudioSource;
class StreamingAudioSource;
class ResourceFile;
class AudioSystem : public System
{
ALCdevice* m_Device = nullptr;
ALCcontext* m_Context = nullptr;
AudioListenerComponent* m_Listener = nullptr;
AudioSystem();
AudioSystem(AudioSystem&) = delete;
public:
static AudioSystem* GetSingleton();
static String GetALErrorString(int errID);
static String GetALCErrorString(int errID);
static void CheckALError(const char* msg, const char* fname, int line);
static void CheckALCError(const char* msg, const char* fname, int line);
static void CheckALUTError(const char* msg, const char* fname, int line);
AudioListenerComponent* getListener() const { return m_Listener; }
void setListener(AudioListenerComponent* listenerComponent);
void restoreListener();
bool initialize(const JSON::json& systemData) override;
void setConfig(const SceneSettings& sceneSettings) override;
void shutDown();
void update(float deltaMilliseconds) override;
void begin() override;
void end() override;
};