1#ifndef NW_SND_SEQUENCE_SOUND_PLAYER_H_
2#define NW_SND_SEQUENCE_SOUND_PLAYER_H_
4#include <nw/snd/snd_BasicSoundPlayer.h>
5#include <nw/snd/snd_DisposeCallback.h>
6#include <nw/snd/snd_SoundThread.h>
7#include <nw/snd/snd_NoteOnCallback.h>
8#include <nw/snd/snd_SoundArchive.h>
9#include <nw/snd/snd_BankFileReader.h>
10#include <nw/snd/snd_WaveArchiveFileReader.h>
12namespace nw {
namespace snd {
84 const void* bankFiles[],
85 const void* warcFiles[],
86 const bool warcIsIndividuals[],
131 return m_BankFileReader[bankIndex];
135 return m_WarcFileReader[bankIndex];
178 template <
typename T>
179 void SetTrackParam(u32 trackBitFlag,
void (SequenceTrack::*func)(T), T param);
180 template <
typename T,
typename U>
181 void SetTrackParam(u32 trackBitFlag,
void (SequenceTrack::*func)(T, U), T param1, U param2);
227 ; trackNo++, trackBitFlag >>= 1
230 if ((trackBitFlag & 1) == 0)
234 (track->*func)( param );
238template <
typename T,
typename U>
244 ; trackNo++, trackBitFlag >>= 1
247 if ((trackBitFlag & 1) == 0)
251 (track->*func)(param1, param2);
Definition snd_BankFileReader.h:27
Definition snd_WaveArchiveFileReader.h:9
Definition snd_BasicSoundPlayer.h:35
Definition snd_Channel.h:9
Definition snd_DisposeCallback.h:9
Definition snd_NoteOnCallback.h:25
Definition snd_SequenceSoundPlayer.h:35
void SetPlayerTrack(int trackNo, SequenceTrack *track)
bool m_ReleasePriorityFixFlag
Definition snd_SequenceSoundPlayer.h:198
BankFileReader m_BankFileReader[SoundArchive::SEQ_BANK_MAX]
Definition snd_SequenceSoundPlayer.h:218
void SetTrackTvMainSend(u32 trackBitFlag, f32 send)
void SetTrackDrcPan(u32 drcIndex, u32 trackBitFlag, f32 pan)
virtual ~SequenceSoundPlayer()
void SetLocalVariable(int varNo, s16 var)
virtual void Initialize()
static const int VARIABLE_DEFAULT_VALUE
Definition snd_SequenceSoundPlayer.h:40
static vs16 m_GlobalVariable[GLOBAL_VARIABLE_NUM]
Definition snd_SequenceSoundPlayer.h:195
void Setup(SequenceTrackAllocator *trackAllocator, u32 allocTracks, NoteOnCallback *callback)
SequenceUserprocCallback m_SequenceUserprocCallback
Definition snd_SequenceSoundPlayer.h:209
virtual void ChannelCallback(Channel *channel)
Definition snd_SequenceSoundPlayer.h:171
void CallSequenceUserprocCallback(u16 procId, SequenceTrack *track)
void SetTrackTranspose(u32 trackBitFlag, s8 transpose)
void * m_pSequenceUserprocCallbackArg
Definition snd_SequenceSoundPlayer.h:210
void SetTrackTvVolume(u32 trackBitFlag, f32 volume)
static void SetSkipIntervalTick(s32 intervalTick)
void SetTrackDrcVolume(u32 drcIndex, u32 trackBitFlag, f32 volume)
void UpdateChannelParam()
void ResetTrackOutputLine(u32 trackBitFlag)
vs16 m_LocalVariable[PLAYER_VARIABLE_NUM]
Definition snd_SequenceSoundPlayer.h:214
static const int PLAYER_VARIABLE_NUM
Definition snd_SequenceSoundPlayer.h:37
OffsetType
Definition snd_SequenceSoundPlayer.h:60
@ OFFSET_TYPE_MILLISEC
Definition snd_SequenceSoundPlayer.h:62
@ OFFSET_TYPE_TICK
Definition snd_SequenceSoundPlayer.h:61
static const int TRACK_NUM_PER_PLAYER
Definition snd_SequenceSoundPlayer.h:39
bool IsReleasePriorityFix() const
Definition snd_SequenceSoundPlayer.h:112
void SetTrackTvPan(u32 trackBitFlag, f32 pan)
void SetTrackParam(u32 trackBitFlag, void(SequenceTrack::*func)(T, U), T param1, U param2)
Definition snd_SequenceSoundPlayer.h:239
void Skip(OffsetType offsetType, int offset)
void SetTrackBiquadFilter(u32 trackBitFlag, int type, f32 value)
vu32 m_TickCounter
Definition snd_SequenceSoundPlayer.h:215
void SetTempoRatio(f32 tempoRatio)
WaveArchiveFileReader m_WarcFileReader[SoundArchive::SEQ_BANK_MAX]
Definition snd_SequenceSoundPlayer.h:217
void SetTrackDrcFxSend(u32 drcIndex, u32 trackBitFlag, AuxBus bus, f32 send)
int GetChannelPriority() const
Definition snd_SequenceSoundPlayer.h:110
void SetTrackPanRange(u32 trackBitFlag, f32 panRange)
static const int GLOBAL_VARIABLE_NUM
Definition snd_SequenceSoundPlayer.h:38
f32 CalcTickPerMsec() const
Definition snd_SequenceSoundPlayer.h:193
static const int DEFAULT_SKIP_INTERVAL_TICK
Definition snd_SequenceSoundPlayer.h:45
bool SetTrackBankIndex(u32 trackBitFlag, int bankIndex)
SequenceTrackAllocator * m_pSequenceTrackAllocator
Definition snd_SequenceSoundPlayer.h:207
SequenceTrack * m_pTracks[TRACK_NUM_PER_PLAYER]
Definition snd_SequenceSoundPlayer.h:212
void SetReleasePriorityFix(bool fix)
void SetTrackParam(u32 trackBitFlag, void(SequenceTrack::*func)(T), T param)
Definition snd_SequenceSoundPlayer.h:222
void SetTrackModDepth(u32 trackBitFlag, f32 depth)
f32 m_SkipTimeCounter
Definition snd_SequenceSoundPlayer.h:204
f32 CalcTickPerMinute() const
Definition snd_SequenceSoundPlayer.h:192
vs16 * GetVariablePtr(int varNo)
const BankFileReader & GetBankFileReader(u8 bankIndex) const
Definition snd_SequenceSoundPlayer.h:129
f32 GetPanRange() const
Definition snd_SequenceSoundPlayer.h:109
void SetTrackVolume(u32 trackBitFlag, f32 volume)
void SetTrackDrcMainSend(u32 drcIndex, u32 trackBitFlag, f32 send)
const SequenceTrack * GetPlayerTrack(int trackNo) const
f32 GetTempoRatio() const
Definition snd_SequenceSoundPlayer.h:108
void SetTrackTvFxSend(u32 trackBitFlag, AuxBus bus, f32 send)
static void SetGlobalVariable(int varNo, s16 var)
static vs32 m_SkipIntervalTickPerFrame
Definition snd_SequenceSoundPlayer.h:196
void Prepare(const void *seqBase, const void *bankFiles[], const void *warcFiles[], const bool warcIsIndividuals[], s32 seqOffset)
void SetSequenceUserprocCallback(SequenceUserprocCallback callback, void *arg)
f32 m_TickFraction
Definition snd_SequenceSoundPlayer.h:202
void SetTrackTvSurroundPan(u32 trackBitFlag, f32 span)
const SequenceTrackAllocator * GetTrackAllocator()
Definition snd_SequenceSoundPlayer.h:167
void SetTrackSilence(unsigned long trackBitFlag, bool silenceFlag, int fadeTimes)
ParserPlayerParam m_ParserParam
Definition snd_SequenceSoundPlayer.h:206
s16 GetLocalVariable(int varNo) const
static s32 GetSkipIntervalTick()
f32 m_PanRange
Definition snd_SequenceSoundPlayer.h:200
const ParserPlayerParam & GetParserPlayerParam() const
Definition snd_SequenceSoundPlayer.h:159
static void InitSequenceSoundPlayer()
int ParseNextTick(bool doNoteOn)
virtual void OnUpdateFrameSoundThread()
Definition snd_SequenceSoundPlayer.h:174
virtual void InvalidateData(const void *start, const void *end)
void SetTrackOutputLine(u32 trackBitFlag, u32 outputLine)
void SetTrackMute(u32 trackBitFlag, SeqMute mute)
virtual void Pause(bool flag)
void SetTrackVelocityRange(u32 trackBitFlag, u8 range)
Channel * NoteOn(u8 bankIndex, const NoteOnInfo ¬eOnInfo)
void SetChannelPriority(int priority)
void SetTrackModSpeed(u32 trackBitFlag, f32 speed)
u32 GetTickCounter() const
Definition snd_SequenceSoundPlayer.h:161
static s16 GetGlobalVariable(int varNo)
virtual void OnShutdownSoundThread()
Definition snd_SequenceSoundPlayer.h:175
const WaveArchiveFileReader & GetWaveArchiveFileReader(u8 bankIndex) const
Definition snd_SequenceSoundPlayer.h:133
void SetTrackPitch(u32 trackBitFlag, f32 pitch)
void SetPanRange(f32 panRange)
f32 m_TempoRatio
Definition snd_SequenceSoundPlayer.h:201
void SetTrackLpfFreq(u32 trackBitFlag, f32 lpfFreq)
void SetTrackDrcSurroundPan(u32 drcIndex, u32 trackBitFlag, f32 span)
ParserPlayerParam & GetParserPlayerParam()
Definition snd_SequenceSoundPlayer.h:160
static const int DEFAULT_TEMPO
Definition snd_SequenceSoundPlayer.h:43
u32 m_SkipTickCounter
Definition snd_SequenceSoundPlayer.h:203
SequenceTrack * GetPlayerTrack(int trackNo)
void CloseTrack(int trackNo)
static const int DEFAULT_TIMEBASE
Definition snd_SequenceSoundPlayer.h:42
Definition snd_SequenceTrackAllocator.h:12
Definition snd_SoundThread.h:12
Definition snd_SoundThread.h:9
Definition snd_BasicSound.h:136
Definition snd_BasicSound.cpp:3
Definition snd_BasicSound.cpp:3
SeqMute
Definition snd_Global.h:33
AuxBus
Definition snd_Global.h:25
void(* SequenceUserprocCallback)(u16 procId, SequenceUserprocCallbackParam *param, void *arg)
Definition snd_SequenceSoundPlayer.h:23
Definition snd_SequenceSoundPlayer.h:15
vs16 * trackVariable
Definition snd_SequenceSoundPlayer.h:18
vs16 * globalVariable
Definition snd_SequenceSoundPlayer.h:17
bool cmpFlag
Definition snd_SequenceSoundPlayer.h:19
vs16 * localVariable
Definition snd_SequenceSoundPlayer.h:16
Definition snd_NoteOnCallback.h:11
Definition snd_SequenceSoundPlayer.h:49
u8 priority
Definition snd_SequenceSoundPlayer.h:51
u8 volume
Definition snd_SequenceSoundPlayer.h:50
u8 timebase
Definition snd_SequenceSoundPlayer.h:52
NoteOnCallback * callback
Definition snd_SequenceSoundPlayer.h:55
u16 tempo
Definition snd_SequenceSoundPlayer.h:53