核心热路径(数学/内存/字符串/性能分析)用MASM汇编(SSE/AVX2) 外围系统(窗口/渲染/ECS/音频/UI/脚本)用C语言 含自研编辑器、VisualScript积木编程、中文渲染(glyph_atlas)
50 lines
1.3 KiB
C
50 lines
1.3 KiB
C
#pragma once
|
|
|
|
// ============================================================================
|
|
// audio.h - 音频系统 (XAudio2)
|
|
// ============================================================================
|
|
|
|
#include <xaudio2.h>
|
|
#include <stdint.h>
|
|
|
|
// 音频源
|
|
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);
|