25 #include "engines/nancy/commontypes.h" 27 #include "audio/mixer.h" 30 class SeekableReadStream;
34 class SeekableAudioStream;
35 class QueuingAudioStream;
49 enum PlayCommandFlags {
50 kPlaySequential = 0x0001,
51 kPlaySequentialPosition = 0x0003,
52 kPlaySequentialFrameAnchor = 0x0007,
54 kPlayRandomTime = 0x0010,
55 kPlayRandomPosition = 0x0020,
57 kPlayMoveLinear = 0x0100,
58 kPlayMoveCircular = 0x0300,
59 kPlayRandomMove = 0x0500
65 void loadCommonSounds(
IFF *boot);
66 void initSoundChannels();
71 void playSound(uint16 channelID);
75 void pauseSound(uint16 channelID,
bool pause);
78 void pauseAllSounds(
bool pause);
80 bool isSoundPlaying(uint16 channelID)
const;
84 void stopSound(uint16 channelID);
89 byte getVolume(uint16 channelID);
93 void setVolume(uint16 channelID, uint16 volume);
97 uint32 getRate(uint16 channelID);
101 uint32 getBaseRate(uint16 channelID);
105 void setRate(uint16 channelID, uint32 rate);
113 void soundEffectMaintenance();
114 void recalculateSoundEffects();
116 Math::Vector3d &getOrientation() {
return _orientation; }
120 void stopAndUnloadSceneSpecificSounds();
121 void pauseSceneSpecificSounds(
bool pause);
130 uint16 playCommands = 1;
133 uint16 panAnchorFrame = 0;
134 bool isPanning =
false;
138 bool isPersistent =
false;
142 Math::Vector3d position;
143 Math::Vector3d positionDelta;
144 uint32 nextStepTime = 0;
145 uint16 stepsLeft = 0;
146 uint32 nextRepeatTime = 0;
149 void soundEffectMaintenance(uint16 channelID,
bool force =
false);
156 bool _shouldRecalculate;
158 Math::Vector3d _orientation;
159 Math::Vector3d _position;
160 uint _positionLerp = 0;
165 #endif // NANCY_SOUND_H
Definition: timestamp.h:83
Definition: commontypes.h:218
Definition: audiostream.h:212
SoundType
Definition: mixer.h:73
Definition: algorithm.h:29
Definition: audiostream.h:50
Definition: commontypes.h:255
Definition: actionmanager.h:32