state save/load working! signal pause/play button added, and speed control is now better.
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
|
||||
#include <memory>
|
||||
#include <ranges>
|
||||
#include <set>
|
||||
|
||||
namespace VISEQ::APP::UI{
|
||||
class AppUI{
|
||||
@@ -22,6 +23,8 @@ namespace VISEQ::APP::UI{
|
||||
GraphManager *gm;
|
||||
SIGNAL::SignalManager *sm;
|
||||
|
||||
bool bpm_spinner_edit_mode = false;
|
||||
|
||||
void init(){
|
||||
GuiLoadStyleDark();
|
||||
}
|
||||
@@ -38,8 +41,9 @@ namespace VISEQ::APP::UI{
|
||||
const int s_bpm = s_controls + 45;
|
||||
GuiLabel((Rectangle){20, (float)s_bpm, 120, 20}, "TIMING");
|
||||
GuiLabel((Rectangle){200, (float)s_bpm, 40, 20}, std::format("{}",settings->bpm).c_str());
|
||||
float _bpm = (float)settings->bpm;
|
||||
GuiSlider((Rectangle){20, (float)s_bpm + 25, 240, 20}, "", "", &_bpm, 1, 300);
|
||||
int _bpm = settings->bpm;
|
||||
// GuiSlider((Rectangle){20, (float)s_bpm + 25, 240, 20}, "", "", &_bpm, 1, 300);
|
||||
if(GuiSpinner((Rectangle){20, (float)s_bpm + 25, 240, 20}, "", &_bpm, 1, 300, bpm_spinner_edit_mode)) bpm_spinner_edit_mode = !bpm_spinner_edit_mode;
|
||||
settings->bpm = _bpm;
|
||||
|
||||
int s_midi = s_bpm + 75;
|
||||
@@ -71,13 +75,15 @@ namespace VISEQ::APP::UI{
|
||||
|
||||
int signal_configs = 0;
|
||||
for(auto &s : sm->signals){
|
||||
if(GuiButton((Rectangle){20,(float)s_signal+70 + signal_configs*20, 20, 20},"X")) sm->removeSignal(signal_configs);
|
||||
if(GuiButton((Rectangle){20,(float)s_signal+70 + signal_configs*20, 20, 20},"X")) sm->removeSignal(s);
|
||||
DrawCircle(55, s_signal+80 + signal_configs*20, 6.0F, s->color);
|
||||
float s_multiplier = round(s->multiplier*10.0f)/10.0f;
|
||||
float signal_bpm = settings->bpm * s->multiplier;
|
||||
GuiSlider((Rectangle){70, (float)s_signal+70 + signal_configs*20, 160, 20}, "", std::format("{:.1f}",signal_bpm).c_str(), &s_multiplier, 0.1, 10);
|
||||
s->multiplier = s_multiplier;
|
||||
s->speed = settings->speed;
|
||||
float s_speed = round(s->speed);
|
||||
s->multiplier = settings->bpm / 120.0f;
|
||||
float signal_bpm = round(settings->bpm * s->multiplier * (s->speed / settings->speed));
|
||||
GuiSlider((Rectangle){70, (float)s_signal+70 + signal_configs*20, 120, 20}, "", "", &s_speed, 1.0f, 16.0f * settings->grid * 4);
|
||||
GuiLabel((Rectangle){195, (float)s_signal+70 + signal_configs*20, 30, 20}, std::format("{}",signal_bpm).c_str());
|
||||
GuiToggle((Rectangle){240, (float)s_signal+70 + signal_configs*20, 20, 20},"P", &s->run);
|
||||
s->speed = s_speed;
|
||||
signal_configs++;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user