Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
nw4hbm::snd::detail::AxVoice Class Reference

#include <AxVoice.h>

+ Inheritance diagram for nw4hbm::snd::detail::AxVoice:
+ Collaboration diagram for nw4hbm::snd::detail::AxVoice:

Public Types

enum  CallbackStatus { CALLBACK_STATUS_FINISH_WAVE = 0 , CALLBACK_STATUS_INVALIDATE_WAVE , 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 << 3) , SYNC_AX_VE = (1 << 4) ,
  SYNC_AX_MIX = (1 << 5) , SYNC_AX_LPF = (1 << 6) , SYNC_AX_REMOTE = (1 << 7) , SYNC_AX_BIQUAD = (1 << 8)
}
 
enum  Format { FORMAT_PCM16 = 10 , FORMAT_PCM8 = 25 , FORMAT_ADPCM = 0 }
 
enum  VoiceType { VOICE_TYPE_NORMAL = 0 , VOICE_TYPE_STREAM }
 
enum  SrcType {
  SRC_NONE = 0 , SRC_LINEAR , SRC_4TAP_8K , SRC_4TAP_12K ,
  SRC_4TAP_16K , SRC_4TAP_AUTO
}
 
typedef enum nw4hbm::snd::detail::AxVoice::CallbackStatus CallbackStatus
 
typedef enum nw4hbm::snd::detail::AxVoice::VoiceSyncFlag VoiceSyncFlag
 
typedef enum nw4hbm::snd::detail::AxVoice::Format Format
 
typedef enum nw4hbm::snd::detail::AxVoice::VoiceType VoiceType
 
typedef enum nw4hbm::snd::detail::AxVoice::SrcType SrcType
 
typedef void(*) AxVoiceCallback(AxVoice *drovoice, CallbackStatus status, void *callbackArg)
 

Public Member Functions

 AxVoice ()
 
virtual ~AxVoice ()
 
virtual void InvalidateData (const void *start, const void *end)
 
virtual void InvalidateWaveData (const void *start, const void *end)
 
void Setup (const WaveData &waveParam)
 
void Update ()
 
void Free ()
 
void Start ()
 
void Stop ()
 
void Pause (bool flag)
 
void SetVolume (f32 volume)
 
void SetVeVolume (f32 targetVolume, f32 initVolume)
 
void SetMainOutVolume (f32 volume)
 
void SetRemoteOutVolume (int remoteIndex, f32 volume)
 
void SetPitch (f32 pitch)
 
void SetPan (f32 pan)
 
void SetPan2 (f32 pan)
 
void SetSurroundPan (f32 surroundPan)
 
void SetSurroundPan2 (f32 surroundPan)
 
void SetLpfFreq (f32 lpfFreq)
 
void SetOutputLine (int lineFlag)
 
void SetMainSend (f32 send)
 
void SetFxSend (AuxBus bus, f32 send)
 
void SetRemoteSend (int remoteIndex, f32 send)
 
void SetRemoteFxSend (int remoteIndex, f32 send)
 
void SetPriority (int priority)
 
int GetPriority () const
 
u32 GetCurrentPlayingDspAddress () const
 
u32 GetLoopStartDspAddress () const
 
u32 GetLoopEndDspAddress () const
 
u32 GetCurrentPlayingSample () const
 
void SetAdpcmLoop (int channelIndex, Format format, const AdpcmLoopParam *param)
 
void SetBaseAddress (int channelIndex, const void *baseAddress)
 
bool IsPlayFinished () const
 
bool IsRun ()
 
void SetAxAddr (int channelIndex, bool loopFlag, Format format, const void *waveAddr, u32 loopStart, u32 loopEnd)
 
void SetLoopStart (int channelIndex, const void *baseAddress, u32 samples)
 
void SetLoopEnd (int channelIndex, const void *baseAddress, u32 samples)
 
void SetLoopFlag (bool loopFlag)
 
void StopAtPoint (int channelIndex, const void *baseAddress, u32 samples)
 
void SetVoiceType (VoiceType type)
 
void UpdateAxSrc (bool initialUpdate)
 
void SetAxSrcType (SrcType type)
 
void SetAxAdpcm (int channelIndex, Format format, const AdpcmParam *param)
 
void SetAxAdpcmLoop (int channelIndex, Format format, const AdpcmLoopParam *param) NO_INLINE
 
bool UpdateAxVe ()
 
