StreamADPCM: Convert into a namespace

No need to have a class with only static member functions
This commit is contained in:
Lioncash 2015-10-05 06:40:12 -04:00
parent e955a3a191
commit 737de5e115
3 changed files with 22 additions and 16 deletions

View File

@ -375,15 +375,15 @@ static u32 ProcessDTKSamples(short *tempPCM, u32 num_samples)
break;
}
NGCADPCM::InitFilter();
StreamADPCM::InitFilter();
}
u8 tempADPCM[NGCADPCM::ONE_BLOCK_SIZE];
u8 tempADPCM[StreamADPCM::ONE_BLOCK_SIZE];
// TODO: What if we can't read from AudioPos?
s_inserted_volume->Read(AudioPos, sizeof(tempADPCM), tempADPCM, false);
AudioPos += sizeof(tempADPCM);
NGCADPCM::DecodeBlock(tempPCM + samples_processed * 2, tempADPCM);
samples_processed += NGCADPCM::SAMPLES_PER_BLOCK;
StreamADPCM::DecodeBlock(tempPCM + samples_processed * 2, tempADPCM);
samples_processed += StreamADPCM::SAMPLES_PER_BLOCK;
} while (samples_processed < num_samples);
for (unsigned i = 0; i < samples_processed * 2; ++i)
{
@ -1184,7 +1184,7 @@ void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_addr
CurrentStart = NextStart;
CurrentLength = NextLength;
AudioPos = CurrentStart;
NGCADPCM::InitFilter();
StreamADPCM::InitFilter();
g_bStream = true;
}
}

View File

@ -7,6 +7,9 @@
#include "Common/MathUtil.h"
#include "Core/HW/StreamADPCM.h"
namespace StreamADPCM
{
// STATE_TO_SAVE (not saved yet!)
static s32 histl1;
static s32 histl2;
@ -44,7 +47,7 @@ static s16 ADPDecodeSample(s32 bits, s32 q, s32& hist1, s32& hist2)
return (s16)cur;
}
void NGCADPCM::InitFilter()
void InitFilter()
{
histl1 = 0;
histl2 = 0;
@ -52,7 +55,7 @@ void NGCADPCM::InitFilter()
histr2 = 0;
}
void NGCADPCM::DecodeBlock(s16 *pcm, const u8 *adpcm)
void DecodeBlock(s16* pcm, const u8* adpcm)
{
for (int i = 0; i < SAMPLES_PER_BLOCK; i++)
{
@ -60,3 +63,5 @@ void NGCADPCM::DecodeBlock(s16 *pcm, const u8 *adpcm)
pcm[i * 2 + 1] = ADPDecodeSample(adpcm[i + (ONE_BLOCK_SIZE - SAMPLES_PER_BLOCK)] >> 4, adpcm[1], histr1, histr2);
}
}
}

View File

@ -8,15 +8,16 @@
#include "Common/CommonTypes.h"
class NGCADPCM
namespace StreamADPCM
{
public:
enum
{
ONE_BLOCK_SIZE = 32,
SAMPLES_PER_BLOCK = 28
};
static void InitFilter();
static void DecodeBlock(s16 *pcm, const u8 *adpcm);
};
void InitFilter();
void DecodeBlock(s16* pcm, const u8* adpcm);
}