NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
nw4r::snd::detail::SeqPlayer Class Reference
Inheritance diagram for nw4r::snd::detail::SeqPlayer:
[legend]

Description

Definition at line 47 of file snd_SeqPlayer.h.

Classes

struct  ParserPlayerParam
 

Public Types

enum  OffsetType {
  OFFSET_TYPE_TICK ,
  OFFSET_TYPE_MILLISEC
}
 
enum  SetupResult {
  SETUP_SUCCESS ,
  SETUP_ERR_CANNOT_ALLOCATE_TRACK ,
  SETUP_ERR_UNKNOWN
}
 
typedef void SeqUserprocCallback(u16 procId, SeqUserprocCallbackParam *param, void *callbackData)
 
- Public Types inherited from nw4r::snd::detail::DisposeCallback
typedef ut::LinkList< DisposeCallback, 0x00 > LinkList
 
- Public Types inherited from nw4r::snd::detail::SoundThread::PlayerCallback
typedef ut::LinkList< PlayerCallback, 0x00 > LinkList
 

Public Member Functions

virtual bool Start ()
 
virtual void Stop ()
 
virtual void Pause (bool flag)
 
virtual bool IsActive () const
 
virtual bool IsStarted () const
 
virtual bool IsPause () const
 
virtual void InvalidateData (void const *start, void const *end)
 
virtual void InvalidateWaveData (void const *, void const *)
 
virtual void ChannelCallback (Channel *channel ATTR_UNUSED)
 
virtual void OnUpdateFrameSoundThread ()
 
virtual void OnShutdownSoundThread ()
 
SetupResult Setup (SeqTrackAllocator *trackAllocator, ulong allocTracks, int voiceOutCount, NoteOnCallback *callback)
 
void Update ()
 
void Skip (OffsetType offsetType, int offset)
 
void Shutdown ()
 
bool IsReleasePriorityFix () const
 
f32 GetPanRange () const
 
int GetVoiceOutCount () const
 
ParserPlayerParamGetParserPlayerParam ()
 
SeqTrackGetPlayerTrack (int trackNo)
 
s16 volatile * GetVariablePtr (int varNo)
 
s16 GetLocalVariable (int varNo) const
 
void SetLocalVariable (int varNo, s16 value)
 
void SetTempoRatio (f32 tempo)
 
void SetReleasePriorityFix (bool fix)
 
void SetChannelPriority (int priority)
 
void SetSeqUserprocCallback (SeqUserprocCallback *callback, void *arg)
 
void SetPlayerTrack (int trackNo, SeqTrack *track)
 
f32 CalcTickPerMsec () const
 
f32 CalcTickPerMinute () const
 
ulong GetTickCounter () const
 
void SetSeqData (void const *seqBase, s32 seqOffset)
 
void CallSeqUserprocCallback (u16 procId, SeqTrack *track)
 
ChannelNoteOn (int bankNo, NoteOnInfo const &noteOnInfo)
 
void SetTrackMute (ulong trackFlags, SeqMute mute)
 
void SetTrackSilence (ulong trackFlags, bool silence, int fadeFrames)
 
void SetTrackVolume (ulong trackFlags, f32 volume)
 
- Public Member Functions inherited from nw4r::snd::detail::BasicPlayer
void InitParam ()
 
void SetRemoteOutVolume (int remote, f32 volume)
 
f32 GetRemoteOutVolume (int remote) const
 
f32 GetVolume () const
 
f32 GetPitch () const
 
f32 GetPan () const
 
f32 GetSurroundPan () const
 
f32 GetLpfFreq () const
 
f32 GetBiquadValue () const
 
int GetBiquadType () const
 
int GetRemoteFilter () const
 
int GetOutputLine () const
 
f32 GetMainOutVolume () const
 
f32 GetMainSend () const
 
PanMode GetPanMode () const
 
PanCurve GetPanCurve () const
 
f32 GetFxSend (AuxBus bus) const
 
VoiceOutParam const & GetVoiceOutParam (int index) const
 
ulong GetId () const
 
void SetVolume (f32 volume)
 
void SetPitch (f32 pitch)
 
void SetPan (f32 pan)
 
void SetSurroundPan (f32 surroundPan)
 
void SetLpfFreq (f32 lpfFreq)
 
void SetBiquadFilter (int type, f32 value)
 
void SetRemoteFilter (int filter)
 
void SetOutputLine (int lineFlag)
 
void SetMainOutVolume (f32 volume)
 
void SetMainSend (f32 send)
 
void SetPanMode (PanMode panMode)
 
void SetPanCurve (PanCurve panCurve)
 
void SetFxSend (AuxBus bus, f32 send)
 
void SetVoiceOutParam (int index, VoiceOutParam const &param)
 
void SetId (ulong id)
 
- Public Member Functions inherited from nw4r::snd::detail::SoundThread::PlayerCallback
virtual void OnUpdateVoiceSoundThread ()
 

Static Public Member Functions

static void SetGlobalVariable (int varNo, s16 value)
 
static void InitSeqPlayer ()
 

Static Public Attributes

static int const MAX_SKIP_TICK_PER_FRAME = 768
 
static int const DEFAULT_TEMPO = 120
 
static int const DEFAULT_TIMEBASE = 48
 
static int const VARIABLE_DEFAULT_VALUE = -1
 
static int const TRACK_NUM_PER_PLAYER = 16
 
static int const GLOBAL_VARIABLE_NUM = 16
 
static int const PLAYER_VARIABLE_NUM = 16
 
static const int TRACK_NUM = 16
 

Private Member Functions

void InitParam (int voiceOutCount, NoteOnCallback *callback)
 
void UpdateChannelParam ()
 
void CloseTrack (int trackNo)
 
void FinishPlayer ()
 
int ParseNextTick (bool doNoteOn)
 
void UpdateTick (int msec)
 
void SkipTick ()
 
template<typename T>
void SetTrackParam (ulong trackFlags, void(SeqTrack::*pSetter)(T), T param)
 
template<typename T, typename U>
void SetTrackParam (ulong trackFlags, void(SeqTrack::*pSetter)(T, U), T param, U param2)
 

Private Attributes

bool mActiveFlag
 
bool mStartedFlag
 
bool mPauseFlag
 
bool mReleasePriorityFixFlag
 
f32 mPanRange
 
f32 mTempoRatio
 
f32 mTickFraction
 
ulong mSkipTickCounter
 
f32 mSkipTimeCounter
 
s32 mVoiceOutCount
 
ParserPlayerParam mParserParam
 
SeqTrackAllocatormSeqTrackAllocator
 
SeqUserprocCallback * mSeqUserprocCallback
 
void * mSeqUserprocCallbackArg
 
SeqTrackmTracks [TRACK_NUM_PER_PLAYER]
 
s16 volatile mLocalVariable [PLAYER_VARIABLE_NUM]
 
ulong mTickCounter
 

Static Private Attributes

static s16 mGlobalVariable [GLOBAL_VARIABLE_NUM]
 

Additional Inherited Members

- Public Attributes inherited from nw4r::snd::detail::DisposeCallback
ut::LinkListNode mDisposeLink
 

Member Typedef Documentation

◆ SeqUserprocCallback

typedef void nw4r::snd::detail::SeqPlayer::SeqUserprocCallback(u16 procId, SeqUserprocCallbackParam *param, void *callbackData)

Definition at line 86 of file snd_SeqPlayer.h.

Member Enumeration Documentation

◆ OffsetType

enum nw4r::snd::detail::SeqPlayer::OffsetType

Definition at line 54 of file snd_SeqPlayer.h.

◆ SetupResult

enum nw4r::snd::detail::SeqPlayer::SetupResult

Definition at line 61 of file snd_SeqPlayer.h.

Member Function Documentation

◆ Start()

virtual bool nw4r::snd::detail::SeqPlayer::Start ( )
virtual

◆ Stop()

virtual void nw4r::snd::detail::SeqPlayer::Stop ( )
virtual

◆ Pause()

virtual void nw4r::snd::detail::SeqPlayer::Pause ( bool flag)
virtual

◆ IsActive()

virtual bool nw4r::snd::detail::SeqPlayer::IsActive ( ) const
inlinevirtual

Implements nw4r::snd::detail::BasicPlayer.

Definition at line 101 of file snd_SeqPlayer.h.

◆ IsStarted()

virtual bool nw4r::snd::detail::SeqPlayer::IsStarted ( ) const
inlinevirtual

Implements nw4r::snd::detail::BasicPlayer.

Definition at line 102 of file snd_SeqPlayer.h.

