refactored main a bit
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
#pragma once
|
||||
|
||||
#include "datatypes.h"
|
||||
#include "node-manager.h"
|
||||
#include "connection-manager.h"
|
||||
#include "signal-manager.h"
|
||||
#include "ui.h"
|
||||
|
||||
class AppState{
|
||||
public:
|
||||
|
||||
AppState() : sm(&cm, &mutex), ui(&settings, &nm, &cm, &sm) {}
|
||||
|
||||
enum States {IDLE, CONFIG};
|
||||
|
||||
AppSettings settings;
|
||||
|
||||
States state;
|
||||
|
||||
std::mutex mutex;
|
||||
|
||||
ConnectionManager cm;
|
||||
SignalManager sm;
|
||||
NodeManager nm;
|
||||
|
||||
AppUI ui;
|
||||
|
||||
void updateMidiPorts(){
|
||||
for(auto&n : nm.nodes){
|
||||
for(auto& mo : sm.midi.midi_out_ports){
|
||||
if(!n.midi_outs.contains(mo.number) && mo.enabled){
|
||||
n.midi_outs[mo.number] = {mo.number, mo.port.port_name, false};
|
||||
}
|
||||
if(n.midi_outs.contains(mo.number) && !mo.enabled){
|
||||
n.midi_outs.erase(mo.number);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void draw(Vec2D<float> *mouse_pos, Camera2D *camera){
|
||||
mutex.lock();
|
||||
updateMidiPorts();
|
||||
nm.drawNodes(mouse_pos, camera);
|
||||
cm.drawConnections(mouse_pos, camera);
|
||||
sm.drawSignals(mouse_pos, camera);
|
||||
mutex.unlock();
|
||||
}
|
||||
|
||||
void drawUI(Vec2D<float> *mouse_pos, Camera2D *camera){
|
||||
mutex.lock();
|
||||
ui.draw(mouse_pos, camera);
|
||||
mutex.unlock();
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user