1 #ifndef FAUDIOTESTVOLUMEMETER_AUDIO_H 2 #define FAUDIOTESTVOLUMEMETER_AUDIO_H 3 4 #include <stddef.h> 5 #include <stdint.h> 6 #include "../wavcommon/wavs.h" 7 8 #ifdef _MSC_VER 9 #define HAVE_XAUDIO2 10 #endif 11 12 typedef struct AudioContext AudioContext; 13 14 typedef enum 15 { 16 AudioEngine_XAudio2, 17 AudioEngine_FAudio 18 } AudioEngine; 19 20 typedef void (*PFN_AUDIO_DESTROY_CONTEXT)(AudioContext *p_context); 21 typedef void (*PFN_AUDIO_WAVE_LOAD)(AudioContext *p_context, AudioSampleWave sample, bool stereo); 22 typedef void (*PFN_AUDIO_WAVE_PLAY)(AudioContext *p_context); 23 typedef void (*PFN_AUDIO_UPDATE_VOLUMEMETER)(AudioContext *p_context, float *peak, float *rms); 24 25 AudioContext *audio_create_context(AudioEngine p_engine); 26 27 extern PFN_AUDIO_DESTROY_CONTEXT audio_destroy_context; 28 extern PFN_AUDIO_WAVE_LOAD audio_wave_load; 29 extern PFN_AUDIO_WAVE_PLAY audio_wave_play; 30 extern PFN_AUDIO_UPDATE_VOLUMEMETER audio_update_volumemeter; 31 32 #endif /* FAUDIOTESTVOLUMEMETER_AUDIO_H */ 33