GUI: add an effect list window
This commit is contained in:
parent
b6026e76c5
commit
d4380e1524
|
@ -393,6 +393,7 @@ src/gui/debugWindow.cpp
|
||||||
src/gui/doAction.cpp
|
src/gui/doAction.cpp
|
||||||
src/gui/editing.cpp
|
src/gui/editing.cpp
|
||||||
src/gui/editControls.cpp
|
src/gui/editControls.cpp
|
||||||
|
src/gui/effectList.cpp
|
||||||
src/gui/insEdit.cpp
|
src/gui/insEdit.cpp
|
||||||
src/gui/log.cpp
|
src/gui/log.cpp
|
||||||
src/gui/mixer.cpp
|
src/gui/mixer.cpp
|
||||||
|
|
|
@ -41,7 +41,7 @@ void process(void* u, float** in, float** out, int inChans, int outChans, unsign
|
||||||
((DivEngine*)u)->nextBuf(in,out,inChans,outChans,size);
|
((DivEngine*)u)->nextBuf(in,out,inChans,outChans,size);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* DivEngine::getEffectDesc(unsigned char effect, int chan) {
|
const char* DivEngine::getEffectDesc(unsigned char effect, int chan, bool notNull) {
|
||||||
switch (effect) {
|
switch (effect) {
|
||||||
case 0x00:
|
case 0x00:
|
||||||
return "00xy: Arpeggio";
|
return "00xy: Arpeggio";
|
||||||
|
@ -116,14 +116,13 @@ const char* DivEngine::getEffectDesc(unsigned char effect, int chan) {
|
||||||
default:
|
default:
|
||||||
if ((effect&0xf0)==0x90) {
|
if ((effect&0xf0)==0x90) {
|
||||||
return "9xxx: Set sample offset*256";
|
return "9xxx: Set sample offset*256";
|
||||||
}
|
} else if (chan>=0 && chan<chans) {
|
||||||
else if (chan>=0 && chan<chans) {
|
|
||||||
const char* ret=disCont[dispatchOfChan[chan]].dispatch->getEffectName(effect);
|
const char* ret=disCont[dispatchOfChan[chan]].dispatch->getEffectName(effect);
|
||||||
if (ret!=NULL) return ret;
|
if (ret!=NULL) return ret;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return "Invalid effect";
|
return notNull?"Invalid effect":NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivEngine::walkSong(int& loopOrder, int& loopRow, int& loopEnd) {
|
void DivEngine::walkSong(int& loopOrder, int& loopRow, int& loopEnd) {
|
||||||
|
|
|
@ -402,7 +402,7 @@ class DivEngine {
|
||||||
int getTotalChannelCount();
|
int getTotalChannelCount();
|
||||||
|
|
||||||
// get effect description
|
// get effect description
|
||||||
const char* getEffectDesc(unsigned char effect, int chan);
|
const char* getEffectDesc(unsigned char effect, int chan, bool notNull=false);
|
||||||
|
|
||||||
// get channel type
|
// get channel type
|
||||||
// - 0: FM
|
// - 0: FM
|
||||||
|
|
|
@ -213,6 +213,9 @@ void FurnaceGUI::doAction(int what) {
|
||||||
case GUI_ACTION_WINDOW_LOG:
|
case GUI_ACTION_WINDOW_LOG:
|
||||||
nextWindow=GUI_WINDOW_LOG;
|
nextWindow=GUI_WINDOW_LOG;
|
||||||
break;
|
break;
|
||||||
|
case GUI_ACTION_WINDOW_EFFECT_LIST:
|
||||||
|
nextWindow=GUI_WINDOW_EFFECT_LIST;
|
||||||
|
break;
|
||||||
|
|
||||||
case GUI_ACTION_COLLAPSE_WINDOW:
|
case GUI_ACTION_COLLAPSE_WINDOW:
|
||||||
collapseWindow=true;
|
collapseWindow=true;
|
||||||
|
@ -285,6 +288,12 @@ void FurnaceGUI::doAction(int what) {
|
||||||
case GUI_WINDOW_REGISTER_VIEW:
|
case GUI_WINDOW_REGISTER_VIEW:
|
||||||
regViewOpen=false;
|
regViewOpen=false;
|
||||||
break;
|
break;
|
||||||
|
case GUI_WINDOW_LOG:
|
||||||
|
logOpen=false;
|
||||||
|
break;
|
||||||
|
case GUI_WINDOW_EFFECT_LIST:
|
||||||
|
effectListOpen=false;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
73
src/gui/effectList.cpp
Normal file
73
src/gui/effectList.cpp
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
#include "gui.h"
|
||||||
|
#include "guiConst.h"
|
||||||
|
#include <imgui.h>
|
||||||
|
|
||||||
|
void FurnaceGUI::drawEffectList() {
|
||||||
|
if (nextWindow==GUI_WINDOW_EFFECT_LIST) {
|
||||||
|
effectListOpen=true;
|
||||||
|
ImGui::SetNextWindowFocus();
|
||||||
|
nextWindow=GUI_WINDOW_NOTHING;
|
||||||
|
}
|
||||||
|
if (!effectListOpen) return;
|
||||||
|
if (ImGui::Begin("Effect List",&effectListOpen)) {
|
||||||
|
ImGui::Text("System at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse]));
|
||||||
|
if (ImGui::BeginTable("effectList",2)) {
|
||||||
|
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed);
|
||||||
|
ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch);
|
||||||
|
|
||||||
|
ImGui::TableNextRow(ImGuiTableRowFlags_Headers);
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::Text("Name");
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::Text("Description");
|
||||||
|
|
||||||
|
const char* prevName=NULL;
|
||||||
|
for (int i=0; i<256; i++) {
|
||||||
|
const char* name=e->getEffectDesc(i,cursor.xCoarse);
|
||||||
|
if (name==prevName) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
prevName=name;
|
||||||
|
if (name!=NULL) {
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::PushFont(patFont);
|
||||||
|
if (i<0x10) {
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[fxColors[i]]);
|
||||||
|
} else if (i<0x20) {
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY]);
|
||||||
|
} else if (i<0x30) {
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY]);
|
||||||
|
} else if (i<0x48) {
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY]);
|
||||||
|
} else if (i<0x90) {
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_PATTERN_EFFECT_INVALID]);
|
||||||
|
} else if (i<0xa0) {
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_PATTERN_EFFECT_MISC]);
|
||||||
|
} else if (i<0xc0) {
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_PATTERN_EFFECT_INVALID]);
|
||||||
|
} else if (i<0xd0) {
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_PATTERN_EFFECT_SPEED]);
|
||||||
|
} else if (i<0xe0) {
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_PATTERN_EFFECT_INVALID]);
|
||||||
|
} else {
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[extFxColors[i-0xe0]]);
|
||||||
|
}
|
||||||
|
ImGui::Text("%c%c%c%c",name[0],name[1],name[2],name[3]);
|
||||||
|
ImGui::PopStyleColor();
|
||||||
|
ImGui::PopFont();
|
||||||
|
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
if (strlen(name)>6) {
|
||||||
|
ImGui::TextWrapped("%s",&name[6]);
|
||||||
|
} else {
|
||||||
|
ImGui::Text("ERROR");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ImGui::EndTable();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EFFECT_LIST;
|
||||||
|
ImGui::End();
|
||||||
|
}
|
|
@ -2523,6 +2523,7 @@ bool FurnaceGUI::loop() {
|
||||||
ImGui::EndMenu();
|
ImGui::EndMenu();
|
||||||
}
|
}
|
||||||
if (ImGui::BeginMenu("help")) {
|
if (ImGui::BeginMenu("help")) {
|
||||||
|
if (ImGui::MenuItem("effect list",BIND_FOR(GUI_ACTION_WINDOW_EFFECT_LIST),effectListOpen)) effectListOpen=!effectListOpen;
|
||||||
if (ImGui::MenuItem("debug menu",BIND_FOR(GUI_ACTION_WINDOW_DEBUG))) debugOpen=!debugOpen;
|
if (ImGui::MenuItem("debug menu",BIND_FOR(GUI_ACTION_WINDOW_DEBUG))) debugOpen=!debugOpen;
|
||||||
if (ImGui::MenuItem("panic",BIND_FOR(GUI_ACTION_PANIC))) e->syncReset();
|
if (ImGui::MenuItem("panic",BIND_FOR(GUI_ACTION_PANIC))) e->syncReset();
|
||||||
if (ImGui::MenuItem("about...",BIND_FOR(GUI_ACTION_WINDOW_ABOUT))) {
|
if (ImGui::MenuItem("about...",BIND_FOR(GUI_ACTION_WINDOW_ABOUT))) {
|
||||||
|
@ -2581,7 +2582,7 @@ bool FurnaceGUI::loop() {
|
||||||
default: // effect
|
default: // effect
|
||||||
int actualCursor=((cursor.xFine+1)&(~1));
|
int actualCursor=((cursor.xFine+1)&(~1));
|
||||||
if (p->data[cursor.y][actualCursor]>-1) {
|
if (p->data[cursor.y][actualCursor]>-1) {
|
||||||
info=e->getEffectDesc(p->data[cursor.y][actualCursor],cursor.xCoarse);
|
info=e->getEffectDesc(p->data[cursor.y][actualCursor],cursor.xCoarse,true);
|
||||||
hasInfo=true;
|
hasInfo=true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -2626,6 +2627,7 @@ bool FurnaceGUI::loop() {
|
||||||
drawChannels();
|
drawChannels();
|
||||||
drawRegView();
|
drawRegView();
|
||||||
drawLog();
|
drawLog();
|
||||||
|
drawEffectList();
|
||||||
|
|
||||||
if (inspectorOpen) ImGui::ShowMetricsWindow(&inspectorOpen);
|
if (inspectorOpen) ImGui::ShowMetricsWindow(&inspectorOpen);
|
||||||
|
|
||||||
|
@ -3234,6 +3236,7 @@ bool FurnaceGUI::init() {
|
||||||
channelsOpen=e->getConfBool("channelsOpen",false);
|
channelsOpen=e->getConfBool("channelsOpen",false);
|
||||||
regViewOpen=e->getConfBool("regViewOpen",false);
|
regViewOpen=e->getConfBool("regViewOpen",false);
|
||||||
logOpen=e->getConfBool("logOpen",false);
|
logOpen=e->getConfBool("logOpen",false);
|
||||||
|
effectListOpen=e->getConfBool("effectListOpen",false);
|
||||||
|
|
||||||
tempoView=e->getConfBool("tempoView",true);
|
tempoView=e->getConfBool("tempoView",true);
|
||||||
waveHex=e->getConfBool("waveHex",false);
|
waveHex=e->getConfBool("waveHex",false);
|
||||||
|
@ -3404,6 +3407,7 @@ bool FurnaceGUI::finish() {
|
||||||
e->setConf("channelsOpen",channelsOpen);
|
e->setConf("channelsOpen",channelsOpen);
|
||||||
e->setConf("regViewOpen",regViewOpen);
|
e->setConf("regViewOpen",regViewOpen);
|
||||||
e->setConf("logOpen",logOpen);
|
e->setConf("logOpen",logOpen);
|
||||||
|
e->setConf("effectListOpen",effectListOpen);
|
||||||
|
|
||||||
// commit last window size
|
// commit last window size
|
||||||
e->setConf("lastWindowWidth",scrW);
|
e->setConf("lastWindowWidth",scrW);
|
||||||
|
@ -3510,6 +3514,7 @@ FurnaceGUI::FurnaceGUI():
|
||||||
channelsOpen(false),
|
channelsOpen(false),
|
||||||
regViewOpen(false),
|
regViewOpen(false),
|
||||||
logOpen(false),
|
logOpen(false),
|
||||||
|
effectListOpen(false),
|
||||||
/*
|
/*
|
||||||
editControlsDocked(false),
|
editControlsDocked(false),
|
||||||
ordersDocked(false),
|
ordersDocked(false),
|
||||||
|
@ -3534,6 +3539,8 @@ FurnaceGUI::FurnaceGUI():
|
||||||
notesDocked(false),
|
notesDocked(false),
|
||||||
channelsDocked(false),
|
channelsDocked(false),
|
||||||
regViewDocked(false),
|
regViewDocked(false),
|
||||||
|
logDocked(false),
|
||||||
|
effectListDocked(false),
|
||||||
*/
|
*/
|
||||||
selecting(false),
|
selecting(false),
|
||||||
curNibble(false),
|
curNibble(false),
|
||||||
|
|
|
@ -225,7 +225,8 @@ enum FurnaceGUIWindows {
|
||||||
GUI_WINDOW_NOTES,
|
GUI_WINDOW_NOTES,
|
||||||
GUI_WINDOW_CHANNELS,
|
GUI_WINDOW_CHANNELS,
|
||||||
GUI_WINDOW_REGISTER_VIEW,
|
GUI_WINDOW_REGISTER_VIEW,
|
||||||
GUI_WINDOW_LOG
|
GUI_WINDOW_LOG,
|
||||||
|
GUI_WINDOW_EFFECT_LIST
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FurnaceGUIFileDialogs {
|
enum FurnaceGUIFileDialogs {
|
||||||
|
@ -323,6 +324,7 @@ enum FurnaceGUIActions {
|
||||||
GUI_ACTION_WINDOW_CHANNELS,
|
GUI_ACTION_WINDOW_CHANNELS,
|
||||||
GUI_ACTION_WINDOW_REGISTER_VIEW,
|
GUI_ACTION_WINDOW_REGISTER_VIEW,
|
||||||
GUI_ACTION_WINDOW_LOG,
|
GUI_ACTION_WINDOW_LOG,
|
||||||
|
GUI_ACTION_WINDOW_EFFECT_LIST,
|
||||||
|
|
||||||
GUI_ACTION_COLLAPSE_WINDOW,
|
GUI_ACTION_COLLAPSE_WINDOW,
|
||||||
GUI_ACTION_CLOSE_WINDOW,
|
GUI_ACTION_CLOSE_WINDOW,
|
||||||
|
@ -915,13 +917,13 @@ class FurnaceGUI {
|
||||||
bool editControlsOpen, ordersOpen, insListOpen, songInfoOpen, patternOpen, insEditOpen;
|
bool editControlsOpen, ordersOpen, insListOpen, songInfoOpen, patternOpen, insEditOpen;
|
||||||
bool waveListOpen, waveEditOpen, sampleListOpen, sampleEditOpen, aboutOpen, settingsOpen;
|
bool waveListOpen, waveEditOpen, sampleListOpen, sampleEditOpen, aboutOpen, settingsOpen;
|
||||||
bool mixerOpen, debugOpen, inspectorOpen, oscOpen, volMeterOpen, statsOpen, compatFlagsOpen;
|
bool mixerOpen, debugOpen, inspectorOpen, oscOpen, volMeterOpen, statsOpen, compatFlagsOpen;
|
||||||
bool pianoOpen, notesOpen, channelsOpen, regViewOpen, logOpen;
|
bool pianoOpen, notesOpen, channelsOpen, regViewOpen, logOpen, effectListOpen;
|
||||||
|
|
||||||
/* there ought to be a better way...
|
/* there ought to be a better way...
|
||||||
bool editControlsDocked, ordersDocked, insListDocked, songInfoDocked, patternDocked, insEditDocked;
|
bool editControlsDocked, ordersDocked, insListDocked, songInfoDocked, patternDocked, insEditDocked;
|
||||||
bool waveListDocked, waveEditDocked, sampleListDocked, sampleEditDocked, aboutDocked, settingsDocked;
|
bool waveListDocked, waveEditDocked, sampleListDocked, sampleEditDocked, aboutDocked, settingsDocked;
|
||||||
bool mixerDocked, debugDocked, inspectorDocked, oscDocked, volMeterDocked, statsDocked, compatFlagsDocked;
|
bool mixerDocked, debugDocked, inspectorDocked, oscDocked, volMeterDocked, statsDocked, compatFlagsDocked;
|
||||||
bool pianoDocked, notesDocked, channelsDocked, regViewDocked;
|
bool pianoDocked, notesDocked, channelsDocked, regViewDocked, logDocked, effectListDocked;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SelectionPoint selStart, selEnd, cursor;
|
SelectionPoint selStart, selEnd, cursor;
|
||||||
|
@ -1128,6 +1130,7 @@ class FurnaceGUI {
|
||||||
void drawDebug();
|
void drawDebug();
|
||||||
void drawNewSong();
|
void drawNewSong();
|
||||||
void drawLog();
|
void drawLog();
|
||||||
|
void drawEffectList();
|
||||||
|
|
||||||
void parseKeybinds();
|
void parseKeybinds();
|
||||||
void promptKey(int which);
|
void promptKey(int which);
|
||||||
|
|
|
@ -18,8 +18,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// guiConst: constants used in the GUI like arrays, strings and other stuff
|
// guiConst: constants used in the GUI like arrays, strings and other stuff
|
||||||
#include "guiConst.h"
|
|
||||||
#include "gui.h"
|
#include "gui.h"
|
||||||
|
#include "guiConst.h"
|
||||||
#include "../engine/song.h"
|
#include "../engine/song.h"
|
||||||
|
|
||||||
const int opOrder[4]={
|
const int opOrder[4]={
|
||||||
|
@ -138,6 +138,60 @@ const char* resampleStrats[]={
|
||||||
"best possible"
|
"best possible"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const FurnaceGUIColors fxColors[16]={
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_MISC, // 00
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_PITCH, // 01
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_PITCH, // 02
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_PITCH, // 03
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_PITCH, // 04
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_VOLUME, // 05
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_VOLUME, // 06
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_VOLUME, // 07
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_PANNING, // 08
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_SPEED, // 09
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_VOLUME, // 0A
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_SONG, // 0B
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_TIME, // 0C
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_SONG, // 0D
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_INVALID, // 0E
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_SPEED, // 0F
|
||||||
|
};
|
||||||
|
|
||||||
|
const FurnaceGUIColors extFxColors[32]={
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_MISC, // E0
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_PITCH, // E1
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_PITCH, // E2
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_MISC, // E3
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_MISC, // E4
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_PITCH, // E5
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_INVALID, // E6
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_INVALID, // E7
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_INVALID, // E8
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_INVALID, // E9
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_MISC, // EA
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_MISC, // EB
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_TIME, // EC
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_TIME, // ED
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_SONG, // EE
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_SONG, // EF
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_SPEED, // F0
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_PITCH, // F1
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_PITCH, // F2
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_VOLUME, // F3
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_VOLUME, // F4
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_INVALID, // F5
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_INVALID, // F6
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_INVALID, // F7
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_VOLUME, // F8
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_VOLUME, // F9
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_VOLUME, // FA
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_INVALID, // FB
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_INVALID, // FC
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_INVALID, // FD
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_INVALID, // FE
|
||||||
|
GUI_COLOR_PATTERN_EFFECT_SONG, // FF
|
||||||
|
};
|
||||||
|
|
||||||
#define D FurnaceGUIActionDef
|
#define D FurnaceGUIActionDef
|
||||||
#define NOT_AN_ACTION -1
|
#define NOT_AN_ACTION -1
|
||||||
|
|
||||||
|
@ -193,6 +247,7 @@ const FurnaceGUIActionDef guiActions[GUI_ACTION_MAX]={
|
||||||
D("WINDOW_CHANNELS", "Channels", 0),
|
D("WINDOW_CHANNELS", "Channels", 0),
|
||||||
D("WINDOW_REGISTER_VIEW", "Register View", 0),
|
D("WINDOW_REGISTER_VIEW", "Register View", 0),
|
||||||
D("WINDOW_LOG", "Log Viewer", 0),
|
D("WINDOW_LOG", "Log Viewer", 0),
|
||||||
|
D("EFFECT_LIST", "Effect List", 0),
|
||||||
|
|
||||||
D("COLLAPSE_WINDOW", "Collapse/expand current window", 0),
|
D("COLLAPSE_WINDOW", "Collapse/expand current window", 0),
|
||||||
D("CLOSE_WINDOW", "Close current window", FURKMOD_SHIFT|SDLK_ESCAPE),
|
D("CLOSE_WINDOW", "Close current window", FURKMOD_SHIFT|SDLK_ESCAPE),
|
||||||
|
|
|
@ -46,4 +46,6 @@ extern const int availableSystems[];
|
||||||
extern const FurnaceGUIActionDef guiActions[];
|
extern const FurnaceGUIActionDef guiActions[];
|
||||||
extern const FurnaceGUIColorDef guiColors[];
|
extern const FurnaceGUIColorDef guiColors[];
|
||||||
extern const int altValues[24];
|
extern const int altValues[24];
|
||||||
extern const int vgmVersions[6];
|
extern const int vgmVersions[6];
|
||||||
|
extern const FurnaceGUIColors fxColors[16];
|
||||||
|
extern const FurnaceGUIColors extFxColors[32];
|
|
@ -92,5 +92,6 @@ void FurnaceGUI::drawLog() {
|
||||||
ImGui::EndTable();
|
ImGui::EndTable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_LOG;
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,60 +27,6 @@
|
||||||
#include "guiConst.h"
|
#include "guiConst.h"
|
||||||
#include <fmt/printf.h>
|
#include <fmt/printf.h>
|
||||||
|
|
||||||
const FurnaceGUIColors fxColors[16]={
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_MISC, // 00
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_PITCH, // 01
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_PITCH, // 02
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_PITCH, // 03
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_PITCH, // 04
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_VOLUME, // 05
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_VOLUME, // 06
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_VOLUME, // 07
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_PANNING, // 08
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_SPEED, // 09
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_VOLUME, // 0A
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_SONG, // 0B
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_TIME, // 0C
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_SONG, // 0D
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_INVALID, // 0E
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_SPEED, // 0F
|
|
||||||
};
|
|
||||||
|
|
||||||
const FurnaceGUIColors extFxColors[32]={
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_MISC, // E0
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_PITCH, // E1
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_PITCH, // E2
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_MISC, // E3
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_MISC, // E4
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_PITCH, // E5
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_INVALID, // E6
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_INVALID, // E7
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_INVALID, // E8
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_INVALID, // E9
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_MISC, // EA
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_MISC, // EB
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_TIME, // EC
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_TIME, // ED
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_SONG, // EE
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_SONG, // EF
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_SPEED, // F0
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_PITCH, // F1
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_PITCH, // F2
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_VOLUME, // F3
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_VOLUME, // F4
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_INVALID, // F5
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_INVALID, // F6
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_INVALID, // F7
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_VOLUME, // F8
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_VOLUME, // F9
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_VOLUME, // FA
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_INVALID, // FB
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_INVALID, // FC
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_INVALID, // FD
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_INVALID, // FE
|
|
||||||
GUI_COLOR_PATTERN_EFFECT_SONG, // FF
|
|
||||||
};
|
|
||||||
|
|
||||||
inline float randRange(float min, float max) {
|
inline float randRange(float min, float max) {
|
||||||
return min+((float)rand()/(float)RAND_MAX)*(max-min);
|
return min+((float)rand()/(float)RAND_MAX)*(max-min);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue