27#ifndef ICB_FXMANAGER_H__INCLUDED_
28#define ICB_FXMANAGER_H__INCLUDED_
30#include "engines/icb/sound/direct_sound.h"
32#include "audio/audiostream.h"
33#include "audio/mixer.h"
37extern bool8 noSoundEngine;
39#define SAMPLE_NAME_LENGTH 64
42 enum FxFlags { EMPTY, DELAYED, QUEUED, PLAYING, READY };
44 char name[SAMPLE_NAME_LENGTH];
69 int32 Register(
const int32
id,
const char *name,
const int32 delay = 0, uint32 byteOffsetInCluster = 0);
70 void Unregister(int32
id);
83 void SetVolume(int32
id, int32 vol);
84 void SetPitch(int32
id, int32 pitch);
88 void SetPan(int32
id, int32 pan);
91 void SetLooping(int32
id, int32 loop = 1) { m_effects[id].looped = loop; }
92 bool8 IsPlaying(int32
id) {
return (m_effects[
id].flags == Effect::PLAYING) ? TRUE8 : FALSE8; }
94 int32 GetDefaultRate(
const char *name, uint32 byteOffsetInCluster = 0);
96 int32 GetDefaultLength(int32
id) {
return m_effects[id].length; }
99 bool8 Load(int32
id,
const char *name, uint32 byteOffsetInCluster = 0);
102 int32 GetDefaultRateByID(int32
id) {
return m_effects[id].rate; }
103 int32 GetDefaultRateByName(
const char *name, uint32 byteOffsetInCluster = 0);
Definition: audiostream.h:212
Definition: fx_manager.h:59
Definition: fx_manager.h:41