TracktionEngine
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
engine::VirtualMidiInputDevice Class Reference

#include <tracktion_VirtualMidiInputDevice.h>

Inheritance diagram for engine::VirtualMidiInputDevice:

Public Member Functions

 VirtualMidiInputDevice (Engine &, juce::String name, DeviceType, juce::String deviceID, bool isAllMIDIIns)
 
 ~VirtualMidiInputDevice () override
 
InputDeviceInstancecreateInstance (EditPlaybackContext &) override
 Creates an instance to use for a given playback context.
 
void handleIncomingMidiMessage (const juce::MidiMessage &, MPESourceID) override
 
void setEnabled (bool) override
 
void loadProps () override
 
void saveProps () override
 
juce::StringArray getMIDIInputSourceDevices () const
 
void setMIDIInputSourceDevices (const juce::StringArray deviceIDs)
 
void toggleMIDIInputSourceDevice (const juce::String &deviceID)
 
void handleMessageFromPhysicalDevice (PhysicalMidiInputDevice &, const juce::MidiMessage &)
 
DeviceType getDeviceType () const override
 
juce::String getDeviceTypeDescription () const override
 
void handleIncomingMidiMessage (juce::MidiInput *, const juce::MidiMessage &) override
 
virtual void handleIncomingMidiMessage (const juce::MidiMessage &, MPESourceID)=0
 
- Public Member Functions inherited from engine::MidiInputDevice
 MidiInputDevice (Engine &, juce::String name, juce::String deviceID)
 
 ~MidiInputDevice () override
 
void setEnabled (bool) override
 
bool isMidi () const override
 
MidiChannel getChannelToUse () const noexcept
 
void setChannelToUse (int)
 
int getProgramToUse () const noexcept
 
void setProgramToUse (int)
 
void setBankToUse (int)
 
int getBankToUse () const
 
void setChannelAllowed (int midiChannel, bool)
 
bool isChannelAllowed (int midiChannel) const
 
void setNoteFilterRange (NoteFilterRange)
 
NoteFilterRange getNoteFilterRange () const
 
void setOverridingNoteVelocities (bool)
 
bool isOverridingNoteVelocities () const
 
void setManualAdjustmentMs (double)
 
double getManualAdjustmentMs () const
 
void setMinimumLengthMs (double)
 
double getMinimumLengthMs () const
 
bool isMPEDevice () const
 Returns true if the given device is an MPE device and so should always record incoming MIDI to Note Expression.
 
void masterTimeUpdate (double time) override
 This is a bit of a hack but allows the time for MIDI devices to be set through the base class interface.
 
void connectionStateChanged ()
 
bool handleIncomingMessage (juce::MidiMessage &)
 Updates the timestamp of the message and handles sending it out to listeners.
 
void addInstance (MidiInputDeviceInstanceBase *)
 
void removeInstance (MidiInputDeviceInstanceBase *)
 
ClipaddMidiAsTransaction (Edit &, EditItemID targetID, Clip *takeClip, juce::MidiMessageSequence, TimeRange markedRange, MergeMode, MidiChannel)
 
void handleIncomingMidiMessage (juce::MidiInput *, const juce::MidiMessage &) override
 
RetrospectiveMidiBuffer * getRetrospectiveMidiBuffer () const
 
void updateRetrospectiveBufferLength (double length) override
 
double getAdjustSecs () const
 
juce::Array< AudioTrack * > getDestinationTracks ()
 
MidiChannel getMidiChannelFor (int rawChannelNumber) const
 
MPESourceID getMPESourceID () const
 
- Public Member Functions inherited from engine::InputDevice
 InputDevice (Engine &, juce::String name, juce::String deviceID)
 
 ~InputDevice () override
 
bool isTrackDevice () const override
 
virtual bool isAvailableToEdit () const
 
bool isMidi () const override
 
MonitorMode getMonitorMode () const
 
void setMonitorMode (MonitorMode)
 

Public Attributes

const bool useAllInputs = false
 
- Public Attributes inherited from engine::MidiInputDevice
bool mergeRecordings = true
 
bool recordingEnabled = true
 
bool replaceExistingClips = false
 
bool recordToNoteAutomation = false
 
QuantisationType quantisation
 
juce::MidiKeyboardState keyboardState
 
- Public Attributes inherited from engine::InputDevice
LevelMeasurer levelMeasurer
 

Additional Inherited Members

- Public Types inherited from engine::MidiInputDevice
enum class  MergeMode { always , never , optional }
 
- Public Types inherited from engine::InputDevice
enum  DeviceType {
  waveDevice , trackWaveDevice , physicalMidiDevice , virtualMidiDevice ,
  trackMidiDevice
}
 enum to allow quick querying of the device type. More...
 
enum class  MonitorMode { off , automatic , on }
 Enum to describe monitor modes. More...
 
