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

Represents an input device. More...

#include <tracktion_InputDevice.h>

Inheritance diagram for 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 Member Functions

 InputDevice (Engine &, juce::String name, juce::String deviceID)
 
 ~InputDevice () override
 
virtual DeviceType getDeviceType () const =0
 
bool isTrackDevice () const override
 
virtual bool isAvailableToEdit () const
 
bool isMidi () const override
 
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
 
virtual void saveProps ()=0
 

Static Public Member Functions

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

Public Attributes

LevelMeasurer levelMeasurer
 

Protected Attributes

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()

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

◆ ~InputDevice()

engine::InputDevice::~InputDevice ( )
override

Member Function Documentation

◆ getDeviceType()

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

◆ isTrackDevice()

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

◆ isAvailableToEdit()

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

◆ isMidi()

bool engine::InputDevice::isMidi ( ) const
override

◆ getMonitorMode()

MonitorMode engine::InputDevice::getMonitorMode ( ) const

◆ setMonitorMode()

void engine::InputDevice::setMonitorMode ( MonitorMode  )

◆ createInstance()

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

Creates an instance to use for a given playback context.

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

◆ masterTimeUpdate()

virtual void 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 engine::MidiInputDevice, and engine::WaveInputDevice.

◆ setRetrospectiveLock()

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

◆ updateRetrospectiveBufferLength()

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

◆ saveProps()

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

Member Data Documentation

◆ levelMeasurer

LevelMeasurer engine::InputDevice::levelMeasurer

◆ monitorMode

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

◆ defaultMonitorMode

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

◆ retrospectiveRecordLock

bool engine::InputDevice::retrospectiveRecordLock = false
protected

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