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

Description

Definition at line 32 of file snd_Voice.h.

Public Types

enum  VoiceCallbackStatus {
  CALLBACK_STATUS_FINISH_WAVE ,
  CALLBACK_STATUS_CANCEL ,
  CALLBACK_STATUS_DROP_VOICE ,
  CALLBACK_STATUS_DROP_DSP
}
 
enum  VoiceSyncFlag {
  SYNC_AX_SRC_INITIAL = (1 << 0) ,
  SYNC_AX_VOICE = (1 << 1) ,
  SYNC_AX_SRC = (1 << 2) ,
  SYNC_AX_VE = (1 << 3) ,
  SYNC_AX_MIX = (1 << 4) ,
  SYNC_AX_LPF = (1 << 5) ,
  SYNC_AX_REMOTE = (1 << 7) ,
  SYNC_AX_BIQUAD = (1 << 8)
}
 
typedef ut::LinkList< Voice, 0xfc > LinkList
 
typedef void Callback(Voice *dropVoice, VoiceCallbackStatus status, void *callbackData)
 
- Public Types inherited from nw4r::snd::detail::DisposeCallback
typedef ut::LinkList< DisposeCallback, 0x00 > LinkList
 

Public Member Functions

virtual void InvalidateData (void const *, void const *)
 
virtual void InvalidateWaveData (void const *start, void const *end)
 
void Setup (WaveInfo const &waveParam, ulong startOffset)
 
int GetPriority () const
 
void SetVoiceOutParam (int voiceOutIndex, VoiceOutParam const &voiceOutParam)
 
void SetVoiceOutParamPitchDisableFlag (bool flag)
 
void SetRemoteFilter (int filter)
 
void SetBiquadFilter (int type, f32 value)
 
void SetPriority (int priority)
 
void SetPan (f32 pan)
 
void SetSurroundPan (f32 surroundPan)
 
void SetLpfFreq (f32 lpfFreq)
 
void SetOutputLine (int flag)
 
void SetMainOutVolume (f32 volume)
 
void SetMainSend (f32 send)
 
void SetFxSend (AuxBus bus, f32 send)
 
void SetRemoteOutVolume (int remote, f32 volume)
 
void SetPitch (f32 pitch)
 
void SetVolume (f32 volume)
 
void SetVeVolume (f32 targetVolume, f32 initVolume)
 
void SetPanMode (PanMode panMode)
 
void SetPanCurve (PanCurve panCurve)
 
bool IsActive () const
 
bool IsPlayFinished () const
 
bool IsRun () const
 
SampleFormat GetFormat () const
 
ulong GetCurrentPlayingSample () const
 
int GetPhysicalVoiceCount () const
 
void SetVoiceType (AxVoice::VoiceType type)
 
void SetLoopFlag (bool loopFlag)
 
void SetLoopStart (int channelIndex, void const *baseAddress, ulong samples)
 
void SetLoopEnd (int channelIndex, void const *baseAddress, ulong samples)
 
void SetAdpcmLoop (int channelIndex, AdpcmLoopParam const *param)
 
bool Acquire (int channelCount, int voiceOutCount, int priority, Callback *callback, void *callbackData)
 
void Free ()
 
void InitParam (int channelCount, int voiceOutCount, Callback *callback, void *callbackData)
 
void Start ()
 
void Pause (bool flag)
 
void Stop ()
 
void StopAtPoint (int channelIndex, void const *baseAddress, ulong samples)
 

Public Attributes

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

Static Public Attributes

static f32 const SURROUND_ATTENUATED_DB
 
static ulong const VOICE_PRIORITY_RELEASE
 
static ulong const VOICE_PRIORITY_ALLOC
 
static ulong const VOICE_PRIORITY_USE
 
static int const VOICE_PRIORITY_FREE
 
static ulong const VOICE_PRIORITY_NODROP
 
static ulong const VOICE_PRIORITY_MAX = 31
 
static int const PRIORITY_RELEASE
 
static int const PRIORITY_NODROP
 
static int const PRIORITY_MIN = 0
 
static int const PRIORITY_MAX = 255
 
static int const REMOTE_FILTER_MAX = 127
 
