drumstick 2.7.2
rtmidiinput.h
Go to the documentation of this file.
1/*
2 Drumstick MIDI realtime input-output
3 Copyright (C) 2009-2022 Pedro Lopez-Cabanillas <plcl@users.sf.net>
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#ifndef MIDIINPUT_H
20#define MIDIINPUT_H
21
22#include <QObject>
23#include <QString>
24#include <QStringList>
25#include <QtPlugin>
26#include <QSettings>
27
28#include "macros.h"
29#include "rtmidioutput.h"
30
36namespace drumstick { namespace rt {
37
45 class DRUMSTICK_EXPORT MIDIInput : public QObject
46 {
47 Q_OBJECT
48
49 public:
54 explicit MIDIInput(QObject *parent = nullptr) : QObject(parent) {}
58 virtual ~MIDIInput() = default;
63 virtual void initialize(QSettings* settings) = 0;
68 virtual QString backendName() = 0;
73 virtual QString publicName() = 0;
78 virtual void setPublicName(QString name) = 0;
84 virtual QList<MIDIConnection> connections(bool advanced = false) = 0;
89 virtual void setExcludedConnections(QStringList conns) = 0;
94 virtual void open(const MIDIConnection& conn) = 0;
98 virtual void close() = 0;
108 virtual void setMIDIThruDevice(MIDIOutput* device) = 0;
113 virtual void enableMIDIThru(bool enable) = 0;
118 virtual bool isEnabledMIDIThru() = 0;
119
120 Q_SIGNALS:
127 void midiNoteOff(const int chan, const int note, const int vel);
128
135 void midiNoteOn(const int chan, const int note, const int vel);
136
143 void midiKeyPressure(const int chan, const int note, const int value);
144
151 void midiController(const int chan, const int control, const int value);
152
158 void midiProgram(const int chan, const int program);
159
165 void midiChannelPressure(const int chan, const int value);
166
172 void midiPitchBend(const int chan, const int value);
173
178 void midiSysex(const QByteArray &data);
179
184 void midiSystemCommon(const int status);
185
190 void midiSystemRealtime(const int status);
191 };
192
195}} // namespace drumstick::rt
196
197Q_DECLARE_INTERFACE(drumstick::rt::MIDIInput, "net.sourceforge.drumstick.rt.MIDIInput/2.0")
198
199#endif // MIDIINPUT_H
The QObject class is the base class of all Qt objects.
The QSettings class provides persistent platform-independent application settings.
MIDI IN interface.
Definition: rtmidiinput.h:46
void midiProgram(const int chan, const int program)
midiProgram 0xC
void midiController(const int chan, const int control, const int value)
midiController 0xB
void midiNoteOn(const int chan, const int note, const int vel)
midiNoteOn 0x9
virtual void setExcludedConnections(QStringList conns)=0
setExcludedConnections
void midiChannelPressure(const int chan, const int value)
midiChannelPressure 0xD
virtual void initialize(QSettings *settings)=0
initialize
virtual QString backendName()=0
backendName
virtual ~MIDIInput()=default
~MIDIInput destructor
virtual MIDIConnection currentConnection()=0
currentConnection
MIDIInput(QObject *parent=nullptr)
MIDIInput constructor.
Definition: rtmidiinput.h:54
virtual void enableMIDIThru(bool enable)=0
enableMIDIThru
void midiPitchBend(const int chan, const int value)
midiPitchBend 0xE
void midiSystemRealtime(const int status)
midiSystemRealtime
virtual QList< MIDIConnection > connections(bool advanced=false)=0
connections
virtual QString publicName()=0
publicName
virtual void open(const MIDIConnection &conn)=0
open the MIDI port by name
void midiKeyPressure(const int chan, const int note, const int value)
midiKeyPressure 0xA
virtual void setMIDIThruDevice(MIDIOutput *device)=0
setMIDIThruDevice
virtual bool isEnabledMIDIThru()=0
isEnabledMIDIThru
void midiNoteOff(const int chan, const int note, const int vel)
midiNoteOff 0x8
void midiSystemCommon(const int status)
midiSystemCommon
virtual void close()=0
close the MIDI port
void midiSysex(const QByteArray &data)
midiSysex
virtual void setPublicName(QString name)=0
setPublicName
MIDI OUT interface.
Definition: rtmidioutput.h:112
QPair< QString, QVariant > MIDIConnection
MIDIConnection represents a connection identifier.
Definition: rtmidioutput.h:106
Drumstick visibility macros.
Drumstick common.
Definition: alsaclient.cpp:68
Realtime MIDI output interface.