Files
XCEngine/docs/api/XCEngine/Audio/IAudioEffect/IAudioEffect.md

2.5 KiB

IAudioEffect

命名空间: XCEngine::Audio

类型: class (interface)

头文件: XCEngine/Audio/IAudioEffect.h

描述: 定义音频效果器的最小公共接口,包括样本处理入口和通用的启用/湿声比例控制。

角色概述

IAudioEffectAudio 模块里最轻量的一层效果器抽象。它要求具体效果器至少提供:

  • 一个 in-place 的 ProcessAudio() 入口
  • 一个启用开关
  • 一个 wetMix 参数

从 API 形状看,这是一种很常见的 DSP effect base class 设计,适合作为 AudioMixer 的效果槽接口。

当前实现行为

基类本身非常轻:

  • ProcessAudio() 是纯虚函数
  • SetEnabled() / IsEnabled() 默认只读写 m_enabled
  • SetWetMix() / GetWetMix() 默认只读写 m_wetMix

它不拥有缓冲区,也不定义线程模型、样本格式转换或多通道路由规则。

当前实现语境

当前已取证到的派生效果器包括:

但需要明确:

  • 这些效果器当前没有自动插入 AudioSystem 主链路
  • AudioMixer 虽然能保存 effect 指针,但当前也不会真正执行效果链

使用和实现上的注意点

  • IAudioEffect 不约束所有权,调用方需要决定 effect 实例何时创建和销毁。
  • 不同派生类对 wetMix 的支持成熟度并不一致。
  • 基类并不保证派生类一定会把 wetMix 真正作用到样本处理结果上。

这也是为什么类型页需要区分“接口形状”和“具体效果器当前实现”。

线程语义

  • 当前接口不提供线程安全保证。
  • 典型使用方式应视为同一线程内配置和处理,除非具体实现另有说明。

当前实现限制

  • 这是最小接口,不是完整 DSP graph 节点规范。
  • wetMix 只是公共参数约定,具体效果器是否真实使用它,要看各自实现。
  • 没有看到该接口层的专门测试覆盖。

相关方法

相关文档