GUI: get rid of bitOffset

now we do not need it
This commit is contained in:
tildearrow 2024-02-19 21:44:29 -05:00
parent 334a29c260
commit 2ca341bb73
3 changed files with 10 additions and 20 deletions

View file

@ -2453,14 +2453,14 @@ String FurnaceGUI::getLastError() {
macroDragLastY=y; \ macroDragLastY=y; \
if (macroDragInitialValueSet) { \ if (macroDragInitialValueSet) { \
if (macroDragInitialValue) { \ if (macroDragInitialValue) { \
t[x]=(((t[x]+macroDragBitOff)&((1<<macroDragMax)-1))&(~(1<<y)))-macroDragBitOff; \ t[x]=(((t[x])&((1<<macroDragMax)-1))&(~(1<<y))); \
} else { \ } else { \
t[x]=(((t[x]+macroDragBitOff)&((1<<macroDragMax)-1))|(1<<y))-macroDragBitOff; \ t[x]=(((t[x])&((1<<macroDragMax)-1))|(1<<y)); \
} \ } \
} else { \ } else { \
macroDragInitialValue=(((t[x]+macroDragBitOff)&((1<<macroDragMax)-1))&(1<<y)); \ macroDragInitialValue=(((t[x])&((1<<macroDragMax)-1))&(1<<y)); \
macroDragInitialValueSet=true; \ macroDragInitialValueSet=true; \
t[x]=(((t[x]+macroDragBitOff)&((1<<macroDragMax)-1))^(1<<y))-macroDragBitOff; \ t[x]=(((t[x])&((1<<macroDragMax)-1))^(1<<y)); \
} \ } \
t[x]&=(1<<macroDragMax)-1; \ t[x]&=(1<<macroDragMax)-1; \
} \ } \
@ -7547,7 +7547,6 @@ FurnaceGUI::FurnaceGUI():
macroDragMax(0), macroDragMax(0),
macroDragLastX(-1), macroDragLastX(-1),
macroDragLastY(-1), macroDragLastY(-1),
macroDragBitOff(0),
macroDragScroll(0), macroDragScroll(0),
macroDragBitMode(false), macroDragBitMode(false),
macroDragInitialValueSet(false), macroDragInitialValueSet(false),

View file

@ -1263,21 +1263,19 @@ struct FurnaceGUIMacroDesc {
const char** bitfieldBits; const char** bitfieldBits;
const char* modeName; const char* modeName;
ImVec4 color; ImVec4 color;
unsigned int bitOffset;
bool isBitfield, blockMode, bit30; bool isBitfield, blockMode, bit30;
String (*hoverFunc)(int,float,void*); String (*hoverFunc)(int,float,void*);
void* hoverFuncUser; void* hoverFuncUser;
bool isArp; bool isArp;
bool isPitch; bool isPitch;
FurnaceGUIMacroDesc(const char* name, DivInstrumentMacro* m, int macroMin, int macroMax, float macroHeight, ImVec4 col=ImVec4(1.0f,1.0f,1.0f,1.0f), bool block=false, const char* mName=NULL, String (*hf)(int,float,void*)=NULL, bool bitfield=false, const char** bfVal=NULL, unsigned int bitOff=0, bool bit30Special=false, void* hfu=NULL, bool isArp=false, bool isPitch=false): FurnaceGUIMacroDesc(const char* name, DivInstrumentMacro* m, int macroMin, int macroMax, float macroHeight, ImVec4 col=ImVec4(1.0f,1.0f,1.0f,1.0f), bool block=false, const char* mName=NULL, String (*hf)(int,float,void*)=NULL, bool bitfield=false, const char** bfVal=NULL, bool bit30Special=false, void* hfu=NULL, bool isArp=false, bool isPitch=false):
macro(m), macro(m),
height(macroHeight), height(macroHeight),
displayName(name), displayName(name),
bitfieldBits(bfVal), bitfieldBits(bfVal),
modeName(mName), modeName(mName),
color(col), color(col),
bitOffset(bitOff),
isBitfield(bitfield), isBitfield(bitfield),
blockMode(block), blockMode(block),
bit30(bit30Special), bit30(bit30Special),
@ -2165,7 +2163,6 @@ class FurnaceGUI {
int macroDragLen; int macroDragLen;
int macroDragMin, macroDragMax; int macroDragMin, macroDragMax;
int macroDragLastX, macroDragLastY; int macroDragLastX, macroDragLastY;
int macroDragBitOff;
int macroDragScroll; int macroDragScroll;
bool macroDragBitMode; bool macroDragBitMode;
bool macroDragInitialValueSet; bool macroDragInitialValueSet;

View file

@ -1529,9 +1529,6 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail
static float bit30Indicator[256]; static float bit30Indicator[256];
static bool doHighlight[256]; static bool doHighlight[256];
// TODO: clean up
assert(i.bitOffset==0);
if ((i.macro->open&6)==0) { if ((i.macro->open&6)==0) {
for (int j=0; j<256; j++) { for (int j=0; j<256; j++) {
bit30Indicator[j]=0; bit30Indicator[j]=0;
@ -1540,7 +1537,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail
asInt[j]=0; asInt[j]=0;
} else { } else {
asFloat[j]=deBit30(i.macro->val[j+macroDragScroll]); asFloat[j]=deBit30(i.macro->val[j+macroDragScroll]);
asInt[j]=deBit30(i.macro->val[j+macroDragScroll])+i.bitOffset; asInt[j]=deBit30(i.macro->val[j+macroDragScroll]);
if (i.bit30) bit30Indicator[j]=enBit30(i.macro->val[j+macroDragScroll]); if (i.bit30) bit30Indicator[j]=enBit30(i.macro->val[j+macroDragScroll]);
} }
if (j+macroDragScroll>=i.macro->len || (j+macroDragScroll>i.macro->rel && i.macro->loop<i.macro->rel)) { if (j+macroDragScroll>=i.macro->len || (j+macroDragScroll>i.macro->rel && i.macro->loop<i.macro->rel)) {
@ -1605,7 +1602,6 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail
macroDragMin=i.min+i.macro->vScroll; macroDragMin=i.min+i.macro->vScroll;
macroDragMax=i.min+i.macro->vScroll+i.macro->vZoom; macroDragMax=i.min+i.macro->vScroll+i.macro->vZoom;
} }
macroDragBitOff=i.bitOffset;
macroDragBitMode=i.isBitfield; macroDragBitMode=i.isBitfield;
macroDragInitialValueSet=false; macroDragInitialValueSet=false;
macroDragInitialValue=false; macroDragInitialValue=false;
@ -5360,8 +5356,8 @@ void FurnaceGUI::drawInsEdit() {
macroList.push_back(FurnaceGUIMacroDesc("Block",&ins->std.opMacros[ordi].ssgMacro,0,7,64,uiColors[GUI_COLOR_MACRO_OTHER],true)); macroList.push_back(FurnaceGUIMacroDesc("Block",&ins->std.opMacros[ordi].ssgMacro,0,7,64,uiColors[GUI_COLOR_MACRO_OTHER],true));
macroList.push_back(FurnaceGUIMacroDesc("FreqNum",&ins->std.opMacros[ordi].dtMacro,0,1023,160,uiColors[GUI_COLOR_MACRO_OTHER])); macroList.push_back(FurnaceGUIMacroDesc("FreqNum",&ins->std.opMacros[ordi].dtMacro,0,1023,160,uiColors[GUI_COLOR_MACRO_OTHER]));
} else { } else {
macroList.push_back(FurnaceGUIMacroDesc("Op. Arpeggio",&ins->std.opMacros[ordi].ssgMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,0,true,ins->std.opMacros[ordi].ssgMacro.val,true)); macroList.push_back(FurnaceGUIMacroDesc("Op. Arpeggio",&ins->std.opMacros[ordi].ssgMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.opMacros[ordi].ssgMacro.val,true));
macroList.push_back(FurnaceGUIMacroDesc("Op. Pitch",&ins->std.opMacros[ordi].dtMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode,NULL,false,NULL,0,false,NULL,false,true)); macroList.push_back(FurnaceGUIMacroDesc("Op. Pitch",&ins->std.opMacros[ordi].dtMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode,NULL,false,NULL,false,NULL,false,true));
} }
macroList.push_back(FurnaceGUIMacroDesc(FM_NAME(FM_AM),&ins->std.opMacros[ordi].amMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); macroList.push_back(FurnaceGUIMacroDesc(FM_NAME(FM_AM),&ins->std.opMacros[ordi].amMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true));
@ -6130,7 +6126,6 @@ void FurnaceGUI::drawInsEdit() {
macroDragAreaSize=modTableSize; macroDragAreaSize=modTableSize;
macroDragMin=-4; macroDragMin=-4;
macroDragMax=3; macroDragMax=3;
macroDragBitOff=0;
macroDragBitMode=false; macroDragBitMode=false;
macroDragInitialValueSet=false; macroDragInitialValueSet=false;
macroDragInitialValue=false; macroDragInitialValue=false;
@ -6182,7 +6177,6 @@ void FurnaceGUI::drawInsEdit() {
macroDragAreaSize=modTableSize; macroDragAreaSize=modTableSize;
macroDragMin=-128; macroDragMin=-128;
macroDragMax=127; macroDragMax=127;
macroDragBitOff=0;
macroDragBitMode=false; macroDragBitMode=false;
macroDragInitialValueSet=false; macroDragInitialValueSet=false;
macroDragInitialValue=false; macroDragInitialValue=false;
@ -7119,7 +7113,7 @@ void FurnaceGUI::drawInsEdit() {
macroList.push_back(FurnaceGUIMacroDesc(volumeLabel,&ins->std.volMacro,volMin,volMax,160,uiColors[GUI_COLOR_MACRO_VOLUME])); macroList.push_back(FurnaceGUIMacroDesc(volumeLabel,&ins->std.volMacro,volMin,volMax,160,uiColors[GUI_COLOR_MACRO_VOLUME]));
} }
if (ins->type!=DIV_INS_MSM6258 && ins->type!=DIV_INS_MSM6295 && ins->type!=DIV_INS_ADPCMA) { if (ins->type!=DIV_INS_MSM6258 && ins->type!=DIV_INS_MSM6295 && ins->type!=DIV_INS_ADPCMA) {
macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,0,true,ins->std.arpMacro.val)); macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val));
} }
if (dutyMax>0) { if (dutyMax>0) {
if (ins->type==DIV_INS_MIKEY) { if (ins->type==DIV_INS_MIKEY) {
@ -7139,7 +7133,7 @@ void FurnaceGUI::drawInsEdit() {
} }
} }
if (waveMax>0) { if (waveMax>0) {
macroList.push_back(FurnaceGUIMacroDesc(waveLabel,&ins->std.waveMacro,0,waveMax,(waveBitMode && ins->type!=DIV_INS_PET)?64:160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,waveBitMode,waveNames,0)); macroList.push_back(FurnaceGUIMacroDesc(waveLabel,&ins->std.waveMacro,0,waveMax,(waveBitMode && ins->type!=DIV_INS_PET)?64:160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,waveBitMode,waveNames));
} }
if (panMax>0) { if (panMax>0) {
if (panSingle) { if (panSingle) {