Add OPL4/MultiPCM 12-bit PCM support

This commit is contained in:
cam900 2024-08-16 20:45:40 +09:00
parent 2c417811b3
commit 16ca40e0d2
6 changed files with 54 additions and 7 deletions

View file

@ -47,6 +47,7 @@ enum DivSampleDepth: unsigned char {
DIV_SAMPLE_DEPTH_MULAW=11,
DIV_SAMPLE_DEPTH_C219=12,
DIV_SAMPLE_DEPTH_IMA_ADPCM=13,
DIV_SAMPLE_DEPTH_12BIT=14,
DIV_SAMPLE_DEPTH_16BIT=16,
DIV_SAMPLE_DEPTH_MAX // boundary for sample depth
};
@ -118,6 +119,7 @@ struct DivSample {
// - 11: 8-bit µ-law PCM
// - 12: C219 "µ-law" PCM
// - 13: IMA ADPCM
// - 14: 12-bit PCM (MultiPCM)
// - 16: 16-bit PCM
DivSampleDepth depth;
bool loop, brrEmphasis, brrNoFilter, dither;
@ -144,8 +146,9 @@ struct DivSample {
unsigned char* dataMuLaw; // 11
unsigned char* dataC219; // 12
unsigned char* dataIMA; // 13
unsigned char* data12; // 14
unsigned int length8, length16, length1, lengthDPCM, lengthZ, lengthQSoundA, lengthA, lengthB, lengthK, lengthBRR, lengthVOX, lengthMuLaw, lengthC219, lengthIMA;
unsigned int length8, length16, length1, lengthDPCM, lengthZ, lengthQSoundA, lengthA, lengthB, lengthK, lengthBRR, lengthVOX, lengthMuLaw, lengthC219, lengthIMA, length12;
unsigned int samples;
@ -356,6 +359,7 @@ struct DivSample {
dataMuLaw(NULL),
dataC219(NULL),
dataIMA(NULL),
data12(NULL),
length8(0),
length16(0),
length1(0),
@ -370,6 +374,7 @@ struct DivSample {
lengthMuLaw(0),
lengthC219(0),
lengthIMA(0),
length12(0),
samples(0) {
for (int i=0; i<DIV_MAX_CHIPS; i++) {
for (int j=0; j<DIV_MAX_SAMPLE_TYPE; j++) {