Merge branch 'master' into newFilePicker
This commit is contained in:
commit
134cdde1e5
8 changed files with 38 additions and 4 deletions
|
|
@ -222,6 +222,9 @@ void FurnaceGUI::doAction(int what) {
|
|||
}
|
||||
break;
|
||||
}
|
||||
case GUI_ACTION_OPEN_EDIT_MENU:
|
||||
openEditMenu=true;
|
||||
break;
|
||||
case GUI_ACTION_PANIC:
|
||||
e->syncReset();
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ const char* mobileButtonLabels[32]={
|
|||
|
||||
// page 4
|
||||
_N("fade"),
|
||||
_N("randomize"),
|
||||
_N("menu"),
|
||||
_N("opmask"),
|
||||
_N("scroll\nmode"),
|
||||
_N("input\nlatch"),
|
||||
|
|
@ -118,7 +118,7 @@ const int mobileButtonActions[32]={
|
|||
|
||||
// page 4
|
||||
GUI_ACTION_PAT_FADE,
|
||||
0,
|
||||
GUI_ACTION_OPEN_EDIT_MENU,
|
||||
0,
|
||||
GUI_ACTION_PAT_SCROLL_MODE,
|
||||
0,
|
||||
|
|
|
|||
|
|
@ -1624,6 +1624,29 @@ void FurnaceGUI::doRandomize(int bottom, int top, bool mode, bool eff, int effVa
|
|||
}
|
||||
j=0;
|
||||
}
|
||||
} else {
|
||||
// random notes
|
||||
int absoluteTop=179;
|
||||
for (; jOrder<=selEnd.order; jOrder++) {
|
||||
DivPattern* pat=e->curPat[iCoarse].getPattern(e->curOrders->ord[iCoarse][jOrder],true);
|
||||
for (; j<e->curSubSong->patLen && (j<=selEnd.y || jOrder<selEnd.order); j++) {
|
||||
int value=0;
|
||||
touch(jOrder,j);
|
||||
if (top-bottom<=0) {
|
||||
value=MIN(absoluteTop,bottom);
|
||||
} else {
|
||||
value=MIN(absoluteTop,bottom+(rand()%(top-bottom+1)));
|
||||
}
|
||||
pat->data[j][0]=value%12;
|
||||
pat->data[j][1]=(value-60)/12;
|
||||
if (pat->data[j][0]==0) {
|
||||
pat->data[j][0]=12;
|
||||
pat->data[j][1]--;
|
||||
}
|
||||
pat->data[j][1]=(unsigned char)pat->data[j][1];
|
||||
}
|
||||
j=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
iFine=0;
|
||||
|
|
|
|||
|
|
@ -8680,6 +8680,7 @@ FurnaceGUI::FurnaceGUI():
|
|||
dragMobileEditButton(false),
|
||||
wantGrooveListFocus(false),
|
||||
mobilePatSel(false),
|
||||
openEditMenu(false),
|
||||
lastAssetType(0),
|
||||
curWindow(GUI_WINDOW_NOTHING),
|
||||
nextWindow(GUI_WINDOW_NOTHING),
|
||||
|
|
|
|||
|
|
@ -719,6 +719,7 @@ enum FurnaceGUIActions {
|
|||
GUI_ACTION_FOLLOW_PATTERN,
|
||||
GUI_ACTION_FULLSCREEN,
|
||||
GUI_ACTION_TX81Z_REQUEST,
|
||||
GUI_ACTION_OPEN_EDIT_MENU,
|
||||
GUI_ACTION_PANIC,
|
||||
GUI_ACTION_CLEAR,
|
||||
|
||||
|
|
@ -2401,6 +2402,7 @@ class FurnaceGUI {
|
|||
bool collapseWindow, demandScrollX, fancyPattern, firstFrame, tempoView, waveHex, waveSigned, waveGenVisible, lockLayout, editOptsVisible, latchNibble, nonLatchNibble;
|
||||
bool keepLoopAlive, keepGrooveAlive, orderScrollLocked, orderScrollTolerance, dragMobileMenu, dragMobileEditButton, wantGrooveListFocus;
|
||||
bool mobilePatSel;
|
||||
bool openEditMenu;
|
||||
unsigned char lastAssetType;
|
||||
FurnaceGUIWindows curWindow, nextWindow, curWindowLast;
|
||||
std::atomic<FurnaceGUIWindows> curWindowThreadSafe;
|
||||
|
|
|
|||
|
|
@ -603,6 +603,7 @@ const FurnaceGUIActionDef guiActions[GUI_ACTION_MAX]={
|
|||
D("FOLLOW_PATTERN", _N("Follow pattern"), 0),
|
||||
D("FULLSCREEN", _N("Toggle full-screen"), SDLK_F11),
|
||||
D("TX81Z_REQUEST", _N("Request voice from TX81Z"), 0),
|
||||
D("OPEN_EDIT_MENU", _N("Open pattern edit menu"), 0),
|
||||
D("PANIC", _N("Panic"), SDLK_F12),
|
||||
D("CLEAR", _N("Clear song data"), 0),
|
||||
|
||||
|
|
|
|||
|
|
@ -1907,6 +1907,7 @@ void FurnaceGUI::drawPattern() {
|
|||
ImGui::PopStyleVar();
|
||||
if (patternOpen) {
|
||||
if (!inhibitMenu && ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows) && ImGui::IsMouseClicked(ImGuiMouseButton_Right)) ImGui::OpenPopup("patternActionMenu");
|
||||
if (openEditMenu) ImGui::OpenPopup("patternActionMenu");
|
||||
if (ImGui::BeginPopup("patternActionMenu",ImGuiWindowFlags_NoMove|ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings)) {
|
||||
editOptions(false);
|
||||
ImGui::EndPopup();
|
||||
|
|
@ -1914,5 +1915,7 @@ void FurnaceGUI::drawPattern() {
|
|||
}
|
||||
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_PATTERN;
|
||||
ImGui::End();
|
||||
|
||||
openEditMenu=false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ int PlotNoLerpEx(ImGuiPlotType plot_type, const char* label, float (*values_gett
|
|||
const ImU32 col_base = ImGui::GetColorU32((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLines : ImGuiCol_PlotHistogram);
|
||||
const ImU32 col_hovered = ImGui::GetColorU32((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLinesHovered : ImGuiCol_PlotHistogramHovered);
|
||||
|
||||
for (int n = 0; n < res_w; n++)
|
||||
for (int n = 1; n <= res_w; n++)
|
||||
{
|
||||
const float t1 = t0 + t_step;
|
||||
const int v1_idx = (int)(t0 * item_count + 0.5f);
|
||||
|
|
@ -153,7 +153,8 @@ int PlotNoLerpEx(ImGuiPlotType plot_type, const char* label, float (*values_gett
|
|||
if (plot_type == ImGuiPlotType_Lines)
|
||||
{
|
||||
window->DrawList->AddLine(pos0, pos1, idx_hovered == v1_idx ? col_hovered : col_base);
|
||||
window->DrawList->AddLine(pos2, pos3, idx_hovered == v1_idx ? col_hovered : col_base);
|
||||
if (n < res_w)
|
||||
window->DrawList->AddLine(pos2, pos3, idx_hovered == v1_idx ? col_hovered : col_base);
|
||||
}
|
||||
else if (plot_type == ImGuiPlotType_Histogram)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue