snd_Voice OK

This commit is contained in:
robojumper
2025-05-26 20:59:12 +02:00
parent 097c070b92
commit fd749c7bbc
10 changed files with 100 additions and 44 deletions
+6 -1
View File
@@ -7,6 +7,7 @@
#include "common.h"
#include "nw4r/snd/snd_AxVoice.h"
#include "nw4r/snd/snd_global.h"
#include "nw4r/snd/snd_FxBase.h"
@@ -106,6 +107,10 @@ namespace nw4r { namespace snd { namespace detail
return mResetReadyCounter == 0;
}
AxVoice::SrcType GetSrcType() const {
return mSrcType;
}
private:
// cdtors
AxManager();
@@ -156,7 +161,7 @@ namespace nw4r { namespace snd { namespace detail
u8 mAuxCallbackWaitCounter[AUX_BUS_NUM]; // size 0x03, offset 0xf0
/* 1 byte padding */
u32 mEffectProcessTick[AUX_BUS_NUM]; // size 0x0c, offset 0xf4
u32 field_0x100;
AxVoice::SrcType mSrcType;
}; // size 0x104
}}} // namespace nw4r::snd::detail
+3 -1
View File
@@ -235,6 +235,7 @@ namespace nw4r { namespace snd { namespace detail
void SetLoopFlag(bool loopFlag);
void SetPriority(u32 priority);
void SetVoiceType(VoiceType type);
void EnableRemote(bool enable);
void ResetDelta();
void SetAddr(bool loopFlag, void const *waveAddr, u32 startOffset,
u32 loopStart, u32 loopEnd);
@@ -242,6 +243,7 @@ namespace nw4r { namespace snd { namespace detail
void SetAdpcm(AdpcmParam const *param);
void SetAdpcmLoop(AdpcmLoopParam const *param);
bool SetMix(MixParam const &param);
bool SetRmtMix(const RemoteMixParam &param);
void SetSrc(f32 ratio, bool initialUpdate);
void SetVe(f32 volume, f32 initVolume);
void SetLpf(u16 freq);
@@ -269,7 +271,7 @@ namespace nw4r { namespace snd { namespace detail
static void CalcOffsetAdpcmParam(u16 *outPredScale, u16 *outYn1,
u16 *outYn2, u32 offset,
void *dataAddr,
const void *dataAddr,
AdpcmParam const &adpcmParam);
private:
+2 -1
View File
@@ -55,7 +55,7 @@ namespace nw4r { namespace snd { namespace detail
// typedefs
public:
typedef ut::LinkList<Voice, 0xec> LinkList;
typedef ut::LinkList<Voice, 0xfc> LinkList;
typedef void Callback(Voice *dropVoice, VoiceCallbackStatus status,
void *callbackData);
@@ -229,6 +229,7 @@ namespace nw4r { namespace snd { namespace detail
f32 mMainOutVolume; // size 0x04, offset 0xc0
f32 mMainSend; // size 0x04, offset 0xc4
f32 mFxSend[AUX_BUS_NUM]; // size 0x0c, offset 0xc8
f32 mRemoteOutVolume[4]; // size 0x10, offset 0xd4 TODO following sizes wrong
f32 mPitch; // size 0x04, offset 0xd4
f32 mVolume; // size 0x04, offset 0xd8
f32 mVeInitVolume; // size 0x04, offset 0xdc
+2 -2
View File
@@ -328,7 +328,7 @@ public:
return Iterator(LinkListImpl::GetBeginIter());
}
ConstIterator GetBeginIter() const {
return ConstIterator(GetBeginIter());
return const_cast<LinkList *>(this)->LinkListImpl::GetBeginIter();
}
detail::ReverseIterator<Iterator> GetBeginReverseIter() {
return detail::ReverseIterator<Iterator>(GetBeginIter());
@@ -338,7 +338,7 @@ public:
return Iterator(LinkListImpl::GetEndIter());
}
ConstIterator GetEndIter() const {
return ConstIterator(GetEndIter());
return const_cast<LinkList *>(this)->LinkListImpl::GetEndIter();
}
detail::ReverseIterator<Iterator> GetEndReverseIter() {
return detail::ReverseIterator<Iterator>(GetEndIter());