Files
viseq/src/state.h
T

42 lines
758 B
C++
Raw Normal View History

2024-11-14 00:55:09 +01:00
#pragma once
#include "vmath.h"
#include <memory>
namespace VISEQ::APP{
struct AppSettings{
int width;
int height;
float grid;
float bpm;
float fps;
float speed = 16.0f;
int gui_selected_midi_out;
};
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(AppSettings, width, height, grid, bpm, fps, speed, gui_selected_midi_out)
2024-11-14 00:55:09 +01:00
class State{
public:
State(){}
State(State &state) = delete;
void operator=(const State &) = delete;
AppSettings settings;
2024-11-14 00:55:09 +01:00
Vec2Df raw_mouse;
Vec2Df screen_mouse;
2024-11-14 00:55:09 +01:00
Vec2Df mod_mouse;
int node_mode = 0;
2024-11-14 00:55:09 +01:00
inline static std::shared_ptr<State> instance;
static std::shared_ptr<State> get() {
if(!instance){
instance.reset(new State());
}
return instance;
}
};
}