Files
TSE/TSE_Core/src/BehaviourScripts/AudioSource.hpp
2026-01-18 19:42:25 +01:00

51 lines
1.2 KiB
C++

#pragma once
#define AUDIOSOURCE typeid(AudioSource).name()
#include "Types.hpp"
#include "elements/AudioClip.hpp"
#include "elements/BehaviourScript.hpp"
#include "miniaudio.h"
#include <unordered_map>
namespace TSE
{
class AudioSource : public BehaviourScript
{
public:
std::unordered_map<string, AudioClip*> clips;
string currentlyPlaying = "";
private:
bool global = false;
float minDistance = 5;
float maxDistance = 8;
std::unordered_map<std::string, ma_sound*> sounds;
public:
float GetMinDistance();
float GetMaxDistance();
bool GetGlobal();
void SetGlobal(bool v);
void SetMinDistance(float v);
void SetMaxDistance(float v);
void AddClip(AudioClip* clip);
void RemoveClip(std::string name);
void StartClip(std::string name, bool forceRestart = true);
void StopPlaying();
void PausePlaying();
AudioClip* GetClipAt(int i);
~AudioSource();
void OnUpdate() override;
inline const char* GetName() override
{
return "Audio Source";
}
};
} // namespace TSE