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

« « « Anklang Documentation
Loading...
Searching...
No Matches
Classes | Public Member Functions | Public Attributes | Friends | List of all members
tracktion::engine::PhysicalMidiInputDevice Class Reference
Inheritance diagram for tracktion::engine::PhysicalMidiInputDevice:
tracktion::engine::MidiInputDevice tracktion::engine::InputDevice juce::MidiInputCallback juce::Timer tracktion::engine::Selectable

Classes

class  Listener
 

Public Member Functions

 PhysicalMidiInputDevice (Engine &, juce::MidiDeviceInfo)
 
InputDeviceInstancecreateInstance (EditPlaybackContext &) override
 Creates an instance to use for a given playback context.
 
void setReadingMidiTimecode (bool)
 
void setIgnoresHours (bool)
 
bool isIgnoringHours () const noexcept
 
void setAcceptingMMC (bool)
 
void setReadingControllerMessages (bool)
 
bool isAvailableToEdit () const override
 
void setExternalController (ExternalController *)
 sets the external controller to send the messages to.
 
void removeExternalController (ExternalController *)
 
bool isUsedForExternalControl () const
 
void handleIncomingMidiMessage (const juce::MidiMessage &) override
 
void loadProps () override
 
void saveProps () override
 
DeviceType getDeviceType () const override
 
void addListener (Listener *l)
 
void removeListener (Listener *l)
 
juce::String openDevice () override
 
void closeDevice () override
 
void handleIncomingMidiMessage (juce::MidiInput *, const juce::MidiMessage &) override
 
virtual void handleIncomingMidiMessage (const juce::MidiMessage &)=0
 
- Public Member Functions inherited from tracktion::engine::MidiInputDevice
 MidiInputDevice (Engine &, juce::String type, juce::String name, juce::String deviceID)
 
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)
 
RetrospectiveMidiBuffergetRetrospectiveMidiBuffer () const
 
void updateRetrospectiveBufferLength (double length) override
 
double getAdjustSecs () const
 
juce::Array< AudioTrack * > getDestinationTracks ()
 
MidiChannel getMidiChannelFor (int rawChannelNumber) const
 
MidiMessageArray::MPESourceID getMPESourceID () const
 
- Public Member Functions inherited from tracktion::engine::InputDevice
 InputDevice (Engine &, juce::String type, juce::String name, juce::String deviceID)
 
const juce::StringgetName () const
 
const juce::StringgetType () const
 
juce::String getDeviceID () const
 
bool isTrackDevice () const
 
juce::String getAlias () const
 the alias is the name shown in the draggable input device components
 
void setAlias (const juce::String &newAlias)
 
bool isEnabled () const
 
MonitorMode getMonitorMode () const
 
void setMonitorMode (MonitorMode)
 
juce::String getSelectableDescription () override
 Subclasses must return a description of what they are.
 
- Public Member Functions inherited from tracktion::engine::Selectable
virtual void selectionStatusChanged (bool isNowSelected)
 Can be overridden to tell this object that it has just been selected or deselected.
 
virtual void changed ()
 This should be called to send a change notification to any SelectableListeners that are registered with this object.
 
virtual void selectableAboutToBeDeleted ()
 Called just before the selectable is about to be deleted so any subclasses should still be valid at this point.
 
void addListener (SelectableListener *)
 
void removeListener (SelectableListener *)
 
void addSelectableListener (SelectableListener *)
 
void removeSelectableListener (SelectableListener *)
 
void cancelAnyPendingUpdates ()
 If changed() has been called, this will cancel any pending async change notificaions.
 
void deselect ()
 
void propertiesChanged ()
 
void notifyListenersOfDeletion ()
 
WeakRef getWeakRef ()
 
- Public Member Functions inherited from juce::MidiInputCallback
virtual void handlePartialSysexMessage (MidiInput *source, const uint8 *messageData, int numBytesSoFar, double timestamp)
 

Public Attributes

bool isTakingControllerMessages
 
- Public Attributes inherited from tracktion::engine::MidiInputDevice
bool mergeRecordings
 
bool recordingEnabled
 
bool replaceExistingClips
 
bool recordToNoteAutomation
 
QuantisationType quantisation
 
juce::MidiKeyboardState keyboardState
 
- Public Attributes inherited from tracktion::engine::InputDevice
Engineengine
 
LevelMeasurer levelMeasurer
 
- Public Attributes inherited from tracktion::engine::Selectable
WeakRef::Master masterReference
 

Friends

struct PhysicalMidiInputDeviceInstance
 

Additional Inherited Members

- Public Types inherited from tracktion::engine::MidiInputDevice
enum class  MergeMode { always , never , optional }
 
- Public Types inherited from tracktion::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...
 
- Public Types inherited from tracktion::engine::Selectable
using WeakRef = juce::WeakReference< Selectable >
 
- Static Public Member Functions inherited from tracktion::engine::InputDevice
static void setRetrospectiveLock (Engine &, const juce::Array< InputDeviceInstance * > &, bool lock)
 
- Static Public Member Functions inherited from tracktion::engine::Selectable
static void initialise ()
 
static bool isSelectableValid (const Selectable *) noexcept
 checks whether this object has been deleted.
 
- Protected Member Functions inherited from tracktion::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 &)
 
- Protected Attributes inherited from tracktion::engine::MidiInputDevice
std::atomic< doubleadjustSecs
 
double manualAdjustMs
 
double minimumLengthMs
 
bool overrideNoteVels
 
bool eventReceivedFromDevice
 
juce::BigInteger disallowedChannels
 
MidiChannel channelToUse
 
int programToUse
 
int bankToUse
 
NoteFilterRange noteFilterRange
 
MidiMessageArray::MPESourceID midiSourceID
 
std::unique_ptr< NoteDispatchernoteDispatcher
 
std::vector< doublelastNoteOns
 
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< RetrospectiveMidiBufferretrospectiveBuffer
 
- Protected Attributes inherited from tracktion::engine::InputDevice
std::atomic< bool > enabled
 
MonitorMode monitorMode
 
MonitorMode defaultMonitorMode
 
bool retrospectiveRecordLock
 

Detailed Description

Definition at line 14 of file tracktion_PhysicalMidiInputDevice.h.

Constructor & Destructor Documentation

◆ PhysicalMidiInputDevice()

tracktion::engine::PhysicalMidiInputDevice::PhysicalMidiInputDevice ( Engine e,
juce::MidiDeviceInfo  info 
)

Definition at line 293 of file tracktion_PhysicalMidiInputDevice.cpp.

◆ ~PhysicalMidiInputDevice()

tracktion::engine::PhysicalMidiInputDevice::~PhysicalMidiInputDevice ( )
override

Definition at line 303 of file tracktion_PhysicalMidiInputDevice.cpp.

Member Function Documentation

◆ addListener()

void tracktion::engine::PhysicalMidiInputDevice::addListener ( Listener l)

Definition at line 54 of file tracktion_PhysicalMidiInputDevice.h.

◆ closeDevice()

void tracktion::engine::PhysicalMidiInputDevice::closeDevice ( )
overridevirtual

◆ createInstance()

InputDeviceInstance * tracktion::engine::PhysicalMidiInputDevice::createInstance ( EditPlaybackContext )
overridevirtual

Creates an instance to use for a given playback context.

Implements tracktion::engine::InputDevice.

Definition at line 308 of file tracktion_PhysicalMidiInputDevice.cpp.

◆ getDeviceType()

DeviceType tracktion::engine::PhysicalMidiInputDevice::getDeviceType ( ) const
overridevirtual

◆ handleIncomingMidiMessage() [1/3]

void tracktion::engine::PhysicalMidiInputDevice::handleIncomingMidiMessage ( const juce::MidiMessage m)
overridevirtual

◆ handleIncomingMidiMessage() [2/3]

virtual void tracktion::engine::MidiInputDevice::handleIncomingMidiMessage ( const juce::MidiMessage )
virtual

◆ handleIncomingMidiMessage() [3/3]

void tracktion::engine::MidiInputDevice::handleIncomingMidiMessage ( juce::MidiInput ,
const juce::MidiMessage m 
)
overridevirtual

Reimplemented from tracktion::engine::MidiInputDevice.

Definition at line 99 of file tracktion_MidiInputDevice.cpp.

◆ isAvailableToEdit()

bool tracktion::engine::PhysicalMidiInputDevice::isAvailableToEdit ( ) const
overridevirtual

Reimplemented from tracktion::engine::InputDevice.

Definition at line 366 of file tracktion_PhysicalMidiInputDevice.cpp.

◆ isIgnoringHours()

bool tracktion::engine::PhysicalMidiInputDevice::isIgnoringHours ( ) const
noexcept

Definition at line 24 of file tracktion_PhysicalMidiInputDevice.h.

◆ isUsedForExternalControl()

bool tracktion::engine::PhysicalMidiInputDevice::isUsedForExternalControl ( ) const

Definition at line 34 of file tracktion_PhysicalMidiInputDevice.h.

◆ loadProps()

void tracktion::engine::PhysicalMidiInputDevice::loadProps ( )
overridevirtual

◆ openDevice()

juce::String tracktion::engine::PhysicalMidiInputDevice::openDevice ( )
overridevirtual

◆ removeExternalController()

void tracktion::engine::PhysicalMidiInputDevice::removeExternalController ( ExternalController ec)

Definition at line 360 of file tracktion_PhysicalMidiInputDevice.cpp.

◆ removeListener()

void tracktion::engine::PhysicalMidiInputDevice::removeListener ( Listener l)

Definition at line 60 of file tracktion_PhysicalMidiInputDevice.h.

◆ saveProps()

void tracktion::engine::PhysicalMidiInputDevice::saveProps ( )
overridevirtual

◆ setAcceptingMMC()

void tracktion::engine::PhysicalMidiInputDevice::setAcceptingMMC ( bool  b)

Definition at line 520 of file tracktion_PhysicalMidiInputDevice.cpp.

◆ setExternalController()

void tracktion::engine::PhysicalMidiInputDevice::setExternalController ( ExternalController ec)

sets the external controller to send the messages to.

Definition at line 354 of file tracktion_PhysicalMidiInputDevice.cpp.

◆ setIgnoresHours()

void tracktion::engine::PhysicalMidiInputDevice::setIgnoresHours ( bool  b)

Definition at line 515 of file tracktion_PhysicalMidiInputDevice.cpp.

◆ setReadingControllerMessages()

void tracktion::engine::PhysicalMidiInputDevice::setReadingControllerMessages ( bool  b)

Definition at line 525 of file tracktion_PhysicalMidiInputDevice.cpp.

◆ setReadingMidiTimecode()

void tracktion::engine::PhysicalMidiInputDevice::setReadingMidiTimecode ( bool  b)

Definition at line 510 of file tracktion_PhysicalMidiInputDevice.cpp.

Friends And Related Symbol Documentation

◆ PhysicalMidiInputDeviceInstance

friend struct PhysicalMidiInputDeviceInstance
friend

Definition at line 72 of file tracktion_PhysicalMidiInputDevice.h.

Member Data Documentation

◆ isTakingControllerMessages

bool tracktion::engine::PhysicalMidiInputDevice::isTakingControllerMessages

Definition at line 44 of file tracktion_PhysicalMidiInputDevice.h.


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