Show More
Commit Description:
Tweak UI appearance.
Commit Description:
Tweak UI appearance.
References:
File last commit:
Show/Diff file:
Action:
FNA/lib/FAudio/utils/testreverb/audio.h
103 lines | 2.5 KiB | text/x-c | CLexer
103 lines | 2.5 KiB | text/x-c | CLexer
r0 | #ifndef FAUDIOFILTERDEMO_AUDIO_H | |||
#define FAUDIOFILTERDEMO_AUDIO_H | ||||
#include <stddef.h> | ||||
#include <stdint.h> | ||||
#include "../wavcommon/wavs.h" | ||||
#ifdef _MSC_VER | ||||
#define HAVE_XAUDIO2 | ||||
#endif | ||||
const uint32_t SAMPLERATE = 44100; | ||||
// types | ||||
struct AudioContext; | ||||
enum AudioEngine { | ||||
AudioEngine_XAudio2, | ||||
AudioEngine_FAudio | ||||
}; | ||||
enum AudioVoiceType { | ||||
AudioVoiceType_Source = 0, | ||||
AudioVoiceType_Submix, | ||||
AudioVoiceType_Master | ||||
}; | ||||
#pragma pack(push, 1) | ||||
struct ReverbI3DL2Parameters | ||||
{ | ||||
float WetDryMix; | ||||
int Room; | ||||
int RoomHF; | ||||
float RoomRolloffFactor; | ||||
float DecayTime; | ||||
float DecayHFRatio; | ||||
int Reflections; | ||||
float ReflectionsDelay; | ||||
int Reverb; | ||||
float ReverbDelay; | ||||
float Diffusion; | ||||
float Density; | ||||
float HFReference; | ||||
}; | ||||
struct ReverbParameters | ||||
{ | ||||
float WetDryMix; | ||||
uint32_t ReflectionsDelay; | ||||
uint8_t ReverbDelay; | ||||
uint8_t RearDelay; | ||||
uint8_t PositionLeft; | ||||
uint8_t PositionRight; | ||||
uint8_t PositionMatrixLeft; | ||||
uint8_t PositionMatrixRight; | ||||
uint8_t EarlyDiffusion; | ||||
uint8_t LateDiffusion; | ||||
uint8_t LowEQGain; | ||||
uint8_t LowEQCutoff; | ||||
uint8_t HighEQGain; | ||||
uint8_t HighEQCutoff; | ||||
float RoomFilterFreq; | ||||
float RoomFilterMain; | ||||
float RoomFilterHF; | ||||
float ReflectionsGain; | ||||
float ReverbGain; | ||||
float DecayTime; | ||||
float Density; | ||||
float RoomSize; | ||||
}; | ||||
#pragma pack(pop) | ||||
extern const char *audio_voice_type_names[3]; | ||||
extern const char *audio_reverb_preset_names[]; | ||||
extern const ReverbI3DL2Parameters audio_reverb_presets_i3dl2[]; | ||||
extern const ReverbParameters *audio_reverb_presets; | ||||
extern const size_t audio_reverb_preset_count; | ||||
typedef void (*PFN_AUDIO_DESTROY_CONTEXT)(AudioContext *p_context); | ||||
typedef void (*PFN_AUDIO_CREATE_VOICE)(AudioContext *p_context, float *p_buffer, size_t p_buffer_size, int p_sample_rate, int p_num_channels); | ||||
typedef void (*PFN_AUDIO_WAVE_LOAD)(AudioContext *p_context, AudioSampleWave sample, bool stereo); | ||||
typedef void (*PFN_AUDIO_WAVE_PLAY)(AudioContext *p_context); | ||||
typedef void (*PFN_AUDIO_WAVE_STOP)(AudioContext *p_context); | ||||
typedef void(*PFN_AUDIO_EFFECT_CHANGE)(AudioContext *p_context, bool p_enabled, ReverbParameters *p_params); | ||||
// API | ||||
AudioContext *audio_create_context(AudioEngine p_engine, bool output_5p1, AudioVoiceType effect_on_voice); | ||||
extern PFN_AUDIO_DESTROY_CONTEXT audio_destroy_context; | ||||
extern PFN_AUDIO_CREATE_VOICE audio_create_voice; | ||||
extern PFN_AUDIO_WAVE_LOAD audio_wave_load; | ||||
extern PFN_AUDIO_WAVE_PLAY audio_wave_play; | ||||
extern PFN_AUDIO_WAVE_STOP audio_wave_stop; | ||||
extern PFN_AUDIO_EFFECT_CHANGE audio_effect_change; | ||||
#endif // FAUDIOFILTERDEMO_AUDIO_H | ||||