Loading...
Searching...
No Matches
MIDIDevice.hpp
1#pragma once
2#include <Device/Protocol/DeviceInterface.hpp>
3
4#include <score_plugin_protocols_export.h>
5
6#include <libremidi/api.hpp>
7#include <libremidi/configurations.hpp>
8#include <libremidi/input_configuration.hpp>
9#include <libremidi/output_configuration.hpp>
10
11#include <utility>
12
13namespace libremidi
14{
15class observer;
16}
17namespace Protocols
18{
19class MidiKeyboardEventFilter;
20struct MIDISpecificSettings;
21class MIDIDevice;
22
32SCORE_PLUGIN_PROTOCOLS_EXPORT
33bool midiApiAvailable(libremidi::API api) noexcept;
34
47SCORE_PLUGIN_PROTOCOLS_EXPORT
48std::pair<libremidi::input_configuration, libremidi::input_api_configuration>
49makeInputConfiguration(MIDIDevice* self, MIDISpecificSettings& set);
50
52SCORE_PLUGIN_PROTOCOLS_EXPORT
53std::pair<libremidi::output_configuration, libremidi::output_api_configuration>
54makeOutputConfiguration(MIDIDevice* self, MIDISpecificSettings& set);
55
57{
58public:
60 const Device::DeviceSettings& settings,
61 const ossia::net::network_context_ptr& ctx);
63
64 bool reconnect() override;
65
66 void disconnect() override;
67
68 QMimeData* mimeData() const override;
69
70 using OwningDeviceInterface::refresh;
71 Device::Node refresh() override;
72
73 bool isLearning() const final override;
74 void setLearning(bool) final override;
75
76 const ossia::net::network_context_ptr& m_ctx;
77 MidiKeyboardEventFilter* m_kbdfilter{};
78};
79}
Definition DeviceInterface.hpp:245
Definition MIDIDevice.hpp:57
Definition MIDIKeyboardEventFilter.linux.hpp:15
Definition DeviceSettings.hpp:20