29#include <unordered_map>
38 HMAS_Loop loop = { -1, -1 };
58struct HMAS_ChannelInfo {
65 std::vector<HMAS_Effect> effects;
73 void RegisterSound(
HMAS_AudioId id,
const std::string& filePath, HMAS_Info info = {});
74 void RegisterSound(
HMAS_AudioId id, uint8_t* data, uint32_t size, HMAS_Info info = {});
87 void ProcessEffects();
88 void CreateBuffer(uint8_t* samples, uint32_t num_samples);
90 float Lerp(
float a,
float b,
float t) {
91 return a + (b - a) * t;
97 std::unordered_map<HMAS_AudioId, HMAS_Sample> gRegistry;
void HMAS_Stop(enum HMAS_ChannelId channel)
Definition HMAS.cpp:242
void HMAS_SetVolume(enum HMAS_ChannelId channel, float volume)
Definition HMAS.cpp:254
HMAS_ChannelId
Definition HMAS.h:5
@ HMAS_SFX
Definition HMAS.h:7
@ HMAS_ENV
Definition HMAS.h:8
@ HMAS_MAX_CHANNELS
Definition HMAS.h:9
@ HMAS_MUSIC
Definition HMAS.h:6
void HMAS_Play(enum HMAS_ChannelId channel, HMAS_AudioId id, bool loop)
Definition HMAS.cpp:238
void HMAS_SetPause(enum HMAS_ChannelId channel, bool pause)
Definition HMAS.cpp:258
int HMAS_AudioId
Definition HMAS.h:3
void HMAS_SetPitch(enum HMAS_ChannelId channel, float pitch)
Definition HMAS.cpp:250
void HMAS_AddEffect(enum HMAS_ChannelId channel, enum HMAS_EffectType type, enum HMAS_EffectTransition transition, uint32_t frames, float target)
Definition HMAS.cpp:262
HMAS_EffectType
Definition HMAS.h:12
@ HMAS_EFFECT_PAUSE
Definition HMAS.h:15
@ HMAS_EFFECT_STOP
Definition HMAS.h:16
@ HMAS_EFFECT_VOLUME
Definition HMAS.h:13
@ HMAS_EFFECT_PITCH
Definition HMAS.h:14
bool HMAS_IsIDRegistered(HMAS_AudioId id)
Definition HMAS.cpp:266
HMAS_EffectTransition
Definition HMAS.h:19
@ HMAS_LINEAR
Definition HMAS.h:20
@ HMAS_INSTANT
Definition HMAS.h:21
bool HMAS_IsPlaying(enum HMAS_ChannelId channel)
Definition HMAS.cpp:246
static const char * frames[]
Definition Mole.cpp:246
struct ma_sound ma_sound
Definition miniaudio.h:11094
struct ma_decoder ma_decoder
Definition miniaudio.h:9936
struct ma_engine ma_engine
Definition miniaudio.h:11093
@ info
Definition portable-file-dialogs.h:92