25 #include "engines/nancy/commontypes.h" 27 #include "audio/mixer.h" 30 class SeekableReadStream;
34 class SeekableAudioStream;
35 class QueuingAudioStream;
50 enum PlayCommandFlags {
51 kPlaySequential = 0x0001,
52 kPlaySequentialPosition = 0x0003,
53 kPlaySequentialFrameAnchor = 0x0007,
55 kPlayRandomTime = 0x0010,
56 kPlayRandomPosition = 0x0020,
58 kPlayMoveLinear = 0x0100,
59 kPlayMoveCircular = 0x0300,
60 kPlayRandomMove = 0x0500
66 void loadCommonSounds(
IFF *boot);
67 void initSoundChannels();
72 void playSound(uint16 channelID);
76 void pauseSound(uint16 channelID,
bool pause);
79 void pauseAllSounds(
bool pause);
81 bool isSoundPlaying(uint16 channelID)
const;
85 void stopSound(uint16 channelID);
90 byte getVolume(uint16 channelID);
94 void setVolume(uint16 channelID, uint16 volume);
98 uint32 getRate(uint16 channelID);
102 uint32 getBaseRate(uint16 channelID);
106 void setRate(uint16 channelID, uint32 rate);
114 void soundEffectMaintenance();
115 void recalculateSoundEffects();
118 void stopAndUnloadSceneSpecificSounds();
119 void pauseSceneSpecificSounds(
bool pause);
128 uint16 playCommands = 1;
131 uint16 panAnchorFrame = 0;
132 bool isPanning =
false;
136 bool isPersistent =
false;
140 Math::Vector3d position;
141 Math::Vector3d positionDelta;
142 uint32 nextStepTime = 0;
143 uint16 stepsLeft = 0;
144 uint32 nextRepeatTime = 0;
147 void soundEffectMaintenance(uint16 channelID,
bool force =
false);
154 bool _shouldRecalculate;
156 Math::Vector3d _orientation;
157 Math::Vector3d _position;
158 uint _positionLerp = 0;
163 #endif // NANCY_SOUND_H
Definition: timestamp.h:83
Definition: commontypes.h:217
Definition: audiostream.h:212
SoundType
Definition: mixer.h:62
Definition: algorithm.h:29
Definition: audiostream.h:50
Definition: commontypes.h:254
Definition: actionmanager.h:32