TracktionEngine
|
Base class for things that can be selected, and whose properties can appear in the properties panel. More...
#include <tracktion_Selectable.h>
Classes | |
class | Listener |
Public Types | |
using | WeakRef = juce::WeakReference< Selectable > |
Public Member Functions | |
Selectable () | |
virtual | ~Selectable () |
virtual juce::String | getSelectableDescription ()=0 |
Subclasses must return a description of what they are. | |
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 | initialise () |
static bool | isSelectableValid (const Selectable *) noexcept |
checks whether this object has been deleted. | |
Public Attributes | |
WeakRef::Master | masterReference |
Base class for things that can be selected, and whose properties can appear in the properties panel.
using tracktion::engine::Selectable::WeakRef = juce::WeakReference<Selectable> |
tracktion::engine::Selectable::Selectable | ( | ) |
|
virtual |
|
static |
|
pure virtual |
Subclasses must return a description of what they are.
Implemented in tracktion::engine::ControlSurface, tracktion::engine::SelectedMidiEvents, tracktion::engine::BreakpointOscillatorModifier, tracktion::engine::EnvelopeFollowerModifier, tracktion::engine::LFOModifier, tracktion::engine::MIDITrackerModifier, tracktion::engine::RandomModifier, tracktion::engine::StepModifier, tracktion::engine::AutomatableParameter, tracktion::engine::ArrangerClip, tracktion::engine::ChordClip, tracktion::engine::StepVolumeEffect, tracktion::engine::NormaliseEffect, tracktion::engine::MakeMonoEffect, tracktion::engine::CollectionClip, tracktion::engine::ContainerClip, tracktion::engine::EditClip, tracktion::engine::MarkerClip, tracktion::engine::MidiClip, tracktion::engine::StepClip::Channel, tracktion::engine::StepClip::PatternInstance, tracktion::engine::StepClip, tracktion::engine::WaveAudioClip, tracktion::engine::Edit, tracktion::engine::PitchSetting, tracktion::engine::Scene, tracktion::engine::TempoSequence, tracktion::engine::TempoSetting, tracktion::engine::TimeSigSetting, tracktion::engine::ArrangerTrack, tracktion::engine::AudioTrack, tracktion::engine::AutomationTrack, tracktion::engine::ChordTrack, tracktion::engine::ClipSlot, tracktion::engine::FolderTrack, tracktion::engine::MarkerTrack, tracktion::engine::MasterTrack, tracktion::engine::TempoTrack, tracktion::engine::TrackCompManager::TrackComp, tracktion::engine::InputDevice, tracktion::engine::InputDeviceInstance::Destination, tracktion::engine::OutputDevice, tracktion::engine::VirtualMidiInputDevice, tracktion::engine::WaveInputDevice, tracktion::engine::AirWindowsPlugin, tracktion::engine::ChorusPlugin, tracktion::engine::CompressorPlugin, tracktion::engine::DelayPlugin, tracktion::engine::EqualiserPlugin, tracktion::engine::FourOscPlugin, tracktion::engine::ImpulseResponsePlugin, tracktion::engine::LatencyPlugin, tracktion::engine::LowPassPlugin, tracktion::engine::MidiModifierPlugin, tracktion::engine::MidiPatchBayPlugin, tracktion::engine::PatchBayPlugin, tracktion::engine::PhaserPlugin, tracktion::engine::PitchShiftPlugin, tracktion::engine::ReverbPlugin, tracktion::engine::SamplerPlugin, tracktion::engine::ToneGeneratorPlugin, tracktion::engine::ExternalPlugin, tracktion::engine::AuxReturnPlugin, tracktion::engine::AuxSendPlugin, tracktion::engine::FreezePointPlugin, tracktion::engine::InsertPlugin, tracktion::engine::LevelMeterPlugin, tracktion::engine::RackInstance, tracktion::engine::RackType, tracktion::engine::TextPlugin, tracktion::engine::VCAPlugin, tracktion::engine::VolumeAndPanPlugin, tracktion::engine::Project, and tracktion::engine::ProjectItem.
|
virtual |
Can be overridden to tell this object that it has just been selected or deselected.
Reimplemented in tracktion::engine::SelectedMidiEvents, tracktion::engine::ProjectItem, and tracktion::engine::CurveEditorPoint.
|
virtual |
This should be called to send a change notification to any SelectableListeners that are registered with this object.
Reimplemented in tracktion::engine::AudioClipBase, tracktion::engine::Clip, tracktion::engine::EditClip, and tracktion::engine::Plugin.
|
virtual |
Called just before the selectable is about to be deleted so any subclasses should still be valid at this point.
Reimplemented in tracktion::engine::Modifier, tracktion::engine::ExternalPlugin, and tracktion::engine::Plugin.
void tracktion::engine::Selectable::addListener | ( | SelectableListener * | ) |
void tracktion::engine::Selectable::removeListener | ( | SelectableListener * | ) |
void tracktion::engine::Selectable::addSelectableListener | ( | SelectableListener * | ) |
void tracktion::engine::Selectable::removeSelectableListener | ( | SelectableListener * | ) |
|
staticnoexcept |
checks whether this object has been deleted.
This is pretty reliable, and can be called with a null pointer, but isn't 100% perfect, as it can provide a false-positive when an object is deleted, and another one later created that happens to have the same memory address.
void tracktion::engine::Selectable::cancelAnyPendingUpdates | ( | ) |
If changed() has been called, this will cancel any pending async change notificaions.
void tracktion::engine::Selectable::deselect | ( | ) |
void tracktion::engine::Selectable::propertiesChanged | ( | ) |
void tracktion::engine::Selectable::notifyListenersOfDeletion | ( | ) |
Referenced by tracktion::engine::AirWindowsAutomatableParameter::~AirWindowsAutomatableParameter(), tracktion::engine::InputDeviceInstance::Destination::~Destination(), tracktion::engine::ExternalAutomatableParameter::~ExternalAutomatableParameter(), tracktion::engine::InputDeviceInstance::MidiInputDestination::~MidiInputDestination(), tracktion::engine::InputDeviceInstance::VirtualMidiInputDestination::~VirtualMidiInputDestination(), and tracktion::engine::InputDeviceInstance::WaveInputDestination::~WaveInputDestination().
WeakRef tracktion::engine::Selectable::getWeakRef | ( | ) |
WeakRef::Master tracktion::engine::Selectable::masterReference |