Reduce duplication

This commit is contained in:
cam900 2022-12-11 16:49:54 +09:00
parent ed779f443a
commit 2339dfe2aa
3 changed files with 7 additions and 5 deletions

View File

@ -146,9 +146,10 @@ void DivPlatformK007232::tick(bool sysTick) {
}
}
if (chan[i].volumeChanged) {
chan[i].resVol=isMuted[i]?0:chan[i].outVol&0xf;
if (stereo) {
chan[i].lvol=isMuted[i]?0:(((chan[i].outVol&0xf)*((chan[i].panning>>0)&0xf))/15);
chan[i].rvol=isMuted[i]?0:(((chan[i].outVol&0xf)*((chan[i].panning>>4)&0xf))/15);
chan[i].lvol=((chan[i].resVol&0xf)*((chan[i].panning>>0)&0xf))/15;
chan[i].rvol=((chan[i].resVol&0xf)*((chan[i].panning>>4)&0xf))/15;
const int newPan=(chan[i].lvol&0xf)|((chan[i].rvol&0xf)<<4);
if (chan[i].prevPan!=newPan) {
rWrite(0x10+i,(chan[i].lvol&0xf)|((chan[i].rvol&0xf)<<4));
@ -156,9 +157,8 @@ void DivPlatformK007232::tick(bool sysTick) {
}
}
else {
chan[i].lvol=chan[i].rvol=isMuted[i]?0:chan[i].outVol&0xf;
const unsigned char prevVolume=lastVolume;
lastVolume=(lastVolume&~(0xf<<(i<<2)))|((chan[i].lvol&0xf)<<(i<<2));
lastVolume=(lastVolume&~(0xf<<(i<<2)))|((chan[i].resVol&0xf)<<(i<<2));
if (prevVolume!=lastVolume) {
rWrite(0xc,lastVolume);
}

View File

@ -34,7 +34,7 @@ class DivPlatformK007232: public DivDispatch, public k007232_intf {
int note;
int panning, prevPan;
bool active, insChanged, volumeChanged, freqChanged, keyOn, keyOff, inPorta, setPos;
int vol, outVol, lvol, rvol;
int vol, outVol, resVol, lvol, rvol;
int macroVolMul;
DivMacroInt std;
void macroInit(DivInstrument* which) {
@ -64,6 +64,7 @@ class DivPlatformK007232: public DivDispatch, public k007232_intf {
setPos(false),
vol(15),
outVol(15),
resVol(15),
lvol(15),
rvol(15),
macroVolMul(64) {}

View File

@ -1144,6 +1144,7 @@ void putDispatchChan(void* data, int chanNum, int type) {
ImGui::Text(" - prev: %d",ch->prevPan);
ImGui::Text("- vol: %.2x",ch->vol);
ImGui::Text("- outVol: %.2x",ch->outVol);
ImGui::Text("- resVol: %.2x",ch->resVol);
ImGui::Text("- lvol: %.2x",ch->lvol);
ImGui::Text("- rvol: %.2x",ch->rvol);
ImGui::Text("- macroVolMul: %.2x",ch->macroVolMul);