TracktionEngine
|
Represents an input device. More...
Public Types | |
enum | DeviceType { waveDevice , trackWaveDevice , physicalMidiDevice , virtualMidiDevice , trackMidiDevice } |
enum to allow quick querying of the device type. More... | |
Public Types inherited from tracktion::engine::Selectable | |
using | WeakRef = juce::WeakReference< Selectable > |
Public Member Functions | |
InputDevice (Engine &, const juce::String &type, const juce::String &name) | |
~InputDevice () override | |
const juce::String & | getName () const |
const juce::String & | getType () const |
virtual DeviceType | getDeviceType () const =0 |
bool | isTrackDevice () const |
juce::String | getAlias () const |
the alias is the name shown in the draggable input device components More... | |
void | setAlias (const juce::String &newAlias) |
void | initialiseDefaultAlias () |
Called after all devices are constructed, so it can use all the device names in its calculations. More... | |
virtual bool | isAvailableToEdit () const |
bool | isEnabled () const |
virtual void | setEnabled (bool)=0 |
virtual bool | isMidi () const |
bool | isEndToEndEnabled () const |
virtual void | flipEndToEnd ()=0 |
virtual InputDeviceInstance * | createInstance (EditPlaybackContext &)=0 |
Creates an instance to use for a given playback context. More... | |
virtual void | masterTimeUpdate (double time)=0 |
This is a bit of a hack but allows the time for MIDI devices to be set through the base class interface. More... | |
virtual void | updateRetrospectiveBufferLength (double length)=0 |
juce::String | getSelectableDescription () override |
Subclasses must return a description of what they are. More... | |
juce::String | getGlobalPropertyName () const |
Public Member Functions inherited from tracktion::engine::Selectable | |
Selectable () | |
virtual | ~Selectable () |
virtual void | selectionStatusChanged (bool isNowSelected) |
Can be overridden to tell this object that it has just been selected or deselected. More... | |
virtual void | changed () |
This should be called to send a change notification to any SelectableListeners that are registered with this object. More... | |
virtual void | selectableAboutToBeDeleted () |
Called just before the selectable is about to be deleted so any subclasses should still be valid at this point. More... | |
void | addSelectableListener (SelectableListener *) |
void | removeSelectableListener (SelectableListener *) |
void | cancelAnyPendingUpdates () |
If changed() has been called, this will cancel any pending async change notificaions. More... | |
void | deselect () |
void | propertiesChanged () |
void | notifyListenersOfDeletion () |
WeakRef | getWeakRef () |
Static Public Member Functions | |
static void | setRetrospectiveLock (Engine &engine, const juce::Array< InputDeviceInstance * > &devices, 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. More... | |
Public Attributes | |
Engine & | engine |
LevelMeasurer | levelMeasurer |
Public Attributes inherited from tracktion::engine::Selectable | |
WeakRef::Master | masterReference |
Protected Attributes | |
std::atomic< bool > | enabled { false } |
bool | endToEndEnabled = false |
bool | retrospectiveRecordLock = false |
Represents an input device.
A single InputDevice object exists for each device in the system. For each InputDevice, there may be multiple InputDeviceInstance objects, for all the active EditPlaybackContexts
tracktion::engine::InputDevice::InputDevice | ( | Engine & | , |
const juce::String & | type, | ||
const juce::String & | name | ||
) |
|
override |
const juce::String& tracktion::engine::InputDevice::getName | ( | ) | const |
const juce::String& tracktion::engine::InputDevice::getType | ( | ) | const |
|
pure virtual |
bool tracktion::engine::InputDevice::isTrackDevice | ( | ) | const |
juce::String tracktion::engine::InputDevice::getAlias | ( | ) | const |
the alias is the name shown in the draggable input device components
void tracktion::engine::InputDevice::setAlias | ( | const juce::String & | newAlias | ) |
void tracktion::engine::InputDevice::initialiseDefaultAlias | ( | ) |
Called after all devices are constructed, so it can use all the device names in its calculations.
|
virtual |
Reimplemented in tracktion::engine::PhysicalMidiInputDevice.
References isEnabled().
bool tracktion::engine::InputDevice::isEnabled | ( | ) | const |
Referenced by isAvailableToEdit().
|
pure virtual |
|
virtual |
Reimplemented in tracktion::engine::MidiInputDevice.
bool tracktion::engine::InputDevice::isEndToEndEnabled | ( | ) | const |
References endToEndEnabled.
|
pure virtual |
Implemented in tracktion::engine::WaveInputDevice, and tracktion::engine::MidiInputDevice.
|
pure virtual |
Creates an instance to use for a given playback context.
Implemented in tracktion::engine::WaveInputDevice, tracktion::engine::VirtualMidiInputDevice, and tracktion::engine::PhysicalMidiInputDevice.
|
pure virtual |
This is a bit of a hack but allows the time for MIDI devices to be set through the base class interface.
Implemented in tracktion::engine::WaveInputDevice, and tracktion::engine::MidiInputDevice.
|
static |
|
pure virtual |
Implemented in tracktion::engine::WaveInputDevice, and tracktion::engine::MidiInputDevice.
|
overridevirtual |
Subclasses must return a description of what they are.
Implements tracktion::engine::Selectable.
Reimplemented in tracktion::engine::WaveInputDevice, and tracktion::engine::VirtualMidiInputDevice.
Referenced by tracktion::engine::InputDeviceInstance::InputDeviceDestination::getSelectableDescription().
juce::String tracktion::engine::InputDevice::getGlobalPropertyName | ( | ) | const |
Engine& tracktion::engine::InputDevice::engine |
LevelMeasurer tracktion::engine::InputDevice::levelMeasurer |
|
protected |
|
protected |
Referenced by isEndToEndEnabled(), and tracktion::engine::MidiInputDevice::isEndToEndEnabled().
|
protected |