- Static Public Member Functions inherited from engine::InputDevice
static void setRetrospectiveLock (Engine &, const juce::Array< InputDeviceInstance * > &, bool lock)
 
- Protected Member Functions inherited from engine::MidiInputDevice
void handleNoteOn (juce::MidiKeyboardState *, int midiChannel, int midiNoteNumber, float velocity) override
 
void handleNoteOff (juce::MidiKeyboardState *, int midiChannel, int midiNoteNumber, float velocity) override
 
void timerCallback () override
 
void sendNoteOnToMidiKeyListeners (juce::MidiMessage &)
 
void loadMidiProps (const juce::XmlElement *)
 
void saveMidiProps (juce::XmlElement &)
 
void sendMessageToInstances (const juce::MidiMessage &, MPESourceID)
 
- Protected Attributes inherited from engine::MidiInputDevice
std::atomic< double > adjustSecs { 0 }
 
double manualAdjustMs = 0
 
double minimumLengthMs = 0
 
bool overrideNoteVels = false
 
bool eventReceivedFromDevice = false
 
juce::BigInteger disallowedChannels
 
MidiChannel channelToUse
 
int programToUse = 0
 
int bankToUse = 0
 
NoteFilterRange noteFilterRange
 
MPESourceID midiSourceID = createUniqueMPESourceID()
 
std::unique_ptr< NoteDispatcher > noteDispatcher
 
std::vector< double > lastNoteOns
 
juce::CriticalSection noteLock
 
bool keysDown [128]
 
bool keysUp [128]
 
uint8_t keyDownVelocities [128]
 
juce::SharedResourcePointer< MidiKeyChangeDispatchermidiKeyChangeDispatcher
 
juce::CriticalSection instanceLock
 
juce::Array< MidiInputDeviceInstanceBase * > instances
 
std::unique_ptr< RetrospectiveMidiBuffer > retrospectiveBuffer
 
- Protected Attributes inherited from engine::InputDevice
MonitorMode monitorMode = MonitorMode::automatic
 
MonitorMode defaultMonitorMode = MonitorMode::automatic
 
bool retrospectiveRecordLock = false
 

Constructor & Destructor Documentation

◆ VirtualMidiInputDevice()

engine::VirtualMidiInputDevice::VirtualMidiInputDevice ( Engine ,
juce::String  name,
DeviceType  ,
juce::String  deviceID,
bool  isAllMIDIIns 
)

◆ ~VirtualMidiInputDevice()

engine::VirtualMidiInputDevice::~VirtualMidiInputDevice ( )
override

Member Function Documentation

◆ createInstance()

InputDeviceInstance * engine::VirtualMidiInputDevice::createInstance ( EditPlaybackContext )
overridevirtual

Creates an instance to use for a given playback context.

Implements engine::InputDevice.

◆ handleIncomingMidiMessage() [1/3]

void engine::VirtualMidiInputDevice::handleIncomingMidiMessage ( const juce::MidiMessage &  ,
MPESourceID   
)
overridevirtual

◆ setEnabled()

void engine::VirtualMidiInputDevice::setEnabled ( bool  )
override

◆ loadProps()

void engine::VirtualMidiInputDevice::loadProps ( )
overridevirtual

◆ saveProps()

void engine::VirtualMidiInputDevice::saveProps ( )
overridevirtual

Implements engine::InputDevice.

◆ getMIDIInputSourceDevices()

juce::StringArray engine::VirtualMidiInputDevice::getMIDIInputSourceDevices ( ) const

◆ setMIDIInputSourceDevices()

void engine::VirtualMidiInputDevice::setMIDIInputSourceDevices ( const juce::StringArray  deviceIDs)

◆ toggleMIDIInputSourceDevice()

void engine::VirtualMidiInputDevice::toggleMIDIInputSourceDevice ( const juce::String &  deviceID)

◆ handleMessageFromPhysicalDevice()

void engine::VirtualMidiInputDevice::handleMessageFromPhysicalDevice ( PhysicalMidiInputDevice ,
const juce::MidiMessage &   
)

◆ getDeviceType()

DeviceType engine::VirtualMidiInputDevice::getDeviceType ( ) const
overridevirtual

Implements engine::InputDevice.

◆ getDeviceTypeDescription()

juce::String engine::VirtualMidiInputDevice::getDeviceTypeDescription ( ) const
override

◆ handleIncomingMidiMessage() [2/3]

void engine::MidiInputDevice::handleIncomingMidiMessage ( juce::MidiInput *  ,
const juce::MidiMessage &   
)
override

◆ handleIncomingMidiMessage() [3/3]

virtual void engine::MidiInputDevice::handleIncomingMidiMessage ( const juce::MidiMessage &  ,
MPESourceID   
)
virtual

Member Data Documentation

◆ useAllInputs

const bool engine::VirtualMidiInputDevice::useAllInputs = false

The documentation for this class was generated from the following file: