score-addon-hardware/Hardware/Controller.hpp

48 lines
822 B
C++

#pragma once
#include <score_addon_hardware_export.h>
#include <Scenario/Document/Interval/IntervalModel.hpp>
#include <Scenario/Process/ScenarioModel.hpp>
namespace Hardware
{
class MidiController;
class SCORE_ADDON_HARDWARE_EXPORT Controller
: public QObject
{
W_OBJECT(Controller)
public:
explicit Controller(const score::DocumentContext& doc);
enum Commands
{
Play = 0,
Stop,
Left,
Right,
Up,
Down
};
void setup();
void setup_scenario(Scenario::ProcessModel* s);
void draw_intervals();
private:
double h_ofset;
double v_ofset;
double h_zoom;
double v_zoom;
MidiController* ctl;
Scenario::ProcessModel* scenar;
std::function<void(Controller::Commands, const bool&)> commandCallback;
void on_interval_changed(const Scenario::IntervalModel &);
};
}