![]() |
Audacity 3.2.0
|
A LabelTrack is a Track that holds labels (LabelStruct). More...
#include <LabelTrack.h>
Classes | |
struct | Interval |
Public Types | |
using | Holder = std::shared_ptr< LabelTrack > |
![]() | |
using | AttachedObjects = ::AttachedTrackObjects |
Alias for my base type. More... | |
using | Holder = std::shared_ptr< Track > |
![]() | |
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... | |
![]() | |
enum class | LinkType : int { None = 0 , Group = 2 , Aligned } |
For two tracks describes the type of the linkage. More... | |
using | Attachments = ClientData::Site< ChannelGroupData, ClientData::Cloneable<>, ClientData::DeepCopying > |
using | Interval = WideChannelGroupInterval |
![]() | |
using | Interval = ChannelInterval |
![]() | |
using | message_type = struct LabelTrackEvent |
using | CallbackReturn = std::conditional_t< true, void, bool > |
using | Callback = std::function< CallbackReturn(const struct LabelTrackEvent &) > |
Type of functions that can be connected to the Publisher. More... | |
Public Member Functions | |
LabelTrack () | |
LabelTrack (const LabelTrack &orig, ProtectedCreationArg &&) | |
virtual | ~LabelTrack () |
void | SetLabel (size_t iLabel, const LabelStruct &newLabel) |
void | MoveTo (double dOffset) override |
Change start time to given time point. More... | |
void | SetSelected (bool s) override |
bool | HandleXMLTag (const std::string_view &tag, const AttributesList &attrs) override |
XMLTagHandler * | HandleXMLChild (const std::string_view &tag) override |
void | WriteXML (XMLWriter &xmlFile) const override |
TrackListHolder | Cut (double t0, double t1) override |
Create tracks and modify this track. More... | |
TrackListHolder | Copy (double t0, double t1, bool forClipboard=true) const override |
Create new tracks and don't modify this track. More... | |
void | Clear (double t0, double t1) override |
void | Paste (double t, const Track &src) override |
Weak precondition allows overrides to replicate one channel into many. More... | |
bool | Repeat (double t0, double t1, int n) |
void | SyncLockAdjust (double oldT1, double newT1) override |
void | Silence (double t0, double t1, ProgressReporter reportProgress={}) override |
void | InsertSilence (double t, double len) override |
void | Import (wxTextFile &f) |
Import labels, handling files with or without end-times. More... | |
void | Export (wxTextFile &f) const |
Export labels including label start and end-times. More... | |
int | GetNumLabels () const |
const LabelStruct * | GetLabel (int index) const |
const LabelArray & | GetLabels () const |
void | OnLabelAdded (const wxString &title, int pos) |
int | AddLabel (const SelectedRegion ®ion, const wxString &title) |
void | DeleteLabel (int index) |
bool | PasteOver (double t, const Track &src) |
void | ShiftLabelsOnInsert (double length, double pt) |
void | ChangeLabelsOnReverse (double b, double e) |
void | ScaleLabels (double b, double e, double change) |
double | AdjustTimeStampOnScale (double t, double b, double e, double change) |
void | WarpLabels (const TimeWarper &warper) |
wxString | GetTextOfLabels (double t0, double t1) const |
int | FindNextLabel (const SelectedRegion ¤tSelection) |
int | FindPrevLabel (const SelectedRegion ¤tSelection) |
const TypeInfo & | GetTypeInfo () const override |
Track::Holder | PasteInto (AudacityProject &project, TrackList &list) const override |
std::shared_ptr< Interval > | MakeInterval (size_t index) |
void | SortLabels () |
size_t | NIntervals () const override |
Report the number of intervals. More... | |
![]() | |
size_t | NChannels () const override |
Report the number of channels. More... | |
std::shared_ptr< Channel > | DoGetChannel (size_t iChannel) override |
Retrieve a channel. More... | |
![]() | |
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 > > |
std::shared_ptr< Track > | SubstitutePendingChangedTrack () |
std::shared_ptr< const Track > | SubstitutePendingChangedTrack () const |
std::shared_ptr< const Track > | SubstituteOriginalTrack () const |
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 |
TrackList * | GetHolder () const |
LinkType | GetLinkType () const noexcept |
ChannelGroupData & | GetGroupData () |
const ChannelGroupData & | GetGroupData () const |
May make group data on demand, but consider that logically const. More... | |
Track () | |
Track (const Track &orig, ProtectedCreationArg &&) | |
Track & | operator= (const Track &orig)=delete |
virtual | ~Track () |
void | Init (const Track &orig) |
virtual TrackListHolder | Duplicate () const |
public nonvirtual duplication function that invokes Clone() More... | |
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) |
void | OnProjectTempoChange (double newTempo) |
method to set project tempo on track More... | |
virtual TrackListHolder | Cut (double t0, double t1)=0 |
Create tracks and modify this track. More... | |
virtual TrackListHolder | 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... | |
void | Paste (double t, const TrackList &src) |
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 override |
bool | IsSelectedLeader () const |
void | AdjustPositions () |
void | WriteCommonXMLAttributes (XMLWriter &xmlFile, bool includeNameAndSelected=true) const |
bool | HandleCommonXMLAttribute (const std::string_view &attr, const XMLAttributeValueView &valueView) |
const std::optional< double > & | GetProjectTempo () const |
![]() | |
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) |
![]() | |
~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... | |
![]() | |
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 | MoveTo (double o)=0 |
Change start time to given time point. More... | |
virtual bool | IsLeader () const =0 |
ChannelGroupData & | GetGroupData () |
Make attachment site on demand as needed. More... | |
const ChannelGroupData & | GetGroupData () const |
ChannelGroupData * | FindGroupData () |
Do not make attachment site on demand if absent. More... | |
const ChannelGroupData * | FindGroupData () const |
Do not make attachment site on demand if absent. More... | |
void | Init (const ChannelGroup &other) |
Copy, including cloning of attached objects. More... | |
void | DestroyGroupData () |
Leave all attachments null. More... | |
std::unique_ptr< ChannelGroupData > | DetachGroupData () |
Move attachments out. More... | |
void | AssignGroupData (std::unique_ptr< ChannelGroupData > pGroupData) |
Replace any previous attachments. 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... | |
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... | |
![]() | |
virtual | ~Channel () |
ChannelGroup & | GetChannelGroup () |
Channel object's lifetime is assumed to be nested in its Track's. More... | |
const ChannelGroup & | GetChannelGroup () const |
Channel object's lifetime is assumed to be nested in its Track's. More... | |
size_t | GetChannelIndex () const |
size_t | ReallyGetChannelIndex () const |
size_t | NIntervals () const |
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... | |
![]() | |
Publisher (ExceptionPolicy *pPolicy=nullptr, Alloc a={}) | |
Constructor supporting type-erased custom allocation/deletion. More... | |
Publisher (Publisher &&)=default | |
Publisher & | operator= (Publisher &&)=default |
Subscription | Subscribe (Callback callback) |
Connect a callback to the Publisher; later-connected are called earlier. More... | |
Subscription | Subscribe (Object &obj, Return(Object::*callback)(Args...)) |
Overload of Subscribe takes an object and pointer-to-member-function. More... | |
Static Public Member Functions | |
static wxString | GetDefaultName () |
static LabelTrack * | New (AudacityProject &project) |
static LabelTrack * | Create (TrackList &trackList, const wxString &name) |
Create a new LabelTrack with specified name and append it to the trackList . More... | |
static LabelTrack * | Create (TrackList &trackList) |
Create a new LabelTrack with unique default name and append it to the trackList . More... | |
static const TypeInfo & | ClassTypeInfo () |
![]() | |
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 size_t | numFactories () |
How many static factories have been registered with this specialization of Site. More... | |
Private Member Functions | |
TrackListHolder | Clone () const override |
void | DoOnProjectTempoChange (const std::optional< double > &oldTempo, double newTempo) override |
std::shared_ptr< WideChannelGroupInterval > | DoGetInterval (size_t iInterval) override |
Retrieve an interval. More... | |
Private Attributes | |
LabelArray | mLabels |
double | mClipLen |
int | miLastLabel |
Additional Inherited Members | |
![]() | |
static constexpr bool | notifies_all |
![]() | |
ChannelGroup & | DoGetChannelGroup () const override |
Subclass must override. More... | |
![]() | |
void | SetLinkType (LinkType linkType, bool completeList=true) |
virtual void | DoOnProjectTempoChange (const std::optional< double > &oldTempo, double newTempo)=0 |
![]() | |
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 > | |
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... | |
void | BuildAll () |
For each RegisteredFactory, if the corresponding attachment is absent in this , build and store it. More... | |
virtual std::shared_ptr< Channel > | DoGetChannel (size_t iChannel)=0 |
Retrieve a channel. More... | |
virtual std::shared_ptr< Interval > | DoGetInterval (size_t iInterval)=0 |
Retrieve an interval. More... | |
![]() | |
virtual ChannelGroup & | DoGetChannelGroup () const =0 |
Subclass must override. More... | |
virtual ChannelGroup & | ReallyDoGetChannelGroup () const |
This is temporary! It defaults to call the above. More... | |
![]() | |
CallbackReturn | Publish (const struct LabelTrackEvent &message) |
Send a message to connected callbacks. More... | |
![]() | |
std::weak_ptr< TrackList > | mList |
TrackNodePointer | mNode {} |
Holds iterator to self, so that TrackList::Find can be constant-time. More... | |
int | mIndex |
0-based position of this track in its TrackList More... | |
A LabelTrack is a Track that holds labels (LabelStruct).
These are used to annotate a waveform. Each label has a start time and an end time. The text of the labels is editable and the positions of the end points are draggable.
Definition at line 84 of file LabelTrack.h.
using LabelTrack::Holder = std::shared_ptr<LabelTrack> |
Definition at line 117 of file LabelTrack.h.
LabelTrack::LabelTrack | ( | ) |
Definition at line 89 of file LabelTrack.cpp.
LabelTrack::LabelTrack | ( | const LabelTrack & | orig, |
ProtectedCreationArg && | a | ||
) |
Definition at line 96 of file LabelTrack.cpp.
References mLabels, and LabelStruct::selectedRegion.
|
virtual |
Definition at line 162 of file LabelTrack.cpp.
int LabelTrack::AddLabel | ( | const SelectedRegion & | region, |
const wxString & | title | ||
) |
Definition at line 971 of file LabelTrack.cpp.
References LabelTrackEvent::Addition, mLabels, Observer::Publisher< struct LabelTrackEvent >::Publish(), SelectedRegion::t0(), and title.
Referenced by VampEffect::AddFeatures(), and EffectFindClipping::ProcessOne().
double LabelTrack::AdjustTimeStampOnScale | ( | double | t, |
double | b, | ||
double | e, | ||
double | change | ||
) |
Definition at line 275 of file LabelTrack.cpp.
Referenced by ScaleLabels().
void LabelTrack::ChangeLabelsOnReverse | ( | double | b, |
double | e | ||
) |
Definition at line 251 of file LabelTrack.cpp.
References mLabels, SortLabels(), and LabelStruct::SURROUNDS_LABEL.
|
static |
Definition at line 118 of file LabelTrack.cpp.
References typeInfo().
|
overridevirtual |
May assume precondition: t0 <= t1
IsLeader()
Implements Track.
Definition at line 188 of file LabelTrack.cpp.
References LabelStruct::BEFORE_LABEL, LabelStruct::BEGINS_IN_LABEL, DeleteLabel(), LabelStruct::ENDS_IN_LABEL, Track::IsLeader(), mLabels, LabelStruct::SURROUNDS_LABEL, and LabelStruct::WITHIN_LABEL.
Referenced by Cut(), and SyncLockAdjust().
|
overrideprivatevirtual |
Subclass responsibility implements only a part of Duplicate(), copying the track data proper (not associated data such as for groups and views)
unstretchInterval | If set, this time interval's stretching must be applied. |
!unstretchInterval.has_value() || unstretchInterval->first < unstretchInterval->second
IsLeader()
NChannels() == result->NChannels()
Implements Track.
Definition at line 345 of file LabelTrack.cpp.
References Track::IsLeader(), and TrackList::Temporary().
|
overridevirtual |
Create new tracks and don't modify this track.
IsLeader
result->NChannels() == NChannels()
Implements Track.
Definition at line 731 of file LabelTrack.cpp.
References LabelStruct::BEGINS_IN_LABEL, LabelStruct::ENDS_IN_LABEL, mLabels, LabelStruct::selectedRegion, LabelStruct::SURROUNDS_LABEL, TrackList::Temporary(), and LabelStruct::WITHIN_LABEL.
Referenced by Cut(), ModifiedAnalysisTrack::ModifiedAnalysisTrack(), and EffectRepeat::Process().
|
static |
Create a new LabelTrack with unique default name and append it to the trackList
.
Definition at line 84 of file LabelTrack.cpp.
References Create(), GetDefaultName(), and TrackList::MakeUniqueTrackName().
|
static |
Create a new LabelTrack with specified name
and append it to the trackList
.
Definition at line 76 of file LabelTrack.cpp.
References TrackList::Add(), and name.
Referenced by AddedAnalysisTrack::AddedAnalysisTrack(), Create(), anonymous_namespace{LabelMenus.cpp}::DoAddLabel(), anonymous_namespace{DropoutDetector.cpp}::DropoutSubscription::DropoutSubscription(), anonymous_namespace{LabelMenus.cpp}::OnNewLabelTrack(), and anonymous_namespace{LabelMenus.cpp}::OnPasteNewLabel().
|
overridevirtual |
Create tracks and modify this track.
IsLeader()
result->NChannels() == NChannels()
Implements Track.
Definition at line 709 of file LabelTrack.cpp.
References Clear(), Copy(), and Track::IsLeader().
void LabelTrack::DeleteLabel | ( | int | index | ) |
Definition at line 990 of file LabelTrack.cpp.
References LabelTrackEvent::Deletion, mLabels, Observer::Publisher< struct LabelTrackEvent >::Publish(), and title.
Referenced by Clear(), and Silence().
|
overrideprivatevirtual |
Retrieve an interval.
!(iInterval < NIntervals()) || result
Implements ChannelGroup.
Definition at line 148 of file LabelTrack.cpp.
References MakeInterval().
|
overrideprivatevirtual |
IsLeader()
Implements Track.
Definition at line 176 of file LabelTrack.cpp.
References Track::IsLeader(), label, and mLabels.
void LabelTrack::Export | ( | wxTextFile & | f | ) | const |
Export labels including label start and end-times.
Definition at line 586 of file LabelTrack.cpp.
References mLabels.
int LabelTrack::FindNextLabel | ( | const SelectedRegion & | currentSelection | ) |
Definition at line 1056 of file LabelTrack.cpp.
References miLastLabel, mLabels, and SelectedRegion::t0().
Referenced by anonymous_namespace{TransportMenus.cpp}::DoMoveToLabel().
int LabelTrack::FindPrevLabel | ( | const SelectedRegion & | currentSelection | ) |
Definition at line 1082 of file LabelTrack.cpp.
References miLastLabel, mLabels, and SelectedRegion::t0().
Referenced by anonymous_namespace{TransportMenus.cpp}::DoMoveToLabel().
|
static |
Definition at line 63 of file LabelTrack.cpp.
References _.
Referenced by Create(), and NyquistEffect::ProcessOne().
const LabelStruct * LabelTrack::GetLabel | ( | int | index | ) | const |
Definition at line 966 of file LabelTrack.cpp.
References mLabels.
Referenced by LabelDialog::AddLabels(), and anonymous_namespace{TransportMenus.cpp}::DoMoveToLabel().
|
inline |
Definition at line 146 of file LabelTrack.h.
Referenced by LabelTrackView::OverATextBox(), LabelTrackView::OverGlyph(), and GetInfoCommand::SendLabels().
int LabelTrack::GetNumLabels | ( | ) | const |
Definition at line 961 of file LabelTrack.cpp.
References mLabels.
Referenced by LabelDialog::AddLabels(), and anonymous_namespace{TransportMenus.cpp}::DoMoveToLabel().
wxString LabelTrack::GetTextOfLabels | ( | double | t0, |
double | t1 | ||
) | const |
Definition at line 1037 of file LabelTrack.cpp.
References mLabels.
|
overridevirtual |
Implements Track.
Definition at line 113 of file LabelTrack.cpp.
References typeInfo().
|
overridevirtual |
Implements XMLTagHandler.
Definition at line 679 of file LabelTrack.cpp.
|
overridevirtual |
Implements XMLTagHandler.
Definition at line 618 of file LabelTrack.cpp.
References Track::HandleCommonXMLAttribute(), SelectedRegion::HandleXMLAttribute(), mLabels, title, and wxT().
void LabelTrack::Import | ( | wxTextFile & | f | ) |
Import labels, handling files with or without end-times.
Definition at line 594 of file LabelTrack.cpp.
References AudacityMessageBox(), LabelStruct::Import(), mLabels, SortLabels(), and XO().
|
overridevirtual |
May assume precondition: t0 <= t1
IsLeader()
Implements Track.
Definition at line 946 of file LabelTrack.cpp.
References Track::IsLeader(), and mLabels.
auto LabelTrack::MakeInterval | ( | size_t | index | ) |
Definition at line 138 of file LabelTrack.cpp.
References label.
Referenced by DoGetInterval().
|
overridevirtual |
Change start time to given time point.
Implements ChannelGroup.
Definition at line 166 of file LabelTrack.cpp.
References mLabels.
Referenced by ModifiedAnalysisTrack::ModifiedAnalysisTrack().
|
static |
Definition at line 68 of file LabelTrack.cpp.
References TrackList::Get(), project, and tracks.
|
overridevirtual |
Report the number of intervals.
Implements ChannelGroup.
Definition at line 133 of file LabelTrack.cpp.
References mLabels.
void LabelTrack::OnLabelAdded | ( | const wxString & | title, |
int | pos | ||
) |
|
overridevirtual |
Weak precondition allows overrides to replicate one channel into many.
IsLeader()
SameKindAs(src)
src.NChannels() == 1 || src.NChannels() == NChannels()
Implements Track.
Definition at line 812 of file LabelTrack.cpp.
References PasteOver(), ShiftLabelsOnInsert(), and Track::TypeSwitch().
Referenced by EffectRepeat::Process().
|
overridevirtual |
Find or create the destination track for a paste, maybe in a different project
IsLeader()
list | to which any newly created tracks are added; but left unchanged if an existing track is found in the project instead |
Implements Track.
Definition at line 123 of file LabelTrack.cpp.
References TrackList::Add(), and Track::IsLeader().
bool LabelTrack::PasteOver | ( | double | t, |
const Track & | src | ||
) |
Definition at line 783 of file LabelTrack.cpp.
References mLabels, LabelStruct::selectedRegion, and Track::TypeSwitch().
Referenced by Paste().
bool LabelTrack::Repeat | ( | double | t0, |
double | t1, | ||
int | n | ||
) |
Definition at line 829 of file LabelTrack.cpp.
References LabelStruct::BEGINS_IN_LABEL, label, mLabels, ShiftLabelsOnInsert(), and LabelStruct::SURROUNDS_LABEL.
Referenced by EffectRepeat::Process().
void LabelTrack::ScaleLabels | ( | double | b, |
double | e, | ||
double | change | ||
) |
Definition at line 266 of file LabelTrack.cpp.
References AdjustTimeStampOnScale(), and mLabels.
void LabelTrack::SetLabel | ( | size_t | iLabel, |
const LabelStruct & | newLabel | ||
) |
|
overridevirtual |
Reimplemented from Track.
Definition at line 336 of file LabelTrack.cpp.
References Track::GetSelected(), Observer::Publisher< struct LabelTrackEvent >::Publish(), LabelTrackEvent::Selection, and Track::SetSelected().
void LabelTrack::ShiftLabelsOnInsert | ( | double | length, |
double | pt | ||
) |
Definition at line 238 of file LabelTrack.cpp.
References LabelStruct::BEFORE_LABEL, mLabels, and LabelStruct::WITHIN_LABEL.
Referenced by Paste(), Repeat(), and SyncLockAdjust().
|
overridevirtual |
IsLeader()
Implements Track.
Definition at line 899 of file LabelTrack.cpp.
References LabelStruct::BEGINS_IN_LABEL, DeleteLabel(), LabelStruct::ENDS_IN_LABEL, Track::IsLeader(), label, mLabels, SortLabels(), LabelStruct::SURROUNDS_LABEL, and LabelStruct::WITHIN_LABEL.
void LabelTrack::SortLabels | ( | ) |
Sorts the labels in order of their starting times. This function is called often (whilst dragging a label) We expect them to be very nearly in order, so insertion sort (with a linear search) is a reasonable choice.
Definition at line 1005 of file LabelTrack.cpp.
References PackedArray::begin(), mLabels, LabelTrackEvent::Permutation, Observer::Publisher< struct LabelTrackEvent >::Publish(), and staffpad::vo::rotate().
Referenced by ChangeLabelsOnReverse(), Import(), Silence(), and WarpLabels().
|
overridevirtual |
This can be used to adjust a sync-lock selected track when the selection is replaced by one of a different length.
IsLeader()
Reimplemented from Track.
Definition at line 881 of file LabelTrack.cpp.
References Clear(), ChannelGroup::GetEndTime(), Track::IsLeader(), and ShiftLabelsOnInsert().
void LabelTrack::WarpLabels | ( | const TimeWarper & | warper | ) |
Definition at line 294 of file LabelTrack.cpp.
References mLabels, SortLabels(), and TimeWarper::Warp().
Referenced by EffectChangeSpeed::ProcessLabelTrack(), and EffectSBSMS::ProcessLabelTrack().
|
overridevirtual |
Implements Track.
Definition at line 687 of file LabelTrack.cpp.
References Track::WriteCommonXMLAttributes(), and wxT().
|
private |
Definition at line 206 of file LabelTrack.h.
|
private |
Definition at line 208 of file LabelTrack.h.
Referenced by FindNextLabel(), and FindPrevLabel().
|
private |
Definition at line 203 of file LabelTrack.h.
Referenced by AddLabel(), ChangeLabelsOnReverse(), Clear(), Copy(), DeleteLabel(), DoOnProjectTempoChange(), Export(), FindNextLabel(), FindPrevLabel(), GetLabel(), GetNumLabels(), GetTextOfLabels(), HandleXMLTag(), Import(), InsertSilence(), LabelTrack(), MoveTo(), NIntervals(), PasteOver(), Repeat(), ScaleLabels(), GetInfoCommand::SendLabels(), SetLabel(), ShiftLabelsOnInsert(), Silence(), SortLabels(), and WarpLabels().