11namespace tracktion {
inline namespace engine
45 bool isTrackDevice()
const;
51 virtual bool isAvailableToEdit()
const {
return isEnabled(); }
53 bool isEnabled()
const;
54 virtual void setEnabled (
bool) = 0;
56 virtual bool isMidi()
const {
return false; }
66 MonitorMode getMonitorMode()
const {
return monitorMode; }
76 virtual void updateRetrospectiveBufferLength (
double length) = 0;
81 virtual void saveProps() = 0;
90 bool retrospectiveRecordLock =
false;
231 std::function<
void (tl::expected<Clip::Array, juce::String>)>) = 0;
265 notifyListenersOfDeletion();
331 return v.hasType (IDs::INPUTDEVICEDESTINATION);
338 case InputDevice::waveDevice: [[ fallthrough ]];
340 case InputDevice::physicalMidiDevice: [[ fallthrough ]];
358 void objectOrderChanged()
override {}
399 mutable AsyncCaller trackDeviceEnabler, recordStatusUpdater;
400 bool wasLivePlayActive =
false;
402 void updateRecordingStatus();
466 errors.
add (res.error());
469 return { std::move (recContexts), std::move (errors) };
T back_inserter(T... args)
void referTo(ValueTree &tree, const Identifier &property, UndoManager *um)
void add(String stringToAdd)
Represents a slot on a track that a Clip can live in to be played as a launched clip.
The Tracktion Edit class!
The Engine is the central class for all tracktion sessions.
Base class for RecordingContexts.
virtual ~RecordingContext()=default
Destructor.
const EditItemID targetID
The ID of the recording target, track or clip.
Monitors the levels of buffers that are passed in, and keeps peak values, overloads,...
Base class for things that can be selected, and whose properties can appear in the properties panel.
Base class for tracks which contain clips and plugins and can be added to Edit[s].
T emplace_back(T... args)
#define JUCE_DECLARE_WEAK_REFERENCEABLE(Class)
bool isAttached(InputDeviceInstance &instance)
Returns true if this input is assigned to a target.
juce::Array< std::pair< AudioTrack *, int > > getTargetTracksAndIndexes(InputDeviceInstance &instance)
Returns the AudioTracks and their indexes this instance is assigned to.
juce::Result clearFromTargets(InputDeviceInstance &instance, juce::UndoManager *um)
Removes this instance from all assigned targets.
bool hasErrors(const InputDeviceInstance::PreparedContext &pc)
Returns true if all the targets were fully prepared.
bool isOnTargetTrack(InputDeviceInstance &instance, const Track &track, int index)
Returns true if this instance is assigned to the given Track at the given index .
InputDeviceInstance::PreparedContext & append(InputDeviceInstance::PreparedContext &dest, InputDeviceInstance::PreparedContext &&src)
Appends a PreparedContent to another.
std::pair< std::vector< std::unique_ptr< InputDeviceInstance::RecordingContext > >, juce::StringArray > extract(InputDeviceInstance::PreparedContext &&pc)
Splits the PreparedContext in to valid RecordingContexts and an array of error messages.
InputDeviceInstance::Destination * getDestination(InputDeviceInstance &instance, const Track &track, int index)
Returns the destination if one has been assigned for the given arguments.
juce::Array< AudioTrack * > getTargetTracks(InputDeviceInstance &instance)
Returns the AudioTracks this instance is assigned to.
Represents a position in real-life time.
Asyncronously call a function.
ID for objects of type EditElement - e.g.