hydrogen 1.2.6
MidiInput.h
Go to the documentation of this file.
1/*
2 * Hydrogen
3 * Copyright(c) 2002-2008 by Alex >Comix< Cominu [comix@users.sourceforge.net]
4 * Copyright(c) 2008-2025 The hydrogen development team [hydrogen-devel@lists.sourceforge.net]
5 *
6 * http://www.hydrogen-music.org
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY, without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see https://www.gnu.org/licenses
20 *
21 */
22
23#ifndef H2_MIDI_INPUT_H
24#define H2_MIDI_INPUT_H
25
26#include <core/Object.h>
27#include <string>
28#include <vector>
29#include "MidiCommon.h"
30
31namespace H2Core
32{
33
38class MidiInput : public virtual Object<MidiInput>
39{
41public:
42 MidiInput();
43 virtual ~MidiInput();
44
45 virtual void open() = 0;
46 virtual void close() = 0;
47 virtual std::vector<QString> getOutputPortList() = 0;
48
49 void setActive( bool isActive ) {
50 m_bActive = isActive;
51 }
52 void handleMidiMessage( const MidiMessage& msg );
53 void handleSysexMessage( const MidiMessage& msg );
54 void handleControlChangeMessage( const MidiMessage& msg );
55 void handleProgramChangeMessage( const MidiMessage& msg );
57
58protected:
60
61 void handleNoteOnMessage( const MidiMessage& msg );
62 void handleNoteOffMessage( const MidiMessage& msg, bool CymbalChoke );
63};
64
65};
66
67#endif
68
virtual void open()=0
void handleNoteOnMessage(const MidiMessage &msg)
void handleSysexMessage(const MidiMessage &msg)
virtual std::vector< QString > getOutputPortList()=0
void handleControlChangeMessage(const MidiMessage &msg)
void handleNoteOffMessage(const MidiMessage &msg, bool CymbalChoke)
void handleProgramChangeMessage(const MidiMessage &msg)
H2_OBJECT(MidiInput)
virtual ~MidiInput()
Definition MidiInput.cpp:46
void setActive(bool isActive)
Definition MidiInput.h:49
void handleMidiMessage(const MidiMessage &msg)
Definition MidiInput.cpp:51
void handlePolyphonicKeyPressureMessage(const MidiMessage &msg)
virtual void close()=0