#pragma once // ============================================================================ // audio.h - 音频系统 (XAudio2) // ============================================================================ #include #include // 音频源 typedef struct { IXAudio2SourceVoice* source; IXAudio2Voice* mastering; float volume; float pitch; int loop; } AudioSource; // 音频管理器 typedef struct { IXAudio2* xaudio2; IXAudio2MasteringVoice* mastering_voice; } AudioSystem; // 初始化/销毁 AudioSystem* audio_create(void); void audio_destroy(AudioSystem* audio); // 音频源 AudioSource* audio_source_create(AudioSystem* audio); void audio_source_destroy(AudioSource* source); // 播放 void audio_source_play(AudioSource* source); void audio_source_stop(AudioSource* source); void audio_source_pause(AudioSource* source); void audio_source_resume(AudioSource* source); // 音量/音调 void audio_source_set_volume(AudioSource* source, float volume); void audio_source_set_pitch(AudioSource* source, float pitch); void audio_source_set_loop(AudioSource* source, int loop); // WAV加载 int audio_load_wav(AudioSource* source, const char* path); int audio_load_wav_memory(AudioSource* source, const uint8_t* data, uint32_t size); // 主音量 void audio_set_master_volume(AudioSystem* audio, float volume);