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 > |
Public Types inherited from Track | |
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 Types inherited from Channel | |
using | Interval = ChannelInterval |
Public Types inherited from Observer::Publisher< struct LabelTrackEvent > | |
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 | ShiftBy (double t0, double delta) override |
Shift all intervals that starts after t0 by delta seconds. 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 |
Track::Holder | Cut (double t0, double t1) override |
Create tracks and modify this track. More... | |
Track::Holder | 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, LabelFormat format) |
Import labels, handling files with or without end-times. More... | |
void | Export (wxTextFile &f, LabelFormat format) 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... | |
Public Member Functions inherited from UniqueChannelTrack< Base > | |
size_t | NChannels () const override |
Report the number of channels. More... | |
std::shared_ptr< Channel > | DoGetChannel (size_t iChannel) override |
Public Member Functions inherited from Track | |
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... | |
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 |
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... | |
Public Member Functions inherited from Channel | |
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 | 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... | |
Public Member Functions inherited from Observer::Publisher< struct LabelTrackEvent > | |
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 LabelFormat | FormatForFileName (const wxString &fileName) |
static const TypeInfo & | ClassTypeInfo () |
Static Public Member Functions inherited from Track | |
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... | |
Static Public Attributes | |
static const FileNames::FileType | SubripFiles { XO("SubRip text file"), { wxT("srt") }, true } |
static const FileNames::FileType | WebVTTFiles { XO("WebVTT file"), { wxT("vtt") }, true } |
Static Public Attributes inherited from Observer::Publisher< struct LabelTrackEvent > | |
static constexpr bool | notifies_all |
Private Member Functions | |
Track::Holder | Clone (bool backup) const 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 | |
Protected Member Functions inherited from UniqueChannelTrack< Base > | |
ChannelGroup & | DoGetChannelGroup () const override |
Subclass must override. More... | |
Protected Member Functions inherited from Track | |
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... | |
virtual std::shared_ptr< Channel > | DoGetChannel (size_t iChannel)=0 |
virtual std::shared_ptr< Interval > | DoGetInterval (size_t iInterval)=0 |
Retrieve an interval. More... | |
virtual ChannelGroup & | DoGetChannelGroup () const =0 |
Subclass must override. More... | |
Protected Member Functions inherited from Observer::Publisher< struct LabelTrackEvent > | |
CallbackReturn | Publish (const struct LabelTrackEvent &message) |
Send a message to connected callbacks. More... | |
Protected Attributes inherited from Track | |
std::weak_ptr< TrackList > | mList |
TrackNodePointer | mNode {} |
Holds iterator to self, so that TrackList::Find can be constant-time. 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 95 of file LabelTrack.h.
using LabelTrack::Holder = std::shared_ptr<LabelTrack> |
Definition at line 129 of file LabelTrack.h.
LabelTrack::LabelTrack | ( | ) |
Definition at line 122 of file LabelTrack.cpp.
LabelTrack::LabelTrack | ( | const LabelTrack & | orig, |
ProtectedCreationArg && | a | ||
) |
Definition at line 129 of file LabelTrack.cpp.
References mLabels, and LabelStruct::selectedRegion.
|
virtual |
Definition at line 192 of file LabelTrack.cpp.
int LabelTrack::AddLabel | ( | const SelectedRegion & | region, |
const wxString & | title | ||
) |
Definition at line 1074 of file LabelTrack.cpp.
References LabelTrackEvent::Addition, mLabels, Observer::Publisher< struct LabelTrackEvent >::Publish(), SelectedRegion::t0(), and title.
Referenced by VampEffect::AddFeatures(), and FindClippingBase::ProcessOne().
double LabelTrack::AdjustTimeStampOnScale | ( | double | t, |
double | b, | ||
double | e, | ||
double | change | ||
) |
Definition at line 304 of file LabelTrack.cpp.
Referenced by ScaleLabels().
void LabelTrack::ChangeLabelsOnReverse | ( | double | b, |
double | e | ||
) |
Definition at line 280 of file LabelTrack.cpp.
References mLabels, SortLabels(), and LabelStruct::SURROUNDS_LABEL.
|
static |
Definition at line 151 of file LabelTrack.cpp.
References typeInfo().
|
overridevirtual |
May assume precondition: t0 <= t1
Implements Track.
Definition at line 218 of file LabelTrack.cpp.
References LabelStruct::BEFORE_LABEL, LabelStruct::BEGINS_IN_LABEL, DeleteLabel(), LabelStruct::ENDS_IN_LABEL, 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) including TrackId
backup | whether the duplication is for backup purposes while opening a project, instead of other editing operations |
this
Implements Track.
Definition at line 374 of file LabelTrack.cpp.
|
overridevirtual |
Create new tracks and don't modify this track.
Implements Track.
Definition at line 837 of file LabelTrack.cpp.
References LabelStruct::BEGINS_IN_LABEL, LabelStruct::ENDS_IN_LABEL, mLabels, LabelStruct::selectedRegion, LabelStruct::SURROUNDS_LABEL, and LabelStruct::WITHIN_LABEL.
Referenced by Cut(), ModifiedAnalysisTrack::ModifiedAnalysisTrack(), and RepeatBase::Process().
|
static |
Create a new LabelTrack with unique default name and append it to the trackList
.
Definition at line 117 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 109 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.
Implements Track.
Definition at line 816 of file LabelTrack.cpp.
References Clear(), and Copy().
void LabelTrack::DeleteLabel | ( | int | index | ) |
Definition at line 1093 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 178 of file LabelTrack.cpp.
References MakeInterval().
void LabelTrack::Export | ( | wxTextFile & | f, |
LabelFormat | format | ||
) | const |
Export labels including label start and end-times.
Definition at line 672 of file LabelTrack.cpp.
References anonymous_namespace{ExportPCM.cpp}::format, mLabels, WEBVTT, and wxT().
int LabelTrack::FindNextLabel | ( | const SelectedRegion & | currentSelection | ) |
Definition at line 1159 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 1185 of file LabelTrack.cpp.
References miLastLabel, mLabels, and SelectedRegion::t0().
Referenced by anonymous_namespace{TransportMenus.cpp}::DoMoveToLabel().
|
static |
Definition at line 685 of file LabelTrack.cpp.
References anonymous_namespace{ExportPCM.cpp}::format, SUBRIP, TEXT, WEBVTT, and wxT().
Referenced by LabelDialog::OnExport(), anonymous_namespace{FileMenus.cpp}::OnExportLabels(), LabelDialog::OnImport(), and anonymous_namespace{FileMenus.cpp}::OnImportLabels().
|
static |
Definition at line 96 of file LabelTrack.cpp.
References _.
Referenced by Create(), and NyquistBase::ProcessOne().
const LabelStruct * LabelTrack::GetLabel | ( | int | index | ) | const |
Definition at line 1069 of file LabelTrack.cpp.
References mLabels.
Referenced by LabelDialog::AddLabels(), DEFINE_ATTACHED_VIRTUAL_OVERRIDE(), and anonymous_namespace{TransportMenus.cpp}::DoMoveToLabel().
|
inline |
Definition at line 160 of file LabelTrack.h.
Referenced by LabelTrackView::Draw(), LabelTrackView::OverATextBox(), LabelTrackView::OverGlyph(), and GetInfoCommand::SendLabels().
int LabelTrack::GetNumLabels | ( | ) | const |
Definition at line 1064 of file LabelTrack.cpp.
References mLabels.
Referenced by LabelDialog::AddLabels(), DEFINE_ATTACHED_VIRTUAL_OVERRIDE(), and anonymous_namespace{TransportMenus.cpp}::DoMoveToLabel().
wxString LabelTrack::GetTextOfLabels | ( | double | t0, |
double | t1 | ||
) | const |
Definition at line 1140 of file LabelTrack.cpp.
References mLabels.
|
overridevirtual |
Implements Track.
Definition at line 146 of file LabelTrack.cpp.
References typeInfo().
|
overridevirtual |
Implements XMLTagHandler.
Definition at line 787 of file LabelTrack.cpp.
|
overridevirtual |
Implements XMLTagHandler.
Definition at line 726 of file LabelTrack.cpp.
References Track::HandleCommonXMLAttribute(), SelectedRegion::HandleXMLAttribute(), mLabels, title, and wxT().
void LabelTrack::Import | ( | wxTextFile & | f, |
LabelFormat | format | ||
) |
Import labels, handling files with or without end-times.
Definition at line 697 of file LabelTrack.cpp.
References anonymous_namespace{ExportPCM.cpp}::format, LabelStruct::Import(), mLabels, BasicUI::ShowMessageBox(), SortLabels(), WEBVTT, and XO().
|
overridevirtual |
May assume precondition: t0 <= t1
Implements Track.
Definition at line 1050 of file LabelTrack.cpp.
References mLabels.
auto LabelTrack::MakeInterval | ( | size_t | index | ) |
Definition at line 170 of file LabelTrack.cpp.
Referenced by DoGetInterval().
|
overridevirtual |
Change start time to given time point.
Implements ChannelGroup.
Definition at line 197 of file LabelTrack.cpp.
References mLabels.
Referenced by ModifiedAnalysisTrack::ModifiedAnalysisTrack().
|
static |
Definition at line 101 of file LabelTrack.cpp.
References TrackList::Get(), project, and tracks.
|
overridevirtual |
Report the number of intervals.
Implements ChannelGroup.
Definition at line 165 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.
SameKindAs(src)
src.NChannels() == 1 || src.NChannels() == NChannels()
Implements Track.
Definition at line 918 of file LabelTrack.cpp.
References PasteOver(), ShiftLabelsOnInsert(), and Track::TypeSwitch().
Referenced by RepeatBase::Process().
|
overridevirtual |
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 |
Implements Track.
Definition at line 156 of file LabelTrack.cpp.
References TrackList::Add().
bool LabelTrack::PasteOver | ( | double | t, |
const Track & | src | ||
) |
Definition at line 889 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 935 of file LabelTrack.cpp.
References LabelStruct::BEGINS_IN_LABEL, label, mLabels, ShiftLabelsOnInsert(), and LabelStruct::SURROUNDS_LABEL.
Referenced by RepeatBase::Process().
void LabelTrack::ScaleLabels | ( | double | b, |
double | e, | ||
double | change | ||
) |
Definition at line 295 of file LabelTrack.cpp.
References AdjustTimeStampOnScale(), and mLabels.
void LabelTrack::SetLabel | ( | size_t | iLabel, |
const LabelStruct & | newLabel | ||
) |
Definition at line 183 of file LabelTrack.cpp.
References mLabels.
Referenced by DEFINE_ATTACHED_VIRTUAL_OVERRIDE().
|
overridevirtual |
Reimplemented from Track.
Definition at line 365 of file LabelTrack.cpp.
References Track::GetSelected(), Observer::Publisher< struct LabelTrackEvent >::Publish(), LabelTrackEvent::Selection, and Track::SetSelected().
|
overridevirtual |
Shift all intervals that starts after t0
by delta
seconds.
Implements ChannelGroup.
Definition at line 207 of file LabelTrack.cpp.
References mLabels.
void LabelTrack::ShiftLabelsOnInsert | ( | double | length, |
double | pt | ||
) |
Definition at line 267 of file LabelTrack.cpp.
References LabelStruct::BEFORE_LABEL, mLabels, and LabelStruct::WITHIN_LABEL.
Referenced by Paste(), Repeat(), and SyncLockAdjust().
|
overridevirtual |
Implements Track.
Definition at line 1004 of file LabelTrack.cpp.
References LabelStruct::BEGINS_IN_LABEL, DeleteLabel(), LabelStruct::ENDS_IN_LABEL, 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 1108 of file LabelTrack.cpp.
References details::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.
Reimplemented from Track.
Definition at line 987 of file LabelTrack.cpp.
References Clear(), ChannelGroup::GetEndTime(), and ShiftLabelsOnInsert().
void LabelTrack::WarpLabels | ( | const TimeWarper & | warper | ) |
Definition at line 323 of file LabelTrack.cpp.
References mLabels, SortLabels(), and TimeWarper::Warp().
Referenced by ChangeSpeedBase::ProcessLabelTrack(), and SBSMSBase::ProcessLabelTrack().
|
overridevirtual |
Implements Track.
Definition at line 795 of file LabelTrack.cpp.
References Track::WriteCommonXMLAttributes(), and wxT().
|
private |
Definition at line 225 of file LabelTrack.h.
|
private |
Definition at line 227 of file LabelTrack.h.
Referenced by FindNextLabel(), and FindPrevLabel().
|
private |
Definition at line 222 of file LabelTrack.h.
Referenced by AddLabel(), ChangeLabelsOnReverse(), Clear(), Copy(), DeleteLabel(), Export(), FindNextLabel(), FindPrevLabel(), GetLabel(), GetNumLabels(), GetTextOfLabels(), HandleXMLTag(), Import(), InsertSilence(), LabelTrack(), MoveTo(), NIntervals(), PasteOver(), Repeat(), ScaleLabels(), GetInfoCommand::SendLabels(), SetLabel(), ShiftBy(), ShiftLabelsOnInsert(), Silence(), SortLabels(), and WarpLabels().
|
static |
Definition at line 131 of file LabelTrack.h.
Referenced by LabelDialog::OnExport(), anonymous_namespace{FileMenus.cpp}::OnExportLabels(), LabelDialog::OnImport(), and anonymous_namespace{FileMenus.cpp}::OnImportLabels().
|
static |
Definition at line 132 of file LabelTrack.h.
Referenced by LabelDialog::OnExport(), and anonymous_namespace{FileMenus.cpp}::OnExportLabels().