Audacity 3.2.0
|
Abstract base class for an object holding data associated with points on a time axis. More...
#include <Track.h>
Classes | |
struct | DuplicateOptions |
Choices when duplicating a track. More... | |
struct | ProtectedCreationArg |
Empty argument passed to some public constructors. More... | |
struct | TypeInfo |
struct | TypeNames |
Names of a track type for various purposes. More... | |
Public Types | |
using | AttachedObjects = ::AttachedTrackObjects |
Alias for my base type. More... | |
using | Holder = std::shared_ptr< Track > |
Public Types inherited from ClientData::Site< Host, ClientData, ObjectCopyingPolicy, Pointer, ObjectLockingPolicy, RegistryLockingPolicy > | |
using | DataType = ClientData |
using | DataPointer = Pointer< ClientData > |
using | DataFactory = std::function< DataPointer(Host &) > |
Type of function from which RegisteredFactory is constructed; it builds attachments. More... | |
Public Types inherited from ChannelGroup | |
enum class | LinkType : int { None = 0 , Group = 2 , Aligned } |
For two tracks describes the type of the linkage. More... | |
using | Attachments = ChannelGroupAttachments |
using | Interval = WideChannelGroupInterval |
Public Member Functions | |
TrackId | GetId () const |
template<typename Subclass = Track> | |
std::shared_ptr< Subclass > | SharedPointer () |
template<typename Subclass = const Track> | |
auto | SharedPointer () const -> std::enable_if_t< std::is_const_v< Subclass >, std::shared_ptr< Subclass > > |
virtual const TypeInfo & | GetTypeInfo () const =0 |
virtual const TypeNames & | GetTypeNames () const |
virtual bool | SupportsBasicEditing () const |
Whether this track type implements cut-copy-paste; by default, true. More... | |
virtual Holder | PasteInto (AudacityProject &project, TrackList &list) const =0 |
virtual bool | LinkConsistencyFix (bool doFix=true) |
Check consistency of channel groups, and maybe fix it. More... | |
bool | LinkConsistencyCheck () |
Do the non-mutating part of consistency fix only and return status. More... | |
bool | HasOwner () const |
std::shared_ptr< TrackList > | GetOwner () const |
LinkType | GetLinkType () const noexcept |
Track () | |
Track (const Track &orig, ProtectedCreationArg &&) | |
Track & | operator= (const Track &orig)=delete |
virtual | ~Track () |
void | Init (const Track &orig) |
virtual Holder | Duplicate (DuplicateOptions={}) const |
public nonvirtual duplication function that invokes Clone() More... | |
void | ReparentAllAttachments () |
const wxString & | GetName () const |
Name is always the same for all channels of a group. More... | |
void | SetName (const wxString &n) |
bool | GetSelected () const |
Selectedness is always the same for all channels of a group. More... | |
virtual void | SetSelected (bool s) |
virtual Holder | Cut (double t0, double t1)=0 |
Create tracks and modify this track. More... | |
virtual Holder | Copy (double t0, double t1, bool forClipboard=true) const =0 |
Create new tracks and don't modify this track. More... | |
virtual void | Clear (double t0, double t1)=0 |
virtual void | Paste (double t, const Track &src)=0 |
Weak precondition allows overrides to replicate one channel into many. More... | |
virtual void | SyncLockAdjust (double oldT1, double newT1) |
virtual void | Silence (double t0, double t1, ProgressReporter reportProgress={})=0 |
virtual void | InsertSilence (double t, double len)=0 |
bool | SameKindAs (const Track &track) const |
template<typename R = void, typename ... Functions> | |
R | TypeSwitch (const Functions &...functions) |
template<typename R = void, typename ... Functions> | |
R | TypeSwitch (const Functions &...functions) const |
virtual void | WriteXML (XMLWriter &xmlFile) const =0 |
virtual std::optional< TranslatableString > | GetErrorOpening () const |
void | Notify (bool allChannels, int code=-1) |
bool | Any () const |
bool | IsSelected () const |
bool | IsLeader () const |
void | AdjustPositions () |
void | WriteCommonXMLAttributes (XMLWriter &xmlFile, bool includeNameAndSelected=true) const |
bool | HandleCommonXMLAttribute (const std::string_view &attr, const XMLAttributeValueView &valueView) |
Public Member Functions inherited from XMLTagHandler | |
XMLTagHandler () | |
virtual | ~XMLTagHandler () |
virtual bool | HandleXMLTag (const std::string_view &tag, const AttributesList &attrs)=0 |
virtual void | HandleXMLEndTag (const std::string_view &WXUNUSED(tag)) |
virtual void | HandleXMLContent (const std::string_view &WXUNUSED(content)) |
virtual XMLTagHandler * | HandleXMLChild (const std::string_view &tag)=0 |
void | ReadXMLEndTag (const char *tag) |
void | ReadXMLContent (const char *s, int len) |
XMLTagHandler * | ReadXMLChild (const char *tag) |
Public Member Functions inherited from ClientData::Site< Host, ClientData, ObjectCopyingPolicy, Pointer, ObjectLockingPolicy, RegistryLockingPolicy > | |
~Site () | |
Site () | |
Site (const Site &other) | |
Site & | operator= (const Site &other) |
Site (Site &&other) | |
Site & | operator= (Site &&other) |
size_t | size () const |
How many attachment pointers are in the Site. More... | |
template<typename Subclass = ClientData> | |
Subclass & | Get (const RegisteredFactory &key) |
Get reference to an attachment, creating on demand if not present, down-cast it to Subclass. More... | |
template<typename Subclass = const ClientData> | |
auto | Get (const RegisteredFactory &key) const -> std::enable_if_t< std::is_const< Subclass >::value, Subclass & > |
Get reference to an attachment, creating on demand if not present, down-cast it to Subclass. More... | |
template<typename Subclass = ClientData> | |
Subclass * | Find (const RegisteredFactory &key) |
Get a (bare) pointer to an attachment, or null, down-cast it to Subclass *; will not create on demand. More... | |
template<typename Subclass = const ClientData> | |
auto | Find (const RegisteredFactory &key) const -> std::enable_if_t< std::is_const< Subclass >::value, Subclass * > |
Get a (bare) pointer to an attachment, or null, down-cast it to Subclass *; will not create on demand. More... | |
template<typename ReplacementPointer > | |
void | Assign (const RegisteredFactory &key, ReplacementPointer &&replacement) |
Reassign Site's pointer to ClientData. More... | |
Public Member Functions inherited from ChannelGroup | |
virtual | ~ChannelGroup () |
double | GetStartTime () const |
Get the minimum of Start() values of intervals, or 0 when none. More... | |
double | GetEndTime () const |
Get the maximum of End() values of intervals, or 0 when none. More... | |
void | ShiftBy (double t) |
Change start time by given duration. More... | |
virtual void | ShiftBy (double t0, double delta)=0 |
Shift all intervals that starts after t0 by delta seconds. More... | |
virtual void | MoveTo (double o)=0 |
Change start time to given time point. More... | |
virtual size_t | NChannels () const =0 |
Report the number of channels. More... | |
template<typename ChannelType = Channel> | |
std::shared_ptr< ChannelType > | GetChannel (size_t iChannel) |
Retrieve a channel, cast to the given type. More... | |
template<typename ChannelType = const Channel> | |
auto | GetChannel (size_t iChannel) const -> std::enable_if_t< std::is_const_v< ChannelType >, std::shared_ptr< ChannelType > > |
template<typename ChannelType = Channel> | |
IteratorRange< ChannelIterator< ChannelType > > | Channels () |
Get range of channels with mutative access. More... | |
template<typename ChannelType = const Channel> | |
auto | Channels () const -> std::enable_if_t< std::is_const_v< ChannelType >, IteratorRange< ChannelIterator< ChannelType > > > |
Get range of channels with read-only access. More... | |
std::shared_ptr< Channel > | NthChannel (size_t nChannel) |
std::shared_ptr< const Channel > | NthChannel (size_t nChannel) const |
virtual size_t | NIntervals () const =0 |
Report the number of intervals. More... | |
template<typename IntervalType = Interval> | |
std::shared_ptr< IntervalType > | GetInterval (size_t iInterval) |
Retrieve an interval, cast to the given type. More... | |
template<typename IntervalType = const Interval> | |
auto | GetInterval (size_t iInterval) const -> std::enable_if_t< std::is_const_v< IntervalType >, std::shared_ptr< IntervalType > > |
template<typename IntervalType = Interval> | |
IteratorRange< IntervalIterator< IntervalType > > | Intervals () |
Get range of intervals with mutative access. More... | |
template<typename IntervalType = const Interval> | |
auto | Intervals () const -> std::enable_if_t< std::is_const_v< IntervalType >, IteratorRange< IntervalIterator< IntervalType > > > |
Get range of intervals with read-only access. More... | |
Static Public Member Functions | |
template<typename Subclass = Track> | |
static std::shared_ptr< Subclass > | SharedPointer (Track *pTrack) |
template<typename Subclass = const Track> | |
static std::shared_ptr< Subclass > | SharedPointer (const Track *pTrack) |
static const TypeInfo & | ClassTypeInfo () |
static void | CopyAttachments (Track &dst, const Track &src, bool deep) |
Copy (deep) or just share (!deep) AttachedTrackObjects. More... | |
Static Public Member Functions inherited from ClientData::Site< Host, ClientData, ObjectCopyingPolicy, Pointer, ObjectLockingPolicy, RegistryLockingPolicy > | |
static size_t | numFactories () |
How many static factories have been registered with this specialization of Site. More... | |
Protected Member Functions | |
void | SetLinkType (LinkType linkType, bool completeList=true) |
Protected Member Functions inherited from ClientData::Site< Host, ClientData, ObjectCopyingPolicy, Pointer, ObjectLockingPolicy, RegistryLockingPolicy > | |
template<typename Function > | |
void | ForEach (const Function &function) |
Invoke function on each ClientData object that has been created in this . More... | |
template<typename Function > | |
void | ForEach (const Function &function) const |
Invoke function on each ClientData object that has been created in this . More... | |
template<typename Function > | |
void | ForCorresponding (Site &other, const Function &function, bool create=true) |
template<typename Function > | |
ClientData * | FindIf (const Function &function) |
Return pointer to first attachment in this that is not null and satisfies a predicate, or nullptr. More... | |
template<typename Function > | |
const ClientData * | FindIf (const Function &function) const |
Return pointer to first attachment in this that is not null and satisfies a predicate, or nullptr. More... | |
template<typename Function > | |
void | EraseIf (const Function &function) |
Erase attached objects satisfying a predicate. More... | |
void | BuildAll () |
For each RegisteredFactory, if the corresponding attachment is absent in this , build and store it. More... | |
Protected Member Functions inherited from ChannelGroup | |
virtual std::shared_ptr< Channel > | DoGetChannel (size_t iChannel)=0 |
virtual std::shared_ptr< Interval > | DoGetInterval (size_t iInterval)=0 |
Retrieve an interval. More... | |
Protected Attributes | |
std::weak_ptr< TrackList > | mList |
TrackNodePointer | mNode {} |
Holds iterator to self, so that TrackList::Find can be constant-time. More... | |
Private Member Functions | |
void | SetId (TrackId id) |
void | DoSetLinkType (LinkType linkType, bool completeList=true) |
Track * | GetLinkedTrack () const |
bool | HasLinkedTrack () const noexcept |
During file loading only, true for leaders of multichannel groups. More... | |
TrackNodePointer | GetNode () const |
Retrieve mNode with debug checks. More... | |
void | SetOwner (const std::weak_ptr< TrackList > &list, TrackNodePointer node) |
Update mNode when Track is added to TrackList, or removed from it. More... | |
virtual Holder | Clone (bool backup) const =0 |
void | CopyGroupProperties (const Track &other) |
Private Attributes | |
TrackId | mId |
Identifies the track only in-session, not persistently. More... | |
wxString | mName |
LinkType | mLinkType { LinkType::None } |
bool | mSelected { false } |
Friends | |
class | TrackList |
template<typename T > | |
std::enable_if_t< std::is_pointer_v< T >, T > | track_cast (Track *track) |
Encapsulate the checked down-casting of track pointers. More... | |
template<typename T > | |
std::enable_if_t< std::is_pointer_v< T > &&std::is_const_v< std::remove_pointer_t< T > >, T > | track_cast (const Track *track) |
Encapsulate the checked down-casting of track pointers. More... | |
Abstract base class for an object holding data associated with points on a time axis.
Fundamental data object of Audacity, displayed in the TrackPanel. Classes derived form it include the WaveTrack, NoteTrack, LabelTrack and TimeTrack.
using Track::Holder = std::shared_ptr<Track> |
Track::Track | ( | const Track & | orig, |
ProtectedCreationArg && | |||
) |
void Track::AdjustPositions | ( | ) |
Definition at line 844 of file Track.cpp.
bool Track::Any | ( | ) | const |
Definition at line 255 of file Track.cpp.
Referenced by LoudnessBase::AllocBuffers(), TrackList::Channels_(), ProjectAudioManager::DoRecord(), TrackList::EmptyRange(), ExportUtils::FindExportWaveTracks(), MakeTransportTracks(), anonymous_namespace{LabelMenus.cpp}::OnPasteNewLabel(), and TrackList::Size().
|
static |
Definition at line 790 of file Track.cpp.
References XO().
Referenced by AudioTrack::ClassTypeInfo(), and typeInfo().
|
pure virtual |
May assume precondition: t0 <= t1
Implemented in LabelTrack, NoteTrack, TimeTrack, and WaveTrack.
Referenced by anonymous_namespace{LabelMenus.cpp}::OnDeleteLabels(), and SyncLockAdjust().
|
privatepure virtual |
Subclass responsibility implements only a part of Duplicate(), copying the track data proper (not associated data such as for groups and views) including TrackId
backup | whether the duplication is for backup purposes while opening a project, instead of other editing operations |
this
Implemented in LabelTrack, NoteTrack, TimeTrack, and WaveTrack.
|
pure virtual |
Create new tracks and don't modify this track.
Implemented in TimeTrack, LabelTrack, NoteTrack, and WaveTrack.
Copy (deep) or just share (!deep) AttachedTrackObjects.
Definition at line 94 of file Track.cpp.
Referenced by WaveTrack::EmptyCopy().
|
private |
|
pure virtual |
Create tracks and modify this track.
Implemented in LabelTrack, NoteTrack, TimeTrack, and WaveTrack.
Referenced by SyncLockAdjust().
|
private |
completeList | only influences debug build consistency checking |
Definition at line 151 of file Track.cpp.
References GetLinkedTrack(), GetLinkType(), HasLinkedTrack(), LinkConsistencyCheck(), mLinkType, and ChannelGroup::None.
Referenced by SetLinkType().
|
virtual |
public nonvirtual duplication function that invokes Clone()
Definition at line 109 of file Track.cpp.
Referenced by ProjectFileManager::ReadProjectFile(), and PendingTracks::RegisterPendingChangedTrack().
|
virtual |
|
inline |
Definition at line 136 of file Track.h.
Referenced by PendingTracks::DoSubstituteOriginalChannel(), and PendingTracks::DoSubstitutePendingChangedChannel().
|
private |
Definition at line 198 of file Track.cpp.
References GetOwner(), HasLinkedTrack(), and mNode.
Referenced by DoSetLinkType(), TrackList::GetPrev(), IsLeader(), and LinkConsistencyFix().
|
noexcept |
Definition at line 853 of file Track.cpp.
References mLinkType.
Referenced by DoSetLinkType(), and WaveTrack::LinkConsistencyFix().
const wxString & Track::GetName | ( | ) | const |
Name is always the same for all channels of a group.
Definition at line 64 of file Track.cpp.
References mName.
Referenced by ProjectFileManager::AddImportedTracks(), LabelDialog::AddLabels(), CompareAudioCommand::Apply(), CommonTrackInfo::CloseTitleDrawFunction(), anonymous_namespace{TrackMenus.cpp}::DoMixAndRender(), TrackUtilities::DoMoveTrack(), ProjectAudioManager::DoRecord(), TrackUtilities::DoRemoveTrack(), anonymous_namespace{TrackMenus.cpp}::DoSortTracks(), MixerBoard::GetMusicalInstrumentBitmap(), TimeTrack::Init(), WaveTrack::LinkConsistencyFix(), LinkConsistencyFix(), WaveTrack::MakeNewClipName(), WaveTrackMenuTable::OnSplitStereo(), WaveTrackMenuTable::OnSplitStereoMono(), WaveTrackMenuTable::OnSwapChannels(), FindClippingBase::Process(), RateMenuTable::SetRate(), anonymous_namespace{RealtimeEffectPanel.cpp}::UpdateRealtimeEffectUIData(), and WriteCommonXMLAttributes().
|
private |
Retrieve mNode with debug checks.
Definition at line 122 of file Track.cpp.
References mNode.
Referenced by TrackList::GetNext(), TrackList::GetPrev(), TrackList::MoveDown(), TrackList::MoveUp(), and TrackList::ReplaceOne().
|
inline |
Definition at line 230 of file Track.h.
Referenced by TrackShifter::CommonMayMigrateTo(), TimeTrackView::Draw(), AdjustClipBorder::FindSnapPoints(), anonymous_namespace{SyncLock.cpp}::FindSyncLockGroup(), GetLinkedTrack(), anonymous_namespace{TrackArt.cpp}::GetProject(), anonymous_namespace{TimeTrack.cpp}::GetRate(), SyncLock::Group(), SyncLock::IsSyncLockSelected(), TrackList::ReplaceOne(), and WaveTrack::ZipClips().
bool Track::GetSelected | ( | ) | const |
Selectedness is always the same for all channels of a group.
Definition at line 78 of file Track.cpp.
References mSelected.
Referenced by anonymous_namespace{SpectrumView.cpp}::DrawClipSpectrum(), CommonTrackInfo::DrawCloseButton(), anonymous_namespace{NoteTrackView.cpp}::DrawNoteTrack(), EffectOutputTracks::EffectOutputTracks(), anonymous_namespace{PlayableTrackControls.cpp}::EffectsDrawFunction(), anonymous_namespace{ClipMenus.cpp}::FindClipBoundaries(), anonymous_namespace{ClipMenus.cpp}::FindClips(), SelectionState::HandleListSelection(), IsSelected(), SyncLock::IsSyncLockSelected(), SelectHandle::MoveSnappingFreqSelection(), anonymous_namespace{PlayableTrackControls.cpp}::MuteOrSoloDrawFunction(), NavigationActions::Handler::OnToggle(), RepeatBase::Process(), PerTrackEffect::ProcessPass(), LabelTrack::SetSelected(), and WriteCommonXMLAttributes().
|
pure virtual |
Implemented in LabelTrack, NoteTrack, SampleTrack, WritableSampleTrack, TimeTrack, and WaveTrack.
Referenced by SameKindAs().
|
inlinevirtual |
bool Track::HandleCommonXMLAttribute | ( | const std::string_view & | attr, |
const XMLAttributeValueView & | valueView | ||
) |
Definition at line 819 of file Track.cpp.
References ClientData::Site< Host, ClientData, ObjectCopyingPolicy, Pointer, ObjectLockingPolicy, RegistryLockingPolicy >::ForEach(), SetName(), SetSelected(), XMLAttributeValueView::ToWString(), and XMLAttributeValueView::TryGet().
Referenced by LabelTrack::HandleXMLTag(), NoteTrack::HandleXMLTag(), TimeTrack::HandleXMLTag(), and WaveTrack::HandleXMLTag().
|
privatenoexcept |
During file loading only, true for leaders of multichannel groups.
Definition at line 224 of file Track.cpp.
References mLinkType, and ChannelGroup::None.
Referenced by DoSetLinkType(), GetLinkedTrack(), TrackList::GetNext(), TrackList::GetPrev(), IsLeader(), and LinkConsistencyFix().
|
inline |
void Track::Init | ( | const Track & | orig | ) |
Definition at line 47 of file Track.cpp.
References CopyGroupProperties(), mId, and mLinkType.
Referenced by TimeTrack::Init(), and WaveTrack::Init().
|
pure virtual |
May assume precondition: t0 <= t1
Implemented in LabelTrack, NoteTrack, TimeTrack, and WaveTrack.
bool Track::IsLeader | ( | ) | const |
Definition at line 261 of file Track.cpp.
References GetLinkedTrack(), and HasLinkedTrack().
Referenced by TrackList::Any(), TrackList::Find(), WaveTrack::LinkConsistencyFix(), and LinkConsistencyFix().
bool Track::IsSelected | ( | ) | const |
Definition at line 258 of file Track.cpp.
References GetSelected().
Referenced by ProjectAudioManager::ChooseExistingRecordingTracks(), anonymous_namespace{TrackMenus.cpp}::DoPanTracks(), ExportUtils::FindExportWaveTracks(), SyncLock::IsSelectedOrSyncLockSelected(), SyncLock::IsSyncLockSelected(), MakeTransportTracks(), SelectActions::Handler::OnSelectSyncLockSel(), TruncSilenceBase::ProcessIndependently(), and TrackList::Selected().
|
inline |
Do the non-mutating part of consistency fix only and return status.
Definition at line 225 of file Track.h.
Referenced by DoSetLinkType().
|
virtual |
Check consistency of channel groups, and maybe fix it.
doFix | whether to make any changes to correct inconsistencies |
!doFix || IsLeader()
Reimplemented in WaveTrack.
Definition at line 266 of file Track.cpp.
References GetLinkedTrack(), GetName(), HasLinkedTrack(), IsLeader(), ChannelGroup::None, and SetLinkType().
Referenced by WaveTrack::LinkConsistencyFix().
void Track::Notify | ( | bool | allChannels, |
int | code = -1 |
||
) |
Definition at line 234 of file Track.cpp.
References mList, and SharedPointer().
Referenced by PlayableTrack::SetMute(), SetName(), WaveTrack::SetPan(), PlayableTrack::SetSolo(), NoteTrack::SetVelocity(), and WaveTrack::SetVolume().
|
pure virtual |
Weak precondition allows overrides to replicate one channel into many.
SameKindAs(src)
src.NChannels() == 1 || src.NChannels() == NChannels()
Implemented in LabelTrack, NoteTrack, TimeTrack, WaveTrack, and WaveTrack.
Referenced by SyncLockAdjust().
|
pure virtual |
Find or create the destination track for a paste, maybe in a different project
list | to which any newly created tracks are added; but left unchanged if an existing track is found in the project instead |
Implemented in LabelTrack, NoteTrack, TimeTrack, and WaveTrack.
Referenced by anonymous_namespace{EditMenus.cpp}::DoPasteNothingSelected().
void Track::ReparentAllAttachments | ( | ) |
Definition at line 57 of file Track.cpp.
References ClientData::Site< Host, ClientData, ObjectCopyingPolicy, Pointer, ObjectLockingPolicy, RegistryLockingPolicy >::ForEach(), and SharedPointer().
|
inline |
Definition at line 373 of file Track.h.
References GetTypeInfo().
Referenced by TrackShifter::CommonMayMigrateTo(), anonymous_namespace{TimeShiftHandle.cpp}::FindCorrespondence(), and anonymous_namespace{EditMenus.cpp}::FitsInto().
|
inlineprivate |
Definition at line 138 of file Track.h.
References id.
Referenced by TrackList::DoAddToHead().
|
protected |
completeList | only influences debug build consistency checking |
Definition at line 136 of file Track.cpp.
References DoSetLinkType(), mList, and mNode.
Referenced by WaveTrack::HandleXMLTag(), WaveTrack::LinkConsistencyFix(), LinkConsistencyFix(), and WaveTrack::ZipClips().
void Track::SetName | ( | const wxString & | n | ) |
Definition at line 69 of file Track.cpp.
References mName, name, and Notify().
Referenced by SetTrackStatusCommand::ApplyInner(), TimeTrack::CleanState(), HandleCommonXMLAttribute(), anonymous_namespace{ImportMIDI.cpp}::ImportMIDI(), TimeTrack::Init(), ModifiedAnalysisTrack::ModifiedAnalysisTrack(), and NoteTrack::NoteTrack().
|
private |
Update mNode when Track is added to TrackList, or removed from it.
Definition at line 127 of file Track.cpp.
Referenced by TrackList::DoAddToHead(), TrackList::Permute(), and TrackList::ReplaceOne().
|
virtual |
Reimplemented in LabelTrack.
Definition at line 83 of file Track.cpp.
References mList, and mSelected.
Referenced by SetTrackStatusCommand::ApplyInner(), anonymous_namespace{EditMenus.cpp}::DoPasteNothingSelected(), HandleCommonXMLAttribute(), anonymous_namespace{LabelMenus.cpp}::OnPasteNewLabel(), SelectionState::SelectTrack(), and LabelTrack::SetSelected().
|
inline |
Definition at line 146 of file Track.h.
Referenced by SelectionState::ChangeSelectionOnShiftClick(), DEFINE_ATTACHED_VIRTUAL_OVERRIDE(), CommonChannelCell::DoFindTrack(), WaveChannelView::DoGetAffordance(), TimeShiftHandle::DoSlideVertical(), TimeShiftHandle::Drag(), TrackFocus::GetFocus(), ClipMoveState::Init(), Notify(), StereoToMono::ProcessOne(), ReparentAllAttachments(), SelectionState::SelectTrack(), TrackFocus::Set(), TrackFocus::SetFocus(), SharedPointer(), and RealtimeEffectPanel::ShowPanel().
|
inline |
|
inlinestatic |
Definition at line 170 of file Track.h.
References SharedPointer().
|
inlinestatic |
Definition at line 166 of file Track.h.
References SharedPointer().
|
pure virtual |
Implemented in WaveTrack, LabelTrack, NoteTrack, and TimeTrack.
|
virtual |
Whether this track type implements cut-copy-paste; by default, true.
Reimplemented in TimeTrack.
Definition at line 797 of file Track.cpp.
Referenced by SelectActions::Handler::OnCursorTrackEnd(), SelectActions::Handler::OnCursorTrackStart(), anonymous_namespace{EditMenus.cpp}::OnCut(), SelectActions::Handler::OnSelectSyncLockSel(), and anonymous_namespace{EditMenus.cpp}::OnSplitCut().
|
virtual |
This can be used to adjust a sync-lock selected track when the selection is replaced by one of a different length.
Reimplemented in LabelTrack, and WaveTrack.
Definition at line 241 of file Track.cpp.
References Clear(), Cut(), ChannelGroup::GetEndTime(), and Paste().
|
inline |
Do a TypeSwitch on this track, among all subtypes enumerated up to the point of the call
Definition at line 381 of file Track.h.
Referenced by SetEnvelopeCommand::ApplyInner(), AutoDuckBase::Init(), anonymous_namespace{LabelMenus.cpp}::OnCopyLabels(), anonymous_namespace{LabelMenus.cpp}::OnCutLabels(), anonymous_namespace{LabelMenus.cpp}::OnDeleteLabels(), anonymous_namespace{LabelMenus.cpp}::OnDisjoinLabels(), anonymous_namespace{LabelMenus.cpp}::OnJoinLabels(), anonymous_namespace{EditMenus.cpp}::OnPaste(), anonymous_namespace{LabelMenus.cpp}::OnSilenceLabels(), anonymous_namespace{LabelMenus.cpp}::OnSplitCutLabels(), anonymous_namespace{LabelMenus.cpp}::OnSplitDeleteLabels(), anonymous_namespace{LabelMenus.cpp}::OnSplitLabels(), LabelTrack::Paste(), NoteTrack::Paste(), TimeTrack::Paste(), LabelTrack::PasteOver(), and NyquistBase::ProcessOne().
|
inline |
Do a TypeSwitch on this track, among all subtypes enumerated up to the point of the call
Definition at line 392 of file Track.h.
void Track::WriteCommonXMLAttributes | ( | XMLWriter & | xmlFile, |
bool | includeNameAndSelected = true |
||
) | const |
Definition at line 803 of file Track.cpp.
References ClientData::Site< Host, ClientData, ObjectCopyingPolicy, Pointer, ObjectLockingPolicy, RegistryLockingPolicy >::ForEach(), GetName(), GetSelected(), XMLWriter::WriteAttr(), and wxT().
Referenced by LabelTrack::WriteXML(), and TimeTrack::WriteXML().
|
pure virtual |
Implemented in LabelTrack, NoteTrack, TimeTrack, and WaveTrack.
Referenced by ProjectFileIO::WriteXML().
|
friend |
Encapsulate the checked down-casting of track pointers.
Eliminates possibility of error – and not quietly casting away const
Typical usage:
This overload for const pointers can cast only to other const pointer types.
Definition at line 497 of file Track.h.
|
friend |
Encapsulate the checked down-casting of track pointers.
Eliminates possibility of error – and not quietly casting away const
Typical usage:
Definition at line 480 of file Track.h.
|
private |
|
private |
Definition at line 439 of file Track.h.
Referenced by DoSetLinkType(), GetLinkType(), HasLinkedTrack(), and Init().
|
protected |
Back pointer to owning TrackList
Definition at line 127 of file Track.h.
Referenced by AdjustPositions(), Notify(), SetLinkType(), SetOwner(), and SetSelected().
|
private |
Definition at line 437 of file Track.h.
Referenced by CopyGroupProperties(), GetName(), and SetName().
|
protected |
Holds iterator to self, so that TrackList::Find can be constant-time.
Definition at line 129 of file Track.h.
Referenced by AdjustPositions(), GetLinkedTrack(), GetNode(), SetLinkType(), and SetOwner().
|
private |
Definition at line 440 of file Track.h.
Referenced by CopyGroupProperties(), GetSelected(), and SetSelected().