diff --git a/src/gui/chanOsc.cpp b/src/gui/chanOsc.cpp index e6306db2d..65b54d2a5 100644 --- a/src/gui/chanOsc.cpp +++ b/src/gui/chanOsc.cpp @@ -506,12 +506,26 @@ void FurnaceGUI::drawChanOsc() { text+=fmt::sprintf("%d",e->dispatchOfChan[ch]); break; } - case 'v': + case 'v': { + DivChannelState* chanState=e->getChanState(ch); + if (chanState==NULL) break; + text+=fmt::sprintf("%d",chanState->volume>>8); break; - case 'V': + } + case 'V': { + DivChannelState* chanState=e->getChanState(ch); + if (chanState==NULL) break; + int volMax=chanState->volMax>>8; + if (volMax<1) volMax=1; + text+=fmt::sprintf("%d%%",(chanState->volume>>8)/volMax); break; - case 'b': + } + case 'b': { + DivChannelState* chanState=e->getChanState(ch); + if (chanState==NULL) break; + text+=fmt::sprintf("%.2X",chanState->volume>>8); break; + } case '%': text+='%'; break;