static int const REMOTE_FILTER_MIN = 0
 
static f32 const SEND_MAX
 
static f32 const SEND_MIN
 
static f32 const BIQUAD_VALUE_MAX
 
static f32 const BIQUAD_VALUE_MIN
 
static f32 const CUTOFF_FREQ_MAX
 
static f32 const CUTOFF_FREQ_MIN
 
static f32 const SPAN_CENTER
 
static f32 const SPAN_REAR
 
static f32 const SPAN_FRONT
 
static f32 const PAN_CENTER
 
static f32 const PAN_RIGHT
 
static f32 const PAN_LEFT
 
static f32 const VOLUME_MAX
 
static f32 const VOLUME_MIN
 
static int const CHANNEL_MAX = 2
 
static int const UPDATE_BIQUAD = 1 << 8
 
static int const UPDATE_REMOTE_FILTER = 1 << 7
 
static int const UPDATE_LPF = 1 << 5
 
static int const UPDATE_MIX = 1 << 4
 
static int const UPDATE_VE = 1 << 3
 
static int const UPDATE_SRC = 1 << 2
 
static int const UPDATE_PAUSE = 1 << 1
 
static int const UPDATE_START = 1 << 0
 

Private Member Functions

void RunAllAxVoice ()
 
void StopAllAxVoice ()
 
void SyncAxVoice ()
 
void StopFinished ()
 
void Calc ()
 
void CalcAxSrc (bool initialUpdate)
 
void CalcAxVe ()
 
bool CalcAxMix ()
 
void CalcAxLpf ()
 
void CalcAxBiquadFilter ()
 
void CalcAxRemoteFilter ()
 
void CalcMixParam (int channelIndex, int voiceOutIndex, AxVoice::MixParam *mix, AxVoice::RemoteMixParam *rmtmix)
 
void Update ()
 
void UpdateVoicesPriority ()
 
void ResetDelta ()
 
void TransformDpl2Pan (f32 *outPan, f32 *outSurroundPan, f32 inPan, f32 inSurroundPan)
 

Static Private Member Functions

static void AxVoiceCallbackFunc (AxVoice *dropVoice, AxVoice::AxVoiceCallbackStatus status, void *callbackData)
 

Private Attributes

AxVoicemAxVoice [CHANNEL_MAX][4]
 
VoiceOutParam mVoiceOutParam [4]
 
int mChannelCount
 
int mVoiceOutCount
 
Callback * mCallback
 
void * mCallbackData
 
bool mActiveFlag
 
bool mStartFlag
 
bool mStartedFlag
 
bool mPauseFlag
 
bool mPausingFlag
 
bool mVoiceOutParamPitchDisableFlag
 
u16 mSyncFlag
 
u8 mRemoteFilter
 
u8 mBiquadType
 
int mPriority
 
f32 mPan
 
f32 mSurroundPan
 
f32 mLpfFreq
 
f32 mBiquadValue
 
int mOutputLineFlag
 
f32 mMainOutVolume
 
f32 mMainSend
 
f32 mFxSend [AUX_BUS_NUM]
 
f32 mRemoteOutVolume [4]
 
f32 mPitch
 
f32 mVolume
 
f32 mVeInitVolume
 
f32 mVeTargetVolume
 
PanMode mPanMode
 
PanCurve mPanCurve
 

Member Typedef Documentation

◆ LinkList

Definition at line 58 of file snd_Voice.h.

◆ Callback

typedef void nw4r::snd::detail::Voice::Callback(Voice *dropVoice, VoiceCallbackStatus status, void *callbackData)

Definition at line 60 of file snd_Voice.h.

Member Enumeration Documentation

◆ VoiceCallbackStatus

enum nw4r::snd::detail::Voice::VoiceCallbackStatus

Definition at line 37 of file snd_Voice.h.

◆ VoiceSyncFlag

enum nw4r::snd::detail::Voice::VoiceSyncFlag

Definition at line 45 of file snd_Voice.h.

Member Function Documentation

◆ InvalidateData()

virtual void nw4r::snd::detail::Voice::InvalidateData ( void const * ,
void const *  )
inlinevirtual

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

Definition at line 71 of file snd_Voice.h.

◆ InvalidateWaveData()

virtual void nw4r::snd::detail::Voice::InvalidateWaveData ( void const * start,
void const * end )
virtual

◆ GetPriority()

int nw4r::snd::detail::Voice::GetPriority ( ) const
inline

Definition at line 77 of file snd_Voice.h.

◆ SetVoiceOutParamPitchDisableFlag()

void nw4r::snd::detail::Voice::SetVoiceOutParamPitchDisableFlag ( bool flag)
inline

Definition at line 81 of file snd_Voice.h.

◆ IsActive()

bool nw4r::snd::detail::Voice::IsActive ( ) const
inline

Definition at line 102 of file snd_Voice.h.

◆ IsPlayFinished()

bool nw4r::snd::detail::Voice::IsPlayFinished ( ) const
inline

Definition at line 103 of file snd_Voice.h.

◆ IsRun()

bool nw4r::snd::detail::Voice::IsRun ( ) const
inline

Definition at line 107 of file snd_Voice.h.

◆ GetPhysicalVoiceCount()

int nw4r::snd::detail::Voice::GetPhysicalVoiceCount ( ) const
inline

Definition at line 113 of file snd_Voice.h.

Member Data Documentation

◆ SURROUND_ATTENUATED_DB

f32 const nw4r::snd::detail::Voice::SURROUND_ATTENUATED_DB
static

Definition at line 170 of file snd_Voice.h.

◆ VOICE_PRIORITY_RELEASE

ulong const nw4r::snd::detail::Voice::VOICE_PRIORITY_RELEASE
static

Definition at line 171 of file snd_Voice.h.

◆ VOICE_PRIORITY_ALLOC

ulong const nw4r::snd::detail::Voice::VOICE_PRIORITY_ALLOC
static

Definition at line 172 of file snd_Voice.h.

◆ VOICE_PRIORITY_USE

ulong const nw4r::snd::detail::Voice::VOICE_PRIORITY_USE
static

Definition at line 173 of file snd_Voice.h.

◆ VOICE_PRIORITY_FREE

int const nw4r::snd::detail::Voice::VOICE_PRIORITY_FREE
static

Definition at line 174 of file snd_Voice.h.

◆ VOICE_PRIORITY_NODROP

ulong const nw4r::snd::detail::Voice::VOICE_PRIORITY_NODROP
static

Definition at line 175 of file snd_Voice.h.

◆ VOICE_PRIORITY_MAX

ulong const nw4r::snd::detail::Voice::VOICE_PRIORITY_MAX = 31
static

Definition at line 176 of file snd_Voice.h.

◆ PRIORITY_RELEASE

int const nw4r::snd::detail::Voice::PRIORITY_RELEASE
static

Definition at line 177 of file snd_Voice.h.

◆ PRIORITY_NODROP

int const nw4r::snd::detail::Voice::PRIORITY_NODROP
static

Definition at line 178 of file snd_Voice.h.

◆ PRIORITY_MIN

int const nw4r::snd::detail::Voice::PRIORITY_MIN = 0
static

Definition at line 179 of file snd_Voice.h.

◆ PRIORITY_MAX

int const nw4r::snd::detail::Voice::PRIORITY_MAX = 255
static

Definition at line 180 of file snd_Voice.h.

◆ REMOTE_FILTER_MAX

int const nw4r::snd::detail::Voice::REMOTE_FILTER_MAX = 127
static

Definition at line 181 of file snd_Voice.h.

◆ REMOTE_FILTER_MIN

int const nw4r::snd::detail::Voice::REMOTE_FILTER_MIN = 0
static

Definition at line 182 of file snd_Voice.h.

◆ SEND_MAX

f32 const nw4r::snd::detail::Voice::SEND_MAX
static

Definition at line 183 of file snd_Voice.h.

◆ SEND_MIN

f32 const nw4r::snd::detail::Voice::SEND_MIN
static

Definition at line 184 of file snd_Voice.h.

◆ BIQUAD_VALUE_MAX

f32 const nw4r::snd::detail::Voice::BIQUAD_VALUE_MAX
static

Definition at line 185 of file snd_Voice.h.

◆ BIQUAD_VALUE_MIN

f32 const nw4r::snd::detail::Voice::BIQUAD_VALUE_MIN
static

Definition at line 186 of file snd_Voice.h.

◆ CUTOFF_FREQ_MAX

f32 const nw4r::snd::detail::Voice::CUTOFF_FREQ_MAX
static

Definition at line 187 of file snd_Voice.h.

◆ CUTOFF_FREQ_MIN

f32 const nw4r::snd::detail::Voice::CUTOFF_FREQ_MIN
static

Definition at line 188 of file snd_Voice.h.

◆ SPAN_CENTER

f32 const nw4r::snd::detail::Voice::SPAN_CENTER
static

Definition at line 189 of file snd_Voice.h.

◆ SPAN_REAR

f32 const nw4r::snd::detail::Voice::SPAN_REAR
static

Definition at line 190 of file snd_Voice.h.

◆ SPAN_FRONT

f32 const nw4r::snd::detail::Voice::SPAN_FRONT
static

Definition at line 191 of file snd_Voice.h.

◆ PAN_CENTER

f32 const nw4r::snd::detail::Voice::PAN_CENTER
static

Definition at line 192 of file snd_Voice.h.

◆ PAN_RIGHT

f32 const nw4r::snd::detail::Voice::PAN_RIGHT
static

Definition at line 193 of file snd_Voice.h.

◆ PAN_LEFT

f32 const nw4r::snd::detail::Voice::PAN_LEFT
static

Definition at line 194 of file snd_Voice.h.

◆ VOLUME_MAX

f32 const nw4r::snd::detail::Voice::VOLUME_MAX
static

Definition at line 195 of file snd_Voice.h.

◆ VOLUME_MIN

f32 const nw4r::snd::detail::Voice::VOLUME_MIN
static

Definition at line 196 of file snd_Voice.h.

◆ CHANNEL_MAX

int const nw4r::snd::detail::Voice::CHANNEL_MAX = 2
static

Definition at line 197 of file snd_Voice.h.

◆ UPDATE_BIQUAD

int const nw4r::snd::detail::Voice::UPDATE_BIQUAD = 1 << 8
static

Definition at line 198 of file snd_Voice.h.

◆ UPDATE_REMOTE_FILTER

int const nw4r::snd::detail::Voice::UPDATE_REMOTE_FILTER = 1 << 7
static

Definition at line 199 of file snd_Voice.h.

◆ UPDATE_LPF

int const nw4r::snd::detail::Voice::UPDATE_LPF = 1 << 5
static

Definition at line 201 of file snd_Voice.h.

◆ UPDATE_MIX

int const nw4r::snd::detail::Voice::UPDATE_MIX = 1 << 4
static

Definition at line 202 of file snd_Voice.h.

◆ UPDATE_VE

int const nw4r::snd::detail::Voice::UPDATE_VE = 1 << 3
static

Definition at line 203 of file snd_Voice.h.

◆ UPDATE_SRC

int const nw4r::snd::detail::Voice::UPDATE_SRC = 1 << 2
static

Definition at line 204 of file snd_Voice.h.

◆ UPDATE_PAUSE

int const nw4r::snd::detail::Voice::UPDATE_PAUSE = 1 << 1
static

Definition at line 205 of file snd_Voice.h.

◆ UPDATE_START

int const nw4r::snd::detail::Voice::UPDATE_START = 1 << 0
static

Definition at line 206 of file snd_Voice.h.

◆ mAxVoice

AxVoice* nw4r::snd::detail::Voice::mAxVoice[CHANNEL_MAX][4]
private

Definition at line 211 of file snd_Voice.h.

◆ mVoiceOutParam

VoiceOutParam nw4r::snd::detail::Voice::mVoiceOutParam[4]
private

Definition at line 212 of file snd_Voice.h.

◆ mChannelCount

int nw4r::snd::detail::Voice::mChannelCount
private

Definition at line 213 of file snd_Voice.h.

◆ mVoiceOutCount

int nw4r::snd::detail::Voice::mVoiceOutCount
private

Definition at line 214 of file snd_Voice.h.

◆ mCallback

