eurorack/midi2cv/ui.h

46 lines
682 B
C
Raw Normal View History

2019-09-19 14:41:32 +00:00
#ifndef MIDI2CV_UI_H
#define MIDI2CV_UI_H
#include "stmlib/stmlib.h"
2019-10-28 17:56:37 +00:00
#include "stmlib/ui/event_queue.h"
2019-09-19 14:41:32 +00:00
typedef enum {
2019-10-28 17:56:37 +00:00
MENU_PART_1 = 0,
MENU_PART_2,
MENU_PART_3,
MENU_PART_4,
MENU_COUNT
} Menu_t;
2019-09-19 14:41:32 +00:00
class UI {
public:
UI() {}
~UI() {}
2019-10-28 17:56:37 +00:00
void Init();
void Poll();
void Flush();
2019-10-28 17:56:37 +00:00
bool DoEvents();
private:
Menu_t current_menu;
2019-10-28 17:56:37 +00:00
stmlib::EventQueue<16> input_queue;
2019-09-19 14:41:32 +00:00
2020-02-21 00:39:20 +00:00
bool long_press_event_sent_;
uint32_t start_stop_press_time_;
bool encoder_long_press_event_sent_;
uint32_t encoder_press_time_;
2019-10-28 17:56:37 +00:00
void Draw();
2019-09-19 14:41:32 +00:00
2019-10-28 17:56:37 +00:00
void OnClick();
void OnLongClick();
2020-02-21 00:39:20 +00:00
void OnIncrement(stmlib::Event& e);
2019-10-28 17:56:37 +00:00
DISALLOW_COPY_AND_ASSIGN(UI);
2019-09-19 14:41:32 +00:00
};
extern UI ui;
#endif