TracktionEngine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Attributes | List of all members
tracktion::engine::InputDevice Class Referenceabstract

Represents an input device. More...

#include <tracktion_InputDevice.h>

Inheritance diagram for tracktion::engine::InputDevice:

Public Types

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 >
 

Public Member Functions

 InputDevice (Engine &, juce::String type, juce::String name, juce::String deviceID)
 
 ~InputDevice () override
 
const juce::String & getName () const
 
const juce::String & getType () const
 
juce::String getDeviceID () 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
 
void setAlias (const juce::String &newAlias)
 
virtual bool isAvailableToEdit () const
 
bool isEnabled () const
 
virtual void setEnabled (bool)=0
 
virtual bool isMidi () const
 
MonitorMode getMonitorMode () const
 
void setMonitorMode (MonitorMode)
 
virtual InputDeviceInstancecreateInstance (EditPlaybackContext &)=0
 Creates an instance to use for a given playback context.
 
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.
 
virtual void updateRetrospectiveBufferLength (double length)=0
 
juce::String getSelectableDescription () override
 Subclasses must return a description of what they are.
 
virtual void saveProps ()=0
 
- 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.
 
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 ()
 

Static Public Member Functions

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.
 

Public Attributes

Engineengine
 
LevelMeasurer levelMeasurer
 
- Public Attributes inherited from tracktion::engine::Selectable
WeakRef::Master masterReference
 

Protected Attributes

std::atomic< bool > enabled { false }
 
MonitorMode monitorMode = MonitorMode::automatic
 
MonitorMode defaultMonitorMode = MonitorMode::automatic
 
bool retrospectiveRecordLock = false
 

Detailed Description

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

Member Enumeration Documentation

◆ DeviceType

enum to allow quick querying of the device type.

Enumerator
waveDevice 
trackWaveDevice 
physicalMidiDevice 
virtualMidiDevice 
trackMidiDevice 

◆ MonitorMode

Enum to describe monitor modes.

Enumerator
off 

Live input is never audible.

automatic 

Live input is audible when record is enabled.

on 

Live input is always audible.

Constructor & Destructor Documentation

◆ InputDevice()

tracktion::engine::InputDevice::InputDevice ( Engine ,
juce::String  type,
juce::String  name,
juce::String  deviceID 
)

◆ ~InputDevice()

tracktion::engine::InputDevice::~InputDevice ( )
override

Member Function Documentation

◆ getName()

const juce::String & tracktion::engine::InputDevice::getName ( ) const

◆ getType()

const juce::String & tracktion::engine::InputDevice::getType ( ) const

◆ getDeviceID()

juce::String tracktion::engine::InputDevice::getDeviceID ( ) const

◆ getDeviceType()

virtual DeviceType tracktion::engine::InputDevice::getDeviceType ( ) const
pure virtual

◆ isTrackDevice()

bool tracktion::engine::InputDevice::isTrackDevice ( ) const

◆ getAlias()

juce::String tracktion::engine::InputDevice::getAlias ( ) const

the alias is the name shown in the draggable input device components

◆ setAlias()

void tracktion::engine::InputDevice::setAlias ( const juce::String &  newAlias)

◆ isAvailableToEdit()

virtual bool tracktion::engine::InputDevice::isAvailableToEdit ( ) const
virtual

◆ isEnabled()

bool tracktion::engine::InputDevice::isEnabled ( ) const

Referenced by isAvailableToEdit().

◆ setEnabled()

virtual void tracktion::engine::InputDevice::setEnabled ( bool  )
pure virtual

◆ isMidi()

virtual bool tracktion::engine::InputDevice::isMidi ( ) const
virtual

◆ getMonitorMode()

MonitorMode tracktion::engine::InputDevice::getMonitorMode ( ) const

References monitorMode.

◆ setMonitorMode()

void tracktion::engine::InputDevice::setMonitorMode ( MonitorMode  )

◆ createInstance()

virtual InputDeviceInstance * tracktion::engine::InputDevice::createInstance ( EditPlaybackContext )
pure virtual

Creates an instance to use for a given playback context.

Implemented in tracktion::engine::PhysicalMidiInputDevice, tracktion::engine::VirtualMidiInputDevice, and tracktion::engine::WaveInputDevice.

◆ masterTimeUpdate()

virtual void tracktion::engine::InputDevice::masterTimeUpdate ( double  time)
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::MidiInputDevice, and tracktion::engine::WaveInputDevice.

◆ setRetrospectiveLock()

static void tracktion::engine::InputDevice::setRetrospectiveLock ( Engine ,
const juce::Array< InputDeviceInstance * > &  ,
bool  lock 
)
static

◆ updateRetrospectiveBufferLength()

virtual void tracktion::engine::InputDevice::updateRetrospectiveBufferLength ( double  length)
pure virtual

◆ getSelectableDescription()

juce::String tracktion::engine::InputDevice::getSelectableDescription ( )
overridevirtual

◆ saveProps()

virtual void tracktion::engine::InputDevice::saveProps ( )
pure virtual

Member Data Documentation

◆ engine

Engine& tracktion::engine::InputDevice::engine

◆ levelMeasurer

LevelMeasurer tracktion::engine::InputDevice::levelMeasurer

◆ enabled

std::atomic<bool> tracktion::engine::InputDevice::enabled { false }
protected

◆ monitorMode

MonitorMode tracktion::engine::InputDevice::monitorMode = MonitorMode::automatic
protected

Referenced by getMonitorMode().

◆ defaultMonitorMode

MonitorMode tracktion::engine::InputDevice::defaultMonitorMode = MonitorMode::automatic
protected

◆ retrospectiveRecordLock

bool tracktion::engine::InputDevice::retrospectiveRecordLock = false
protected

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