4 bit pcm: requseted changes
This commit is contained in:
parent
0426cf3a71
commit
c9f3e95add
|
@ -93,7 +93,7 @@ void DivEngine::loadPPS(SafeReader& reader, std::vector<DivSample*>& ret, String
|
||||||
s->rate = PPS_SAMPLE_RATE;
|
s->rate = PPS_SAMPLE_RATE;
|
||||||
s->centerRate = PPS_SAMPLE_RATE;
|
s->centerRate = PPS_SAMPLE_RATE;
|
||||||
s->depth = DIV_SAMPLE_DEPTH_4BIT;
|
s->depth = DIV_SAMPLE_DEPTH_4BIT;
|
||||||
s->init(headers[i].sample_length*2); //byte per sample
|
s->init(headers[i].sample_length);
|
||||||
|
|
||||||
reader.seek((int)headers[i].start_pointer, SEEK_SET);
|
reader.seek((int)headers[i].start_pointer, SEEK_SET);
|
||||||
|
|
||||||
|
|
|
@ -877,6 +877,7 @@ void DivSample::convert(DivSampleDepth newDepth, unsigned int formatMask) {
|
||||||
break;
|
break;
|
||||||
case DIV_SAMPLE_DEPTH_4BIT:
|
case DIV_SAMPLE_DEPTH_4BIT:
|
||||||
setSampleCount((samples+1)&(~1));
|
setSampleCount((samples+1)&(~1));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1338,9 +1339,9 @@ void DivSample::render(unsigned int formatMask) {
|
||||||
unsigned short nibble=0;
|
unsigned short nibble=0;
|
||||||
for (unsigned int i=0; i<samples; i++) {
|
for (unsigned int i=0; i<samples; i++) {
|
||||||
if (i&1) {
|
if (i&1) {
|
||||||
nibble=data4[i/2]&0xf;
|
nibble=data4[i>>1]&0xf;
|
||||||
} else {
|
} else {
|
||||||
nibble=data4[i/2]>>4;
|
nibble=data4[i>>1]>>4;
|
||||||
}
|
}
|
||||||
data16[i]=(nibble<<12)^0x8000;
|
data16[i]=(nibble<<12)^0x8000;
|
||||||
}
|
}
|
||||||
|
@ -1558,7 +1559,7 @@ void DivSample::render(unsigned int formatMask) {
|
||||||
_sample=(*samplePtr++^0x8000)>>12;
|
_sample=(*samplePtr++^0x8000)>>12;
|
||||||
sample4|=_sample;
|
sample4|=_sample;
|
||||||
}
|
}
|
||||||
data4[i/2]=sample4;
|
data4[i>>1]=sample4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue