snd_BasicPlayer OK

This commit is contained in:
robojumper
2025-05-25 21:57:46 +02:00
parent 7616b37976
commit d016bf8005
8 changed files with 84 additions and 50 deletions
+14 -2
View File
@@ -68,7 +68,8 @@ AxManager::AxManager() :
mInitialized (false),
mUpdateVoicePrioFlag (true),
mOldAidCallback (nullptr),
mResetReadyCounter (-1)
mResetReadyCounter (-1),
field_0x100(5)
{
mMainOutVolume.InitValue(1.0f);
mMasterVolume.InitValue(1.0f);
@@ -307,7 +308,10 @@ OutputMode AxManager::GetOutputMode()
}
void AxManager::SetMasterVolume(f32 volume, int frame) {
mMasterVolume.SetTarget(ut::Clamp(volume, 0.0f, 1.0f), (frame + 2) / 3);
if (volume < 0.0f) {
volume = 0.0f;
}
mMasterVolume.SetTarget(volume, (frame + 2) / 3);
if (frame == 0) {
VoiceManager::GetInstance().UpdateAllVoicesSync(Voice::SYNC_AX_VE);
@@ -395,6 +399,9 @@ bool AxManager::AppendEffect(AuxBus bus, FxBase* pFx) {
void AxManager::ClearEffect(AuxBus bus, int frame) {
if (frame == 0) {
ShutdownEffect(bus);
if (!mAuxFadeVolume[bus].IsFinished()) {
mAuxFadeVolume[bus].SetTarget(0.0f, 0);
}
return;
}
@@ -447,6 +454,8 @@ void AxManager::AuxCallbackFunc(void* pChans, void* pContext) {
void** ppChans = static_cast<void**>(pChans);
AuxBus bus = static_cast<AuxBus>(reinterpret_cast<u32>(pContext));
int tick = OSGetTick();
if (GetInstance().GetOutputMode() == OUTPUT_MODE_DPL2) {
num = AX_DPL2_MAX;
@@ -468,10 +477,12 @@ void AxManager::AuxCallbackFunc(void* pChans, void* pContext) {
for (int i = 0; i < num; i++) {
std::memset(buffer[i], 0, FX_BUFFER_SIZE);
}
GetInstance().mEffectProcessTick[bus] = OSGetTick() - tick;
} else if (GetInstance().GetEffectList(bus).IsEmpty()) {
for (int i = 0; i < num; i++) {
std::memset(buffer[i], 0, FX_BUFFER_SIZE);
}
GetInstance().mEffectProcessTick[bus] = OSGetTick() - tick;
} else {
for (FxBase::LinkList::Iterator it =
GetInstance().GetEffectList(bus).GetBeginIter();
@@ -480,6 +491,7 @@ void AxManager::AuxCallbackFunc(void* pChans, void* pContext) {
it->UpdateBuffer(num, buffer, FX_BUFFER_SIZE, FX_SAMPLE_FORMAT,
FX_SAMPLE_RATE, GetInstance().GetOutputMode());
}
GetInstance().mEffectProcessTick[bus] = OSGetTick() - tick;
}
}
+13
View File
@@ -41,6 +41,9 @@ void PlayerParamSet::Init()
for (int i = 0; i < AUX_BUS_NUM; i++)
fxSend[i] = 0.0f;
for (int i = 0; i < 4; i++)
remoteOutVolume[i] = 1.0f;
for (int i = 0; i < (int)ARRAY_LENGTH(voiceOutParam); i++)
{
VoiceOutParam *param = &voiceOutParam[i];
@@ -99,4 +102,14 @@ void BasicPlayer::SetRemoteFilter(int filter)
mPlayerParamSet.remoteFilter = filter;
}
void BasicPlayer::SetRemoteOutVolume(int remote, f32 volume)
{
mPlayerParamSet.remoteOutVolume[remote] = volume;
}
f32 BasicPlayer::GetRemoteOutVolume(int remote) const
{
return mPlayerParamSet.remoteOutVolume[remote];
}
}}} // namespace nw4r::snd::detail