void UpdateAxMix ()
 
void UpdateAxLpf ()
 
void InitParam (int channelCount, int voiceOutCount, AxVoiceCallback callback, void *callbackData)
 
bool Acquire (int channelCount, int voiceOutCount, int priority, AxVoiceCallback callback, void *callbackData)
 
int GetAxVoiceCount () const
 
template<typename T >
void SetAxParam (void(*func)(AXVPB *, T), T param)
 
Format GetFormat ()
 

Static Public Member Functions

static u32 GetDspAddressBySample (const void *baseAddress, u32 samples, Format format)
 
static u32 GetSampleByDspAddress (const void *baseAddress, u32 addr, Format format)
 
static u32 GetSampleByByte (u32 byte, Format format)
 

Public Attributes

ut::LinkListNode mLinkNode
 

Static Public Attributes

static const int VOICES_MAX = 4
 
static const int PRIORITY_MAX = 255
 

Protected Member Functions

void TransformDpl2Pan (f32 *outPan, f32 *outSurroundPan, f32 inPan, f32 inSurroundPan)
 
void CalcAXPBMIX (int channelIndex, int voiceIndex, AXPBMIX *mix)
 
void CalcAXPBRMTMIX (int channelIndex, int voiceIndex, AXPBRMTMIX *mix)
 

Static Protected Member Functions

static void VoiceCallback (void *callbackData)
 

Protected Attributes

AXVPBmVpb [CHANNEL_MAX][VOICES_MAX]
 
VoiceChannelParam mVoiceChannelParam [CHANNEL_MAX]
 
SoundParam mVoiceOutParam [VOICES_MAX]
 
s32 mChannelCount
 
s32 mVoiceOutCount
 
AxVoiceCallback mCallback
 
void * mCallbackData
 
int mSampleRate
 
Format mFormat
 
bool mActiveFlag
 
bool mStartFlag
 
bool mStartedFlag
 
bool mPauseFlag
 
bool mPausingFlag
 
bool mFirstVeUpdateFlag
 
bool mHomeButtonMuteFlag
 
u8 mSyncFlag
 
int mPriority
 
f32 mPan
 
f32 mSurroundPan
 
f32 mPan2
 
f32 mSurroundPan2
 
f32 mLpfFreq
 
int mOutputLineFlag
 
f32 mMainOutVolume
 
f32 mMainSend
 
f32 mFxSend [AUX_BUS_NUM]
 
f32 mRemoteOutVolume [VOICES_MAX]
 
f32 mRemoteSend [VOICES_MAX]
 
f32 mRemoteFxSend [VOICES_MAX]
 
f32 mPitch
 
f32 mVolume
 
f32 mVolumePrev [VOICES_MAX]
 
f32 mVeInitVolume
 
f32 mVeTargetVolume
 
u16 mGainPrev
 

Friends

class AxManager
 

Member Typedef Documentation

◆ AxVoiceCallback

void(*) nw4hbm::snd::detail::AxVoice::AxVoiceCallback(AxVoice *drovoice, CallbackStatus status, void *callbackArg)

◆ CallbackStatus

◆ Format

◆ SrcType

◆ VoiceSyncFlag

◆ VoiceType

Member Enumeration Documentation

◆ CallbackStatus

Enumerator
CALLBACK_STATUS_FINISH_WAVE 
CALLBACK_STATUS_INVALIDATE_WAVE 
CALLBACK_STATUS_DROP_VOICE 
CALLBACK_STATUS_DROP_DSP 

◆ Format

Enumerator
FORMAT_PCM16 
FORMAT_PCM8 
FORMAT_ADPCM 

◆ SrcType

Enumerator
SRC_NONE 
SRC_LINEAR 
SRC_4TAP_8K 
SRC_4TAP_12K 
SRC_4TAP_16K 
SRC_4TAP_AUTO 

◆ VoiceSyncFlag

Enumerator
SYNC_AX_SRC_INITIAL 
SYNC_AX_VOICE 
SYNC_AX_SRC 
SYNC_AX_VE 
SYNC_AX_MIX 
SYNC_AX_LPF 
SYNC_AX_REMOTE 
SYNC_AX_BIQUAD 

◆ VoiceType

Enumerator
VOICE_TYPE_NORMAL 
VOICE_TYPE_STREAM 

Constructor & Destructor Documentation

◆ AxVoice()

nw4hbm::snd::detail::AxVoice::AxVoice ( )

◆ ~AxVoice()

virtual nw4hbm::snd::detail::AxVoice::~AxVoice ( )
virtual

Member Function Documentation

◆ Acquire()

bool nw4hbm::snd::detail::AxVoice::Acquire ( int channelCount,
int voiceOutCount,
int priority,
AxVoiceCallback callback,
void * callbackData )

◆ CalcAXPBMIX()

void nw4hbm::snd::detail::AxVoice::CalcAXPBMIX ( int channelIndex,
int voiceIndex,
AXPBMIX * mix )
protected

◆ CalcAXPBRMTMIX()

void nw4hbm::snd::detail::AxVoice::CalcAXPBRMTMIX ( int channelIndex,
int voiceIndex,
AXPBRMTMIX * mix )
protected

◆ Free()

void nw4hbm::snd::detail::AxVoice::Free ( )

◆ GetAxVoiceCount()

int nw4hbm::snd::detail::AxVoice::GetAxVoiceCount ( ) const
inline

◆ GetCurrentPlayingDspAddress()

u32 nw4hbm::snd::detail::AxVoice::GetCurrentPlayingDspAddress ( ) const

◆ GetCurrentPlayingSample()

u32 nw4hbm::snd::detail::AxVoice::GetCurrentPlayingSample ( ) const

◆ GetDspAddressBySample()

static u32 nw4hbm::snd::detail::AxVoice::GetDspAddressBySample ( const void * baseAddress,
u32 samples,
Format format )
static

◆ GetFormat()

Format nw4hbm::snd::detail::AxVoice::GetFormat ( )
inline

◆ GetLoopEndDspAddress()

u32 nw4hbm::snd::detail::AxVoice::GetLoopEndDspAddress ( ) const

◆ GetLoopStartDspAddress()

u32 nw4hbm::snd::detail::AxVoice::GetLoopStartDspAddress ( ) const

◆ GetPriority()

int nw4hbm::snd::detail::AxVoice::GetPriority ( ) const
inline

◆ GetSampleByByte()

static u32 nw4hbm::snd::detail::AxVoice::GetSampleByByte ( u32 byte,
Format format )
static

◆ GetSampleByDspAddress()

static u32 nw4hbm::snd::detail::AxVoice::GetSampleByDspAddress ( const void * baseAddress,
u32 addr,
Format format )
static

◆ InitParam()

void nw4hbm::snd::detail::AxVoice::InitParam ( int channelCount,
int voiceOutCount,
AxVoiceCallback callback,
void * callbackData )

◆ InvalidateData()

virtual void nw4hbm::snd::detail::AxVoice::InvalidateData ( const void * start,
const void * end )
inlinevirtual

◆ InvalidateWaveData()

virtual void nw4hbm::snd::detail::AxVoice::InvalidateWaveData ( const void * start,
const void * end )
virtual

◆ IsPlayFinished()

bool nw4hbm::snd::detail::AxVoice::IsPlayFinished ( ) const

◆ IsRun()

bool nw4hbm::snd::detail::AxVoice::IsRun ( )

◆ Pause()

void nw4hbm::snd::detail::AxVoice::Pause ( bool flag)

◆ SetAdpcmLoop()

void nw4hbm::snd::detail::AxVoice::SetAdpcmLoop ( int channelIndex,
Format format,
const AdpcmLoopParam * param )

◆ SetAxAddr()

void nw4hbm::snd::detail::AxVoice::SetAxAddr ( int channelIndex,
bool loopFlag,
Format format,
const void * waveAddr,
u32 loopStart,
u32 loopEnd )

◆ SetAxAdpcm()

void nw4hbm::snd::detail::AxVoice::SetAxAdpcm ( int channelIndex,
Format format,
const AdpcmParam * param )

◆ SetAxAdpcmLoop()

void nw4hbm::snd::detail::AxVoice::SetAxAdpcmLoop ( int channelIndex,
Format format,
const AdpcmLoopParam * param )

◆ SetAxParam()

template<typename T >
void nw4hbm::snd::detail::AxVoice::SetAxParam ( void(* func )(AXVPB *, T),
T param )
inline

◆ SetAxSrcType()

void nw4hbm::snd::detail::AxVoice::SetAxSrcType ( SrcType type)

◆ SetBaseAddress()

void nw4hbm::snd::detail::AxVoice::SetBaseAddress ( int channelIndex,
const void * baseAddress )

◆ SetFxSend()

void nw4hbm::snd::detail::AxVoice::SetFxSend ( AuxBus bus,
f32 send )

◆ SetLoopEnd()

void nw4hbm::snd::detail::AxVoice::SetLoopEnd ( int channelIndex,
const void * baseAddress,
u32 samples )

◆ SetLoopFlag()

void nw4hbm::snd::detail::AxVoice::SetLoopFlag ( bool loopFlag)

◆ SetLoopStart()

void nw4hbm::snd::detail::AxVoice::SetLoopStart ( int channelIndex,
const void * baseAddress,
u32 samples )

◆ SetLpfFreq()

void nw4hbm::snd::detail::AxVoice::SetLpfFreq ( f32 lpfFreq)

◆ SetMainOutVolume()

void nw4hbm::snd::detail::AxVoice::SetMainOutVolume ( f32 volume)

◆ SetMainSend()

void nw4hbm::snd::detail::AxVoice::SetMainSend ( f32 send)

◆ SetOutputLine()

void nw4hbm::snd::detail::AxVoice::SetOutputLine ( int lineFlag)

◆ SetPan()

void nw4hbm::snd::detail::AxVoice::SetPan ( f32 pan)

◆ SetPan2()

void nw4hbm::snd::detail::AxVoice::SetPan2 ( f32 pan)

◆ SetPitch()

void nw4hbm::snd::detail::AxVoice::SetPitch ( f32 pitch)

◆ SetPriority()

void nw4hbm::snd::detail::AxVoice::SetPriority ( int priority)

◆ SetRemoteFxSend()

void nw4hbm::snd::detail::AxVoice::SetRemoteFxSend ( int remoteIndex,
f32 send )

◆ SetRemoteOutVolume()

void nw4hbm::snd::detail::AxVoice::SetRemoteOutVolume ( int remoteIndex,
f32 volume )

◆ SetRemoteSend()

void nw4hbm::snd::detail::AxVoice::SetRemoteSend ( int remoteIndex,
f32 send )

◆ SetSurroundPan()

void nw4hbm::snd::detail::AxVoice::SetSurroundPan ( f32 surroundPan)

◆ SetSurroundPan2()

void nw4hbm::snd::detail::AxVoice::SetSurroundPan2 ( f32 surroundPan)

◆ Setup()

void nw4hbm::snd::detail::AxVoice::Setup ( const WaveData & waveParam)

◆ SetVeVolume()

void nw4hbm::snd::detail::AxVoice::SetVeVolume ( f32 targetVolume,
f32 initVolume )

◆ SetVoiceType()

void nw4hbm::snd::detail::AxVoice::SetVoiceType ( VoiceType type)

◆ SetVolume()

void nw4hbm::snd::detail::AxVoice::SetVolume ( f32 volume)

◆ Start()

void nw4hbm::snd::detail::AxVoice::Start ( )

◆ Stop()

void nw4hbm::snd::detail::AxVoice::Stop ( )

◆ StopAtPoint()

void nw4hbm::snd::detail::AxVoice::StopAtPoint ( int channelIndex,
const void * baseAddress,
u32 samples )

◆ TransformDpl2Pan()

void nw4hbm::snd::detail::AxVoice::TransformDpl2Pan ( f32 * outPan,
f32 * outSurroundPan,
f32 inPan,
f32 inSurroundPan )
protected

◆ Update()

void nw4hbm::snd::detail::AxVoice::Update ( )

◆ UpdateAxLpf()

void nw4hbm::snd::detail::AxVoice::UpdateAxLpf ( )

◆ UpdateAxMix()

void nw4hbm::snd::detail::AxVoice::UpdateAxMix ( )

◆ UpdateAxSrc()

void nw4hbm::snd::detail::AxVoice::UpdateAxSrc ( bool initialUpdate)

◆ UpdateAxVe()

bool nw4hbm::snd::detail::AxVoice::UpdateAxVe ( )

◆ VoiceCallback()

static void nw4hbm::snd::detail::AxVoice::VoiceCallback ( void * callbackData)
staticprotected

Friends And Related Symbol Documentation

◆ AxManager

friend class AxManager
friend

Member Data Documentation

◆ mActiveFlag

bool nw4hbm::snd::detail::AxVoice::mActiveFlag
protected

◆ mCallback

AxVoiceCallback nw4hbm::snd::detail::AxVoice::mCallback
protected

◆ mCallbackData

void* nw4hbm::snd::detail::AxVoice::mCallbackData
protected

◆ mChannelCount

s32 nw4hbm::snd::detail::AxVoice::mChannelCount
protected

◆ mFirstVeUpdateFlag

bool nw4hbm::snd::detail::AxVoice::mFirstVeUpdateFlag
protected

◆ mFormat

Format nw4hbm::snd::detail::AxVoice::mFormat
protected

◆ mFxSend

f32 nw4hbm::snd::detail::AxVoice::mFxSend[AUX_BUS_NUM]
protected

◆ mGainPrev

u16 nw4hbm::snd::detail::AxVoice::mGainPrev
protected

◆ mHomeButtonMuteFlag

bool nw4hbm::snd::detail::AxVoice::mHomeButtonMuteFlag
protected

◆ mLinkNode

ut::LinkListNode nw4hbm::snd::detail::AxVoice::mLinkNode

◆ mLpfFreq

f32 nw4hbm::snd::detail::AxVoice::mLpfFreq
protected

◆ mMainOutVolume

f32 nw4hbm::snd::detail::AxVoice::mMainOutVolume
protected

◆ mMainSend

f32 nw4hbm::snd::detail::AxVoice::mMainSend
protected

◆ mOutputLineFlag

int nw4hbm::snd::detail::AxVoice::mOutputLineFlag
protected

◆ mPan

f32 nw4hbm::snd::detail::AxVoice::mPan
protected

◆ mPan2

f32 nw4hbm::snd::detail::AxVoice::mPan2
protected

◆ mPauseFlag

bool nw4hbm::snd::detail::AxVoice::mPauseFlag
protected

◆ mPausingFlag

bool nw4hbm::snd::detail::AxVoice::mPausingFlag
protected

◆ mPitch

f32 nw4hbm::snd::detail::AxVoice::mPitch
protected

◆ mPriority

int nw4hbm::snd::detail::AxVoice::mPriority
protected

◆ mRemoteFxSend

f32 nw4hbm::snd::detail::AxVoice::mRemoteFxSend[VOICES_MAX]
protected

◆ mRemoteOutVolume

f32 nw4hbm::snd::detail::AxVoice::mRemoteOutVolume[VOICES_MAX]
protected

◆ mRemoteSend

f32 nw4hbm::snd::detail::AxVoice::mRemoteSend[VOICES_MAX]
protected

◆ mSampleRate

int nw4hbm::snd::detail::AxVoice::mSampleRate
protected

◆ mStartedFlag

bool nw4hbm::snd::detail::AxVoice::mStartedFlag
protected

◆ mStartFlag

bool nw4hbm::snd::detail::AxVoice::mStartFlag
protected

◆ mSurroundPan

f32 nw4hbm::snd::detail::AxVoice::mSurroundPan
protected

◆ mSurroundPan2

f32 nw4hbm::snd::detail::AxVoice::mSurroundPan2
protected

◆ mSyncFlag

u8 nw4hbm::snd::detail::AxVoice::mSyncFlag
protected

◆ mVeInitVolume

f32 nw4hbm::snd::detail::AxVoice::mVeInitVolume
protected

◆ mVeTargetVolume

f32 nw4hbm::snd::detail::AxVoice::mVeTargetVolume
protected

◆ mVoiceChannelParam

VoiceChannelParam nw4hbm::snd::detail::AxVoice::mVoiceChannelParam[CHANNEL_MAX]
protected

◆ mVoiceOutCount

s32 nw4hbm::snd::detail::AxVoice::mVoiceOutCount
protected

◆ mVoiceOutParam

SoundParam nw4hbm::snd::detail::AxVoice::mVoiceOutParam[VOICES_MAX]
protected

◆ mVolume

f32 nw4hbm::snd::detail::AxVoice::mVolume
protected

◆ mVolumePrev

f32 nw4hbm::snd::detail::AxVoice::mVolumePrev[VOICES_MAX]
protected

◆ mVpb

AXVPB* nw4hbm::snd::detail::AxVoice::mVpb[CHANNEL_MAX][VOICES_MAX]
protected

◆ PRIORITY_MAX

const int nw4hbm::snd::detail::AxVoice::PRIORITY_MAX = 255
static

◆ VOICES_MAX

const int nw4hbm::snd::detail::AxVoice::VOICES_MAX = 4
static

The documentation for this class was generated from the following file: