NW4F Snd
Loading...
Searching...
No Matches
snd_SequenceSoundHandle.h
Go to the documentation of this file.
1#ifndef NW_SND_SEQUENCE_SOUND_HANDLE_H_
2#define NW_SND_SEQUENCE_SOUND_HANDLE_H_
3
4#include <nw/snd/snd_SequenceSound.h>
5
6namespace nw { namespace snd {
7
9{
10public:
13 static const s8 TRANSPOSE_MIN = internal::SequenceSound::TRANSPOSE_MIN;
14 static const s8 TRANSPOSE_MAX = internal::SequenceSound::TRANSPOSE_MAX;
15 static const u8 VELOCITY_RANGE_MIN = internal::SequenceSound::VELOCITY_RANGE_MIN;
16 static const u8 VELOCITY_RANGE_MAX = internal::SequenceSound::VELOCITY_RANGE_MAX;
17
21
26
27 void Stop(int fadeFrames)
28 {
29 if (IsAttachedSound()) m_pSound->Stop(fadeFrames);
30 }
31
32 void Pause(bool flag, int fadeFrames)
33 {
34 if (IsAttachedSound()) m_pSound->Pause(flag, fadeFrames);
35 }
36
38
39 bool IsPause() const { return IsAttachedSound() && m_pSound->IsPause(); }
40
41 void FadeIn(int frames)
42 {
44 }
45
46 void SetVolume(f32 volume, int frames = 0)
47 {
48 if (IsAttachedSound()) m_pSound->SetVolume(volume, frames);
49 }
50
51 void SetPitch(f32 pitch)
52 {
53 if (IsAttachedSound()) m_pSound->SetPitch(pitch);
54 }
55
56 /*
57 // TODO
58 void SetLpfFreq(f32 lpfFreq)
59 {
60 if (IsAttachedSound()) m_pSound->SetLpfFreq(lpfFreq);
61 }
62
63 void SetPlayerPriority(int priority)
64 {
65 if (IsAttachedSound()) m_pSound->SetPlayerPriority(priority);
66 }
67 */
68
69 void SetChannelPriority(int priority)
70 {
72 }
73
74 void SetTempoRatio(f32 tempoRatio)
75 {
76 if (IsAttachedSound()) m_pSound->SetTempoRatio(tempoRatio);
77 }
78
79 void SetPan(f32 pan)
80 {
82 {
83 m_pSound->SetPan(pan);
84 }
85 }
86
87 /*
88 // TODO
89 void SetSurroundPan(f32 surroundPan)
90 {
91 if (IsAttachedSound())
92 {
93 m_pSound->SetSurroundPan(surroundPan);
94 }
95 }
96
97 void SetMainSend(f32 send)
98 {
99 if (IsAttachedSound())
100 {
101 m_pSound->SetMainSend(send);
102 }
103 }
104
105 void SetFxSend(AuxBus bus, f32 send)
106 {
107 if (IsAttachedSound())
108 {
109 m_pSound->SetFxSend(bus, send);
110 }
111 }
112 */
113
114 bool ReadVariable(int varNo, signed short* var) const
115 {
116 return IsAttachedSound() && m_pSound->ReadVariable(varNo, var);
117 }
118
119 static bool ReadGlobalVariable(int varNo, signed short* var)
120 {
121 return internal::SequenceSound::ReadGlobalVariable(varNo, var);
122 }
123
124 bool ReadTrackVariable(int trackNo, int varNo, signed short* var) const
125 {
126 return IsAttachedSound() && m_pSound->ReadTrackVariable(trackNo, varNo, var);
127 }
128
129 bool WriteVariable(int varNo, signed short var)
130 {
131 if (!IsAttachedSound()) return false;
132 m_pSound->WriteVariable(varNo, var);
133 return true;
134 }
135
136 static bool WriteGlobalVariable(int varNo, signed short var)
137 {
138 internal::SequenceSound::WriteGlobalVariable(varNo, var);
139 return true;
140 }
141
142 bool WriteTrackVariable(int trackNo, int varNo, signed short var)
143 {
144 if (!IsAttachedSound()) return false;
145 m_pSound->WriteTrackVariable(trackNo, varNo, var);
146 return true;
147 }
148
149 void SetTrackMute(u32 trackBitFlag, SeqMute mute)
150 {
152 {
153 m_pSound->SetTrackMute(trackBitFlag, mute);
154 }
155 }
156
157 void SetTrackMute(u32 trackBitFlag, bool muteFlag)
158 {
160 {
161 m_pSound->SetTrackMute(trackBitFlag, muteFlag);
162 }
163 }
164
165 void SetTrackSilence(u32 trackBitFlag, bool silenceFlag, int fadeTimes)
166 {
168 {
169 m_pSound->SetTrackSilence(trackBitFlag, silenceFlag, fadeTimes);
170 }
171 }
172
173 void SetTrackVolume(u32 trackBitFlag, f32 volume)
174 {
176 {
177 m_pSound->SetTrackVolume(trackBitFlag, volume);
178 }
179 }
180
181 void SetTrackPitch(u32 trackBitFlag, f32 pitch)
182 {
184 {
185 m_pSound->SetTrackPitch(trackBitFlag, pitch);
186 }
187 }
188
189 bool SetTrackBankIndex(u32 trackBitFlag, int bankIndex)
190 {
191 //NW_ASSERT_MINMAX(bankIndex, BANK_INDEX_MIN, BANK_INDEX_MAX);
192 if (bankIndex < BANK_INDEX_MIN || bankIndex > BANK_INDEX_MAX)
193 {
194 return false;
195 }
196
198 {
199 m_pSound->SetTrackBankIndex(trackBitFlag, bankIndex);
200 }
201 return true;
202 }
203
204 bool SetTrackTranspose(u32 trackBitFlag, s8 transpose)
205 {
206 //NW_ASSERT_MINMAX(transpose, TRANSPOSE_MIN, TRANSPOSE_MAX);
207 if (transpose < TRANSPOSE_MIN || transpose > TRANSPOSE_MAX)
208 {
209 return false;
210 }
211
213 {
214 m_pSound->SetTrackTranspose(trackBitFlag, transpose);
215 }
216 return true;
217 }
218
219 bool SetTrackVelocityRange(u32 trackBitFlag, u8 range)
220 {
221 //NW_ASSERT_MAX(range, VELOCITY_RANGE_MAX);
222 if (range > VELOCITY_RANGE_MAX)
223 {
224 return false;
225 }
226
228 {
229 m_pSound->SetTrackVelocityRange(trackBitFlag, range);
230 }
231 return true;
232 }
233
234 void SetTrackOutputLine(u32 trackBitFlag, u32 lineFlag)
235 {
237 {
238 m_pSound->SetTrackOutputLine(trackBitFlag, lineFlag);
239 }
240 }
241
242 void ResetTrackOutputLine(u32 trackBitFlag)
243 {
245 {
246 m_pSound->ResetTrackOutputLine(trackBitFlag);
247 }
248 }
249
250 void SetTrackMainOutVolume(u32 trackBitFlag, f32 volume)
251 {
253 {
254 m_pSound->SetTrackMainOutVolume(trackBitFlag, volume);
255 }
256 }
257
258 void SetTrackPan(u32 trackBitFlag, f32 pan)
259 {
261 {
262 m_pSound->SetTrackPan(trackBitFlag, pan);
263 }
264 }
265
266 void SetTrackSurroundPan(u32 trackBitFlag, f32 surroundPan)
267 {
269 {
270 m_pSound->SetTrackSurroundPan(trackBitFlag, surroundPan);
271 }
272 }
273
274 void SetTrackMainSend(u32 trackBitFlag, f32 send)
275 {
277 {
278 m_pSound->SetTrackMainSend(trackBitFlag, send);
279 }
280 }
281
282 void SetTrackFxSend(u32 trackBitFlag, AuxBus bus, f32 send)
283 {
285 {
286 m_pSound->SetTrackFxSend(trackBitFlag, bus, send);
287 }
288 }
289
290 void SetTrackDrcOutVolume(u32 trackBitFlag, f32 volume, u32 drcIndex=0)
291 {
293 {
294 m_pSound->SetTrackDrcOutVolume(drcIndex, trackBitFlag, volume);
295 }
296 }
297
298 void SetTrackDrcPan(u32 trackBitFlag, f32 pan, u32 drcIndex=0)
299 {
301 {
302 m_pSound->SetTrackDrcPan(drcIndex, trackBitFlag, pan);
303 }
304 }
305
306 void SetTrackDrcSurroundPan(u32 trackBitFlag, f32 span, u32 drcIndex=0)
307 {
309 {
310 m_pSound->SetTrackDrcSurroundPan(drcIndex, trackBitFlag, span);
311 }
312 }
313
314 void SetTrackDrcMainSend(u32 trackBitFlag, f32 send, u32 drcIndex=0)
315 {
317 {
318 m_pSound->SetTrackDrcMainSend(drcIndex, trackBitFlag, send);
319 }
320 }
321
322 void SetTrackDrcFxSend(u32 trackBitFlag, AuxBus bus, f32 send, u32 drcIndex=0)
323 {
325 {
326 m_pSound->SetTrackDrcFxSend(drcIndex, trackBitFlag, bus, send);
327 }
328 }
329
330 bool IsAttachedSound() const { return m_pSound != NULL; }
332
333 void SetId(u32 id)
334 {
335 if (IsAttachedSound()) m_pSound->SetId(id);
336 }
337
338 u32 GetId() const
339 {
340 if (IsAttachedSound()) return m_pSound->GetId();
341 return internal::BasicSound::INVALID_ID;
342 }
343
345 {
347 {
348 return NULL;
349 }
351 }
352
353 unsigned long GetTick() const { return IsAttachedSound() ? m_pSound->GetTick() : 0; }
354
356
358
360
361private:
363
365};
366
367} } // namespace nw::snd
368
369#endif // NW_SND_SEQUENCE_SOUND_HANDLE_H_
Definition snd_SequenceSoundHandle.h:9
bool IsAttachedSound() const
Definition snd_SequenceSoundHandle.h:330
void SetTrackMainSend(u32 trackBitFlag, f32 send)
Definition snd_SequenceSoundHandle.h:274
const SoundParam * GetAmbientParam() const
Definition snd_SequenceSoundHandle.h:344
static bool ReadGlobalVariable(int varNo, signed short *var)
Definition snd_SequenceSoundHandle.h:119
internal::SequenceSound * detail_GetAttachedSound()
Definition snd_SequenceSoundHandle.h:357
void SetTrackOutputLine(u32 trackBitFlag, u32 lineFlag)
Definition snd_SequenceSoundHandle.h:234
void SetTrackDrcPan(u32 trackBitFlag, f32 pan, u32 drcIndex=0)
Definition snd_SequenceSoundHandle.h:298
void SetTrackPan(u32 trackBitFlag, f32 pan)
Definition snd_SequenceSoundHandle.h:258
void SetTrackDrcOutVolume(u32 trackBitFlag, f32 volume, u32 drcIndex=0)
Definition snd_SequenceSoundHandle.h:290
void FadeIn(int frames)
Definition snd_SequenceSoundHandle.h:41
void SetTrackFxSend(u32 trackBitFlag, AuxBus bus, f32 send)
Definition snd_SequenceSoundHandle.h:282
void SetTrackDrcSurroundPan(u32 trackBitFlag, f32 span, u32 drcIndex=0)
Definition snd_SequenceSoundHandle.h:306
bool SetTrackVelocityRange(u32 trackBitFlag, u8 range)
Definition snd_SequenceSoundHandle.h:219
void SetTrackSilence(u32 trackBitFlag, bool silenceFlag, int fadeTimes)
Definition snd_SequenceSoundHandle.h:165
void SetTrackMute(u32 trackBitFlag, bool muteFlag)
Definition snd_SequenceSoundHandle.h:157
void SetChannelPriority(int priority)
Definition snd_SequenceSoundHandle.h:69
static const int BANK_INDEX_MIN
Definition snd_SequenceSoundHandle.h:11
static const u8 VELOCITY_RANGE_MIN
Definition snd_SequenceSoundHandle.h:15
unsigned long GetTick() const
Definition snd_SequenceSoundHandle.h:353
void SetPan(f32 pan)
Definition snd_SequenceSoundHandle.h:79
void SetTrackMainOutVolume(u32 trackBitFlag, f32 volume)
Definition snd_SequenceSoundHandle.h:250
void SetTrackDrcFxSend(u32 trackBitFlag, AuxBus bus, f32 send, u32 drcIndex=0)
Definition snd_SequenceSoundHandle.h:322
void StartPrepared()
Definition snd_SequenceSoundHandle.h:22
bool SetTrackBankIndex(u32 trackBitFlag, int bankIndex)
Definition snd_SequenceSoundHandle.h:189
bool ReadTrackVariable(int trackNo, int varNo, signed short *var) const
Definition snd_SequenceSoundHandle.h:124
static const s8 TRANSPOSE_MIN
Definition snd_SequenceSoundHandle.h:13
bool IsPrepared() const
Definition snd_SequenceSoundHandle.h:37
void SetTrackSurroundPan(u32 trackBitFlag, f32 surroundPan)
Definition snd_SequenceSoundHandle.h:266
void SetPitch(f32 pitch)
Definition snd_SequenceSoundHandle.h:51
static const s8 TRANSPOSE_MAX
Definition snd_SequenceSoundHandle.h:14
void Pause(bool flag, int fadeFrames)
Definition snd_SequenceSoundHandle.h:32
void SetTrackPitch(u32 trackBitFlag, f32 pitch)
Definition snd_SequenceSoundHandle.h:181
~SequenceSoundHandle()
Definition snd_SequenceSoundHandle.h:20
void SetTrackDrcMainSend(u32 trackBitFlag, f32 send, u32 drcIndex=0)
Definition snd_SequenceSoundHandle.h:314
SequenceSoundHandle(SoundHandle *handle)
bool WriteVariable(int varNo, signed short var)
Definition snd_SequenceSoundHandle.h:129
void detail_AttachSoundAsTempHandle(internal::SequenceSound *sound)
SequenceSoundHandle()
Definition snd_SequenceSoundHandle.h:18
const internal::SequenceSound * detail_GetAttachedSound() const
Definition snd_SequenceSoundHandle.h:359
static const u8 VELOCITY_RANGE_MAX
Definition snd_SequenceSoundHandle.h:16
void SetId(u32 id)
Definition snd_SequenceSoundHandle.h:333
bool IsPause() const
Definition snd_SequenceSoundHandle.h:39
static bool WriteGlobalVariable(int varNo, signed short var)
Definition snd_SequenceSoundHandle.h:136
bool ReadVariable(int varNo, signed short *var) const
Definition snd_SequenceSoundHandle.h:114
void SetTrackMute(u32 trackBitFlag, SeqMute mute)
Definition snd_SequenceSoundHandle.h:149
internal::SequenceSound * m_pSound
Definition snd_SequenceSoundHandle.h:364
void SetVolume(f32 volume, int frames=0)
Definition snd_SequenceSoundHandle.h:46
void Stop(int fadeFrames)
Definition snd_SequenceSoundHandle.h:27
void SetTempoRatio(f32 tempoRatio)
Definition snd_SequenceSoundHandle.h:74
bool SetTrackTranspose(u32 trackBitFlag, s8 transpose)
Definition snd_SequenceSoundHandle.h:204
u32 GetId() const
Definition snd_SequenceSoundHandle.h:338
void SetTrackVolume(u32 trackBitFlag, f32 volume)
Definition snd_SequenceSoundHandle.h:173
bool WriteTrackVariable(int trackNo, int varNo, signed short var)
Definition snd_SequenceSoundHandle.h:142
static const int BANK_INDEX_MAX
Definition snd_SequenceSoundHandle.h:12
void ResetTrackOutputLine(u32 trackBitFlag)
Definition snd_SequenceSoundHandle.h:242
Definition snd_SoundHandle.h:10
void Pause(bool flag, int fadeFrames)
const SoundParam & GetAmbientParam() const
Definition snd_BasicSound.h:297
void Stop(int fadeFrames)
Definition snd_SequenceSound.h:29
static const int BANK_INDEX_MIN
Definition snd_SequenceSound.h:82
void SetChannelPriority(int priority)
bool IsPrepared() const override
Definition snd_SequenceSound.h:128
static const int BANK_INDEX_MAX
Definition snd_SequenceSound.h:83
Definition snd_BasicSound.cpp:3
Definition snd_BasicSound.cpp:3
SeqMute
Definition snd_Global.h:33
AuxBus
Definition snd_Global.h:25
Definition snd_BasicSound.h:38