Callback* nw4r::snd::detail::Voice::mCallback
private

Definition at line 215 of file snd_Voice.h.

◆ mCallbackData

void* nw4r::snd::detail::Voice::mCallbackData
private

Definition at line 216 of file snd_Voice.h.

◆ mActiveFlag

bool nw4r::snd::detail::Voice::mActiveFlag
private

Definition at line 217 of file snd_Voice.h.

◆ mStartFlag

bool nw4r::snd::detail::Voice::mStartFlag
private

Definition at line 218 of file snd_Voice.h.

◆ mStartedFlag

bool nw4r::snd::detail::Voice::mStartedFlag
private

Definition at line 219 of file snd_Voice.h.

◆ mPauseFlag

bool nw4r::snd::detail::Voice::mPauseFlag
private

Definition at line 220 of file snd_Voice.h.

◆ mPausingFlag

bool nw4r::snd::detail::Voice::mPausingFlag
private

Definition at line 221 of file snd_Voice.h.

◆ mVoiceOutParamPitchDisableFlag

bool nw4r::snd::detail::Voice::mVoiceOutParamPitchDisableFlag
private

Definition at line 222 of file snd_Voice.h.

◆ mSyncFlag

u16 nw4r::snd::detail::Voice::mSyncFlag
private

Definition at line 223 of file snd_Voice.h.

◆ mRemoteFilter

u8 nw4r::snd::detail::Voice::mRemoteFilter
private

Definition at line 224 of file snd_Voice.h.

◆ mBiquadType

u8 nw4r::snd::detail::Voice::mBiquadType
private

Definition at line 225 of file snd_Voice.h.

◆ mPriority

int nw4r::snd::detail::Voice::mPriority
private

Definition at line 227 of file snd_Voice.h.

◆ mPan

f32 nw4r::snd::detail::Voice::mPan
private

Definition at line 228 of file snd_Voice.h.

◆ mSurroundPan

f32 nw4r::snd::detail::Voice::mSurroundPan
private

Definition at line 229 of file snd_Voice.h.

◆ mLpfFreq

f32 nw4r::snd::detail::Voice::mLpfFreq
private

Definition at line 230 of file snd_Voice.h.

◆ mBiquadValue

f32 nw4r::snd::detail::Voice::mBiquadValue
private

Definition at line 231 of file snd_Voice.h.

◆ mOutputLineFlag

int nw4r::snd::detail::Voice::mOutputLineFlag
private

Definition at line 232 of file snd_Voice.h.

◆ mMainOutVolume

f32 nw4r::snd::detail::Voice::mMainOutVolume
private

Definition at line 233 of file snd_Voice.h.

◆ mMainSend

f32 nw4r::snd::detail::Voice::mMainSend
private

Definition at line 234 of file snd_Voice.h.

◆ mFxSend

f32 nw4r::snd::detail::Voice::mFxSend[AUX_BUS_NUM]
private

Definition at line 235 of file snd_Voice.h.

◆ mRemoteOutVolume

f32 nw4r::snd::detail::Voice::mRemoteOutVolume[4]
private

Definition at line 236 of file snd_Voice.h.

◆ mPitch

f32 nw4r::snd::detail::Voice::mPitch
private

Definition at line 237 of file snd_Voice.h.

◆ mVolume

f32 nw4r::snd::detail::Voice::mVolume
private

Definition at line 238 of file snd_Voice.h.

◆ mVeInitVolume

f32 nw4r::snd::detail::Voice::mVeInitVolume
private

Definition at line 239 of file snd_Voice.h.

◆ mVeTargetVolume

f32 nw4r::snd::detail::Voice::mVeTargetVolume
private

Definition at line 240 of file snd_Voice.h.

◆ mPanMode

PanMode nw4r::snd::detail::Voice::mPanMode
private

Definition at line 241 of file snd_Voice.h.

◆ mPanCurve

PanCurve nw4r::snd::detail::Voice::mPanCurve
private

Definition at line 242 of file snd_Voice.h.

◆ mLinkNode

ut::LinkListNode nw4r::snd::detail::Voice::mLinkNode

Definition at line 244 of file snd_Voice.h.