tracktion-engine 3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications

« « « Anklang Documentation
Loading...
Searching...
No Matches
tracktion_VirtualMidiInputDevice.h
Go to the documentation of this file.
1 /*
2 ,--. ,--. ,--. ,--.
3 ,-' '-.,--.--.,--,--.,---.| |,-.,-' '-.`--' ,---. ,--,--, Copyright 2024
4 '-. .-'| .--' ,-. | .--'| /'-. .-',--.| .-. || \ Tracktion Software
5 | | | | \ '-' \ `--.| \ \ | | | |' '-' '| || | Corporation
6 `---' `--' `--`--'`---'`--'`--' `---' `--' `---' `--''--' www.tracktion.com
7
8 Tracktion Engine uses a GPL/commercial licence - see LICENCE.md for details.
9*/
10
11namespace tracktion { inline namespace engine
12{
13
15{
16public:
17 VirtualMidiInputDevice (Engine&, juce::String name, DeviceType, juce::String deviceID, bool isAllMIDIIns);
18 ~VirtualMidiInputDevice() override;
19
21
22 using MidiInputDevice::handleIncomingMidiMessage;
23 void handleIncomingMidiMessage (const juce::MidiMessage&) override;
25
26 void setEnabled (bool) override;
27 void loadProps() override;
28 void saveProps() override;
29
30 juce::StringArray getMIDIInputSourceDevices() const { return inputDeviceIDs; }
31 void setMIDIInputSourceDevices (const juce::StringArray deviceIDs);
32 void toggleMIDIInputSourceDevice (const juce::String& deviceID);
33
34 void handleMessageFromPhysicalDevice (MidiInputDevice&, const juce::MidiMessage&);
35
36 DeviceType getDeviceType() const override { return deviceType; }
37
38 bool useAllInputs = false;
39
40private:
41 juce::String openDevice() override;
42 void closeDevice() override;
43 DeviceType deviceType;
44 juce::StringArray inputDeviceIDs;
45
47};
48
49}} // namespace tracktion { inline namespace engine
The Engine is the central class for all tracktion sessions.
An instance of an InputDevice that's available to an Edit.
DeviceType
enum to allow quick querying of the device type.
InputDeviceInstance * createInstance(EditPlaybackContext &) override
Creates an instance to use for a given playback context.
juce::String getSelectableDescription() override
Subclasses must return a description of what they are.
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)