BuGUI
BUtton Grid User Interface
Loading...
Searching...
No Matches
midi_common.hpp
1#pragma once
2#include <bugui/hardware/base_hardware.hpp>
3
4#include <libremidi/libremidi.hpp>
5
6namespace bugui
7{
11struct midi_common
12 : virtual base_hardware
13{
15 stdx::error set_midi_in_port
16 (const libremidi::observer& observer
17 , std::string_view port_name) override;
18
19 stdx::error set_midi_out_port
20 (const libremidi::observer& observer
21 , std::string_view port_name) override;
22
23protected:
24 explicit midi_common() {};
25
26 ~midi_common();
27
28 std::unique_ptr<libremidi::midi_in> m_input;
29 libremidi::midi_out m_output;
30
31 std::vector<std::function<bool(uint8_t, uint8_t)>> cc_functions;
32 std::vector<std::function<bool(uint8_t, uint8_t)>> on_off_functions;
33};
34
35} // namespace bugui