◆ IsPause()

virtual bool nw4r::snd::detail::SeqPlayer::IsPause ( ) const
inlinevirtual

Implements nw4r::snd::detail::BasicPlayer.

Definition at line 103 of file snd_SeqPlayer.h.

◆ InvalidateData()

virtual void nw4r::snd::detail::SeqPlayer::InvalidateData ( void const * start,
void const * end )
virtual

◆ InvalidateWaveData()

virtual void nw4r::snd::detail::SeqPlayer::InvalidateWaveData ( void const * ,
void const *  )
inlinevirtual

Implements nw4r::snd::detail::DisposeCallback.

Definition at line 107 of file snd_SeqPlayer.h.

◆ ChannelCallback()

virtual void nw4r::snd::detail::SeqPlayer::ChannelCallback ( Channel *channel ATTR_UNUSED)
inlinevirtual

Definition at line 113 of file snd_SeqPlayer.h.

◆ OnUpdateFrameSoundThread()

virtual void nw4r::snd::detail::SeqPlayer::OnUpdateFrameSoundThread ( )
inlinevirtual

Reimplemented from nw4r::snd::detail::SoundThread::PlayerCallback.

Definition at line 116 of file snd_SeqPlayer.h.

◆ OnShutdownSoundThread()

virtual void nw4r::snd::detail::SeqPlayer::OnShutdownSoundThread ( )
inlinevirtual

Reimplemented from nw4r::snd::detail::SoundThread::PlayerCallback.

Definition at line 117 of file snd_SeqPlayer.h.

◆ IsReleasePriorityFix()

bool nw4r::snd::detail::SeqPlayer::IsReleasePriorityFix ( ) const
inline

Definition at line 126 of file snd_SeqPlayer.h.

◆ GetPanRange()

f32 nw4r::snd::detail::SeqPlayer::GetPanRange ( ) const
inline

Definition at line 127 of file snd_SeqPlayer.h.

◆ GetVoiceOutCount()

int nw4r::snd::detail::SeqPlayer::GetVoiceOutCount ( ) const
inline

Definition at line 128 of file snd_SeqPlayer.h.

◆ GetParserPlayerParam()

ParserPlayerParam & nw4r::snd::detail::SeqPlayer::GetParserPlayerParam ( )
inline

Definition at line 129 of file snd_SeqPlayer.h.

◆ CalcTickPerMsec()

f32 nw4r::snd::detail::SeqPlayer::CalcTickPerMsec ( ) const
inline

Definition at line 143 of file snd_SeqPlayer.h.

◆ CalcTickPerMinute()

f32 nw4r::snd::detail::SeqPlayer::CalcTickPerMinute ( ) const
inline

Definition at line 147 of file snd_SeqPlayer.h.

◆ GetTickCounter()

ulong nw4r::snd::detail::SeqPlayer::GetTickCounter ( ) const
inline

Definition at line 152 of file snd_SeqPlayer.h.

◆ SetTrackParam() [1/2]

template<typename T>
void nw4r::snd::detail::SeqPlayer::SetTrackParam ( ulong trackFlags,
void(SeqTrack::* pSetter )(T),
T param )
inlineprivate

Definition at line 180 of file snd_SeqPlayer.h.

◆ SetTrackParam() [2/2]

template<typename T, typename U>
void nw4r::snd::detail::SeqPlayer::SetTrackParam ( ulong trackFlags,
void(SeqTrack::* pSetter )(T, U),
T param,
U param2 )
inlineprivate

Definition at line 197 of file snd_SeqPlayer.h.

Member Data Documentation

◆ MAX_SKIP_TICK_PER_FRAME

int const nw4r::snd::detail::SeqPlayer::MAX_SKIP_TICK_PER_FRAME = 768
static

Definition at line 215 of file snd_SeqPlayer.h.

◆ DEFAULT_TEMPO

int const nw4r::snd::detail::SeqPlayer::DEFAULT_TEMPO = 120
static

Definition at line 216 of file snd_SeqPlayer.h.

◆ DEFAULT_TIMEBASE

int const nw4r::snd::detail::SeqPlayer::DEFAULT_TIMEBASE = 48
static

Definition at line 217 of file snd_SeqPlayer.h.

◆ VARIABLE_DEFAULT_VALUE

int const nw4r::snd::detail::SeqPlayer::VARIABLE_DEFAULT_VALUE = -1
static

Definition at line 218 of file snd_SeqPlayer.h.

◆ TRACK_NUM_PER_PLAYER

int const nw4r::snd::detail::SeqPlayer::TRACK_NUM_PER_PLAYER = 16
static

Definition at line 219 of file snd_SeqPlayer.h.

◆ GLOBAL_VARIABLE_NUM

int const nw4r::snd::detail::SeqPlayer::GLOBAL_VARIABLE_NUM = 16
static

Definition at line 220 of file snd_SeqPlayer.h.

◆ PLAYER_VARIABLE_NUM

int const nw4r::snd::detail::SeqPlayer::PLAYER_VARIABLE_NUM = 16
static

Definition at line 221 of file snd_SeqPlayer.h.

◆ TRACK_NUM

const int nw4r::snd::detail::SeqPlayer::TRACK_NUM = 16
static

Definition at line 223 of file snd_SeqPlayer.h.

◆ mGlobalVariable

s16 nw4r::snd::detail::SeqPlayer::mGlobalVariable[GLOBAL_VARIABLE_NUM]
staticprivate

Definition at line 226 of file snd_SeqPlayer.h.

◆ mActiveFlag

bool nw4r::snd::detail::SeqPlayer::mActiveFlag
private

Definition at line 233 of file snd_SeqPlayer.h.

◆ mStartedFlag

bool nw4r::snd::detail::SeqPlayer::mStartedFlag
private

Definition at line 234 of file snd_SeqPlayer.h.

◆ mPauseFlag

bool nw4r::snd::detail::SeqPlayer::mPauseFlag
private

Definition at line 235 of file snd_SeqPlayer.h.

◆ mReleasePriorityFixFlag

bool nw4r::snd::detail::SeqPlayer::mReleasePriorityFixFlag
private

Definition at line 236 of file snd_SeqPlayer.h.

◆ mPanRange

f32 nw4r::snd::detail::SeqPlayer::mPanRange
private

Definition at line 237 of file snd_SeqPlayer.h.

◆ mTempoRatio

f32 nw4r::snd::detail::SeqPlayer::mTempoRatio
private

Definition at line 238 of file snd_SeqPlayer.h.

◆ mTickFraction

f32 nw4r::snd::detail::SeqPlayer::mTickFraction
private

Definition at line 239 of file snd_SeqPlayer.h.

◆ mSkipTickCounter

ulong nw4r::snd::detail::SeqPlayer::mSkipTickCounter
private

Definition at line 240 of file snd_SeqPlayer.h.

◆ mSkipTimeCounter

f32 nw4r::snd::detail::SeqPlayer::mSkipTimeCounter
private

Definition at line 241 of file snd_SeqPlayer.h.

◆ mVoiceOutCount

s32 nw4r::snd::detail::SeqPlayer::mVoiceOutCount
private

Definition at line 242 of file snd_SeqPlayer.h.

◆ mParserParam

ParserPlayerParam nw4r::snd::detail::SeqPlayer::mParserParam
private

Definition at line 243 of file snd_SeqPlayer.h.

◆ mSeqTrackAllocator

SeqTrackAllocator* nw4r::snd::detail::SeqPlayer::mSeqTrackAllocator
private

Definition at line 244 of file snd_SeqPlayer.h.

◆ mSeqUserprocCallback

SeqUserprocCallback* nw4r::snd::detail::SeqPlayer::mSeqUserprocCallback
private

Definition at line 245 of file snd_SeqPlayer.h.

◆ mSeqUserprocCallbackArg

void* nw4r::snd::detail::SeqPlayer::mSeqUserprocCallbackArg
private

Definition at line 246 of file snd_SeqPlayer.h.

◆ mTracks

SeqTrack* nw4r::snd::detail::SeqPlayer::mTracks[TRACK_NUM_PER_PLAYER]
private

Definition at line 247 of file snd_SeqPlayer.h.

◆ mLocalVariable

s16 volatile nw4r::snd::detail::SeqPlayer::mLocalVariable[PLAYER_VARIABLE_NUM]
private

Definition at line 248 of file snd_SeqPlayer.h.

◆ mTickCounter

ulong nw4r::snd::detail::SeqPlayer::mTickCounter
private

Definition at line 249 of file snd_SeqPlayer.h.