int detect_digi_driver(int driver_id);
检测指定的数字声音设备是否可用,
和 install_sound() 使用相同的 ID 值. 返回设备可以提供的最大声音数目,
如果没有这种硬件则返回零.
这个函数 _必须_ 在 install_sound() 前调用.
int detect_midi_driver(int driver_id);
检测指定的 MIDI 设备是否能使用,
使用和 install_sound() 相同的 ID 值. 返回设备可以提供的最大声音数目,
如果没有这种硬件则返回零.
有两种特殊的返回值是需要你特别注意的:
如果函数返回 -1, 则是 note-stealing 驱动设备 (即: DIGMID)
它从当前的数字声音设备中共享声音,
如果返回 0xFFFF 则是一像 MPU-401 那样的扩展设备, 而没有方法
检测到可用的声音数. 这个函数必须在 install_sound() 前调用.
void reserve_voices(int digi_voices, int midi_voices);
调用这个函数以指定数字和 MIDI 声音各自使用的声音数.
这必须在调用 install_sound() 前完成.
如果你保留了太多的声音,
随后的调用 install_sound() 将失败. 有多少声音可以利用取决于驱动设备,
一些情况下你实际得到的声音数比你预定的多
(比如, FM 合成驱动设备总是在 OPL2 上提供 9 声音,
在 OPL3 上提供 18 个, 而 SB 数字驱动设备将这个数字提高到接近 2 的次方数).
传入负数将恢复缺省的设置.
你应该将 SB 和 GUS 都考虑到,
音质和你使用的声音数的关系是反的,
因此不要预定你真正需要还多的声音.
int install_sound(int digi_card, int midi_card, char *cfg_path);
初始化声音组件, 成功则返回零.
digi_card 参数应当是下面值中的一个:
DIGI_AUTODETECT - 让 Allegro 来选择一个数字声音驱动设备 DIGI_NONE - 无数字声音 DIGI_SB - Sound Blaster (自动检测类型) DIGI_SB10 - SB 1.0 (8 位单声道 单一发射 dma) DIGI_SB15 - SB 1.5 (8 位单声道 单一发射 dma) DIGI_SB20 - SB 2.0 (8 位单声道 自动初始化 dma) DIGI_SBPRO - SB Pro (8 位立体声) DIGI_SB16 - SB16 (16 位立体声) DIGI_AUDIODRIVE - ESS AudioDrive DIGI_SOUNDSCAPE - Ensoniq Soundscapemidi_card 应当是以下值中的一个:
MIDI_AUTODETECT - 让 Allegro 挑选一个 MIDI 声音驱动程序 MIDI_NONE - 无 MIDI 声音 MIDI_ADLIB - Adlib 或 SB FM 混合 (自动检测型号) MIDI_OPL2 - OPL2 混合 (单声道, 在 Adlib 和 SB 下使用) MIDI_2XOPL2 - 双 OPL2 混合 (立体声, 在 SB-Pro-I 下使用) MIDI_OPL3 - OPL3 混合 (立体声, SB Pro-II 及以上) MIDI_SB_OUT - SB MIDI 界面 MIDI_MPU - MPU-401 MIDI 界面 MIDI_DIGMID - 基于采样的软件波表播放器 MIDI_AWE32 - AWE32 (EMU8000 chip)正常的情况你应当给出参数 DIGI_AUTODETECT 和 MIDI_AUTODETECT 于这个函数, 在这种情况下 Allegro 将从当前的设置文件里读入硬件设置. 这允许用户利用 setup 工具来选择不同的值: 见 config 部分的描述.
参数 cfg_path 仅仅为了兼容先前版本的 Allegro 而设,
它对任何东东都不起作用.
如果声音成功的被加载了则返回零, 失败则返回 -1. 如果失败了它将把问题的描述储存在 allegro_error 里.
void remove_sound();
在你完成了声音例程的清除工作.
正常情况下你不必调用它, 因为 allegro_exit() 将为你做这个.
void set_volume(int digi_volume, int midi_volume);
改变全局声音输出音量. 指定数字采样声音和 MIDI 背景音乐的音量,
它是一从 0 到 255 间的整数, 或者传入一复制使其中一设置不改变.
如果有可能这个例程将使用硬件混合来控制音量,
否则它通知样本声音和 MIDI 播放器使用软件模拟的混合器.