TracktionEngine
Classes | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
tracktion::engine::InputDeviceInstance Class Referenceabstract

Inherits juce::ValueTree::Listener.

Classes

struct  Consumer
 Base class for classes that want to listen to an InputDevice and get a callback for each block of input. More...
 
struct  InputDeviceDestination
 
struct  InputDeviceDestinationList
 
struct  MidiInputDeviceDestination
 
struct  RecordingParameters
 The parameters used to configure a recording operation. More...
 
struct  VirtualMidiInputDeviceDestination
 
struct  WaveInputDeviceDestination
 

Public Member Functions

 InputDeviceInstance (InputDevice &, EditPlaybackContext &)
 
 ~InputDeviceInstance () override
 
InputDevicegetInputDevice () noexcept
 
juce::Array< AudioTrack * > getTargetTracks () const
 
juce::Array< int > getTargetIndexes () const
 
bool isOnTargetTrack (const Track &)
 
bool isOnTargetTrack (const Track &, int idx)
 
void setTargetTrack (AudioTrack &, int index, bool moveToTrack, juce::UndoManager *)
 
void removeTargetTrack (AudioTrack &, juce::UndoManager *)
 
void removeTargetTrack (AudioTrack &, int index, juce::UndoManager *)
 
void removeTargetTrack (EditItemID, int index, juce::UndoManager *)
 
void clearFromTracks (juce::UndoManager *)
 
bool isAttachedToTrack () const
 
virtual bool isLivePlayEnabled (const Track &t) const
 
virtual bool isRecordingActive () const
 
virtual bool isRecordingActive (const Track &) const
 
bool isRecordingEnabled (const Track &) const
 
void setRecordingEnabled (const Track &, bool b)
 
virtual bool shouldTrackContentsBeMuted ()
 should return true if this input is currently actively recording into a track and it wants the existing track contents to be muted. More...
 
virtual juce::String prepareToRecord (RecordingParameters)=0
 
virtual bool startRecording ()=0
 
virtual bool isRecording ()=0
 
virtual void stop ()=0
 
virtual void recordWasCancelled ()=0
 
virtual juce::File getRecordingFile () const
 
virtual void prepareAndPunchRecord ()
 
virtual TimePosition getPunchInTime ()=0
 
virtual Clip::Array stopRecording ()=0
 
virtual Clip::Array applyLastRecordingToEdit (TimeRange recordedRange, bool isLooping, TimeRange loopRange, bool discardRecordings, SelectionManager *)=0
 
virtual juce::Array< Clip * > applyRetrospectiveRecord (SelectionManager *)=0
 
InputDeviceDestinationgetDestination (const Track &track, int index)
 
virtual void addConsumer (Consumer *)=0
 Base classes should override this to add any Consumers internally. More...
 
virtual void removeConsumer (Consumer *)=0
 Base classes should override this to remove the Consumer internally. More...
 

Public Attributes

juce::ValueTree state
 
InputDeviceowner
 
EditPlaybackContextcontext
 
Editedit
 
InputDeviceDestinationList destTracks {*this, state}
 

Protected Member Functions

void valueTreePropertyChanged (juce::ValueTree &, const juce::Identifier &) override
 
void valueTreeChildAdded (juce::ValueTree &, juce::ValueTree &) override
 
void valueTreeChildRemoved (juce::ValueTree &, juce::ValueTree &, int) override
 
void valueTreeChildOrderChanged (juce::ValueTree &, int, int) override
 
void valueTreeParentChanged (juce::ValueTree &) override
 

Protected Attributes

juce::Array< AudioTrack * > activeTracks
 

Constructor & Destructor Documentation

◆ InputDeviceInstance()

tracktion::engine::InputDeviceInstance::InputDeviceInstance ( InputDevice ,
EditPlaybackContext  
)

◆ ~InputDeviceInstance()

tracktion::engine::InputDeviceInstance::~InputDeviceInstance ( )
override

Member Function Documentation

◆ getInputDevice()

InputDevice& tracktion::engine::InputDeviceInstance::getInputDevice ( )
noexcept

◆ getTargetTracks()

juce::Array<AudioTrack*> tracktion::engine::InputDeviceInstance::getTargetTracks ( ) const

◆ getTargetIndexes()

juce::Array<int> tracktion::engine::InputDeviceInstance::getTargetIndexes ( ) const

◆ isOnTargetTrack() [1/2]

bool tracktion::engine::InputDeviceInstance::isOnTargetTrack ( const Track )

◆ isOnTargetTrack() [2/2]

bool tracktion::engine::InputDeviceInstance::isOnTargetTrack ( const Track ,
int  idx 
)

◆ setTargetTrack()

void tracktion::engine::InputDeviceInstance::setTargetTrack ( AudioTrack ,
int  index,
bool  moveToTrack,
juce::UndoManager *   
)

◆ removeTargetTrack() [1/3]

void tracktion::engine::InputDeviceInstance::removeTargetTrack ( AudioTrack ,
juce::UndoManager *   
)

◆ removeTargetTrack() [2/3]

void tracktion::engine::InputDeviceInstance::removeTargetTrack ( AudioTrack ,
int  index,
juce::UndoManager *   
)

◆ removeTargetTrack() [3/3]

void tracktion::engine::InputDeviceInstance::removeTargetTrack ( EditItemID  ,
int  index,
juce::UndoManager *   
)

◆ clearFromTracks()

void tracktion::engine::InputDeviceInstance::clearFromTracks ( juce::UndoManager *  )

◆ isAttachedToTrack()

bool tracktion::engine::InputDeviceInstance::isAttachedToTrack ( ) const

◆ isLivePlayEnabled()

virtual bool tracktion::engine::InputDeviceInstance::isLivePlayEnabled ( const Track t) const
virtual

◆ isRecordingActive() [1/2]

virtual bool tracktion::engine::InputDeviceInstance::isRecordingActive ( ) const
virtual

◆ isRecordingActive() [2/2]

virtual bool tracktion::engine::InputDeviceInstance::isRecordingActive ( const Track ) const
virtual

◆ isRecordingEnabled()

bool tracktion::engine::InputDeviceInstance::isRecordingEnabled ( const Track ) const

◆ setRecordingEnabled()

void tracktion::engine::InputDeviceInstance::setRecordingEnabled ( const Track ,
bool  b 
)

◆ shouldTrackContentsBeMuted()

virtual bool tracktion::engine::InputDeviceInstance::shouldTrackContentsBeMuted ( )
virtual

should return true if this input is currently actively recording into a track and it wants the existing track contents to be muted.

◆ prepareToRecord()

virtual juce::String tracktion::engine::InputDeviceInstance::prepareToRecord ( RecordingParameters  )
pure virtual

◆ startRecording()

virtual bool tracktion::engine::InputDeviceInstance::startRecording ( )
pure virtual

◆ isRecording()

virtual bool tracktion::engine::InputDeviceInstance::isRecording ( )
pure virtual

◆ stop()

virtual void tracktion::engine::InputDeviceInstance::stop ( )
pure virtual

◆ recordWasCancelled()

virtual void tracktion::engine::InputDeviceInstance::recordWasCancelled ( )
pure virtual

◆ getRecordingFile()

virtual juce::File tracktion::engine::InputDeviceInstance::getRecordingFile ( ) const
virtual

◆ prepareAndPunchRecord()

virtual void tracktion::engine::InputDeviceInstance::prepareAndPunchRecord ( )
virtual

◆ getPunchInTime()

virtual TimePosition tracktion::engine::InputDeviceInstance::getPunchInTime ( )
pure virtual

◆ stopRecording()

virtual Clip::Array tracktion::engine::InputDeviceInstance::stopRecording ( )
pure virtual

◆ applyLastRecordingToEdit()

virtual Clip::Array tracktion::engine::InputDeviceInstance::applyLastRecordingToEdit ( TimeRange  recordedRange,
bool  isLooping,
TimeRange  loopRange,
bool  discardRecordings,
SelectionManager  
)
pure virtual

◆ applyRetrospectiveRecord()

virtual juce::Array<Clip*> tracktion::engine::InputDeviceInstance::applyRetrospectiveRecord ( SelectionManager )
pure virtual

◆ getDestination()

InputDeviceDestination* tracktion::engine::InputDeviceInstance::getDestination ( const Track track,
int  index 
)

◆ addConsumer()

virtual void tracktion::engine::InputDeviceInstance::addConsumer ( Consumer )
pure virtual

Base classes should override this to add any Consumers internally.

◆ removeConsumer()

virtual void tracktion::engine::InputDeviceInstance::removeConsumer ( Consumer )
pure virtual

Base classes should override this to remove the Consumer internally.

◆ valueTreePropertyChanged()

void tracktion::engine::InputDeviceInstance::valueTreePropertyChanged ( juce::ValueTree &  ,
const juce::Identifier &   
)
overrideprotected

◆ valueTreeChildAdded()

void tracktion::engine::InputDeviceInstance::valueTreeChildAdded ( juce::ValueTree &  ,
juce::ValueTree &   
)
overrideprotected

◆ valueTreeChildRemoved()

void tracktion::engine::InputDeviceInstance::valueTreeChildRemoved ( juce::ValueTree &  ,
juce::ValueTree &  ,
int   
)
overrideprotected

◆ valueTreeChildOrderChanged()

void tracktion::engine::InputDeviceInstance::valueTreeChildOrderChanged ( juce::ValueTree &  ,
int  ,
int   
)
overrideprotected

◆ valueTreeParentChanged()

void tracktion::engine::InputDeviceInstance::valueTreeParentChanged ( juce::ValueTree &  )
overrideprotected

Member Data Documentation

◆ state

juce::ValueTree tracktion::engine::InputDeviceInstance::state

◆ owner

InputDevice& tracktion::engine::InputDeviceInstance::owner

Referenced by getInputDevice().

◆ context

EditPlaybackContext& tracktion::engine::InputDeviceInstance::context

◆ edit

Edit& tracktion::engine::InputDeviceInstance::edit

◆ destTracks

InputDeviceDestinationList tracktion::engine::InputDeviceInstance::destTracks {*this, state}

◆ activeTracks

juce::Array<AudioTrack*> tracktion::engine::InputDeviceInstance::activeTracks
protected

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