DJMFix.h
branchv_0
changeset 2 f34476ab597f
parent 1 98274757fcf6
child 6 bddcf2bf29f2
equal deleted inserted replaced
1:98274757fcf6 2:f34476ab597f
    15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
    15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
    16  */
    16  */
    17 #pragma once
    17 #pragma once
    18 
    18 
    19 #include <vector>
    19 #include <vector>
    20 #include <functional>
       
    21 
    20 
    22 namespace djmfix {
    21 namespace djmfix {
    23 
    22 
    24 using MidiMessage = std::vector<uint8_t>;
    23 using MidiMessage = std::vector<uint8_t>;
    25 using MidiSender = std::function<void(MidiMessage) >;
    24 
       
    25 class MidiSender {
       
    26 public:
       
    27 	virtual ~MidiSender() = default;
       
    28 	virtual void send(MidiMessage midiMessage) = 0;
       
    29 };
    26 
    30 
    27 class DJMFix {
    31 class DJMFix {
    28 public:
    32 public:
    29 	virtual ~DJMFix() = default;
    33 	virtual ~DJMFix() = default;
       
    34 	virtual void setMidiSender(MidiSender* midiSender) = 0;
    30 	virtual void receive(MidiMessage midiMessage) = 0;
    35 	virtual void receive(MidiMessage midiMessage) = 0;
    31 	virtual void start() = 0;
    36 	virtual void start() = 0;
    32 	virtual void stop() = 0;
    37 	virtual void stop() = 0;
    33 };
    38 };
    34 
    39 
    35 DJMFix* create(MidiSender midiSender);
    40 DJMFix* create();
    36 
    41 
    37 }
    42 }