#ifndef SoundEmitter_h__ #define SoundEmitter_h__ #include "System.h" #include "Components/Transform.h" #include "Components/SoundEmitter.h" #include #include #include #include namespace Systems { class SoundSystem : public System { public: SoundSystem(World* world); void Update(double dt) override; void UpdateEntity(double dt, EntityID entity, EntityID parent) override; void OnComponentCreated(std::string type, std::shared_ptr component) override; void PlaySound(std::shared_ptr emitter, std::string fileName); private: ALuint LoadFile(std::string fileName); ALuint CreateSource(); //File-info char type[4]; unsigned long size, chunkSize; short formatType, channels; unsigned long sampleRate, avgBytesPerSec; short bytesPerSample, bitsPerSample; unsigned long dataSize; std::map m_Source; std::map m_BufferCache; // string = fileName }; } #endif // !SoundEmitter_h__