mirror of
https://github.com/zeldaret/ss
synced 2026-06-15 14:21:31 -04:00
103 lines
2.1 KiB
C++
103 lines
2.1 KiB
C++
#include "nw4r/snd/snd_BasicPlayer.h"
|
|
|
|
/* Original source:
|
|
* kiwi515/ogws
|
|
* src/nw4r/snd/snd_BasicPlayer.cpp
|
|
*/
|
|
|
|
/*******************************************************************************
|
|
* headers
|
|
*/
|
|
|
|
#include "common.h" // f32
|
|
|
|
#include "nw4r/snd/snd_BasicSound.h"
|
|
#include "nw4r/snd/snd_global.h"
|
|
|
|
#include "nw4r/NW4RAssert.hpp"
|
|
|
|
/*******************************************************************************
|
|
* functions
|
|
*/
|
|
|
|
namespace nw4r { namespace snd { namespace detail {
|
|
|
|
void PlayerParamSet::Init()
|
|
{
|
|
volume = 1.0f;
|
|
pitch = 1.0f;
|
|
pan = 0.0f;
|
|
surroundPan = 0.0f;
|
|
lpfFreq = 0.0f;
|
|
biquadType = 0;
|
|
biquadValue = 0.0f;
|
|
remoteFilter = 0;
|
|
outputLineFlag = 1;
|
|
mainOutVolume = 1.0f;
|
|
mainSend = 0.0f;
|
|
panMode = PAN_MODE_DUAL;
|
|
panCurve = PAN_CURVE_SQRT;
|
|
|
|
for (int i = 0; i < AUX_BUS_NUM; i++)
|
|
fxSend[i] = 0.0f;
|
|
|
|
for (int i = 0; i < (int)ARRAY_LENGTH(voiceOutParam); i++)
|
|
{
|
|
VoiceOutParam *param = &voiceOutParam[i];
|
|
|
|
param->volume = 1.0f;
|
|
param->pitch = 1.0f;
|
|
param->pan = 0.0f;
|
|
param->surroundPan = 0.0f;
|
|
param->fxSend = 0.0f;
|
|
param->lpf = 0.0f;
|
|
}
|
|
}
|
|
|
|
BasicPlayer::BasicPlayer() :
|
|
mId (BasicSound::INVALID_ID)
|
|
{
|
|
InitParam();
|
|
}
|
|
|
|
void BasicPlayer::InitParam()
|
|
{
|
|
mPlayerParamSet.Init();
|
|
}
|
|
|
|
void BasicPlayer::SetFxSend(AuxBus bus, f32 send)
|
|
{
|
|
// specifically not the source variant
|
|
NW4RAssertHeaderClampedLValue_Line(81, bus, AUX_A, AUX_BUS_NUM);
|
|
|
|
mPlayerParamSet.fxSend[bus] = send;
|
|
}
|
|
|
|
f32 BasicPlayer::GetFxSend(AuxBus bus) const
|
|
{
|
|
// specifically not the source variant
|
|
NW4RAssertHeaderClampedLValue_Line(87, bus, AUX_A, AUX_BUS_NUM);
|
|
|
|
return mPlayerParamSet.fxSend[bus];
|
|
}
|
|
|
|
void BasicPlayer::SetBiquadFilter(int type, f32 value)
|
|
{
|
|
// specifically not the source variants
|
|
NW4RAssertHeaderClampedLRValue_Line(93, type, 0, 127);
|
|
NW4RAssertHeaderClampedLRValue_Line(94, value, 0.0f, 1.0f);
|
|
|
|
mPlayerParamSet.biquadType = type;
|
|
mPlayerParamSet.biquadValue = value;
|
|
}
|
|
|
|
void BasicPlayer::SetRemoteFilter(int filter)
|
|
{
|
|
// specifically not the source variant
|
|
NW4RAssertHeaderClampedLRValue_Line(102, filter, 0, 127);
|
|
|
|
mPlayerParamSet.remoteFilter = filter;
|
|
}
|
|
|
|
}}} // namespace nw4r::snd::detail
|