11#ifndef __AUDACITY_TIMETRACK__
12#define __AUDACITY_TIMETRACK__
28 static wxString GetDefaultName();
44 double *pT0 =
nullptr,
double *pT1 =
nullptr);
58 void Clear(
double t0,
double t1)
override;
59 void Paste(
double t,
const Track &src)
override;
89 double GetRangeLower()
const;
90 double GetRangeUpper()
const;
92 void SetRangeLower(
double lower);
93 void SetRangeUpper(
double upper);
97 bool GetInterpolateLog()
const;
98 void SetInterpolateLog(
bool interpolateLog);
105 std::shared_ptr<WideChannelGroupInterval>
DoGetInterval(
size_t iInterval)
121 using Holder = std::unique_ptr<TimeTrack>;
ENUMERATE_TRACK_TYPE(TimeTrack)
declares abstract base class Track, TrackList, and iterators over TrackList
std::function< void(double)> ProgressReporter
std::vector< Attribute > AttributesList
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
virtual std::shared_ptr< Interval > DoGetInterval(size_t iInterval)=0
Retrieve an interval.
size_t NIntervals() const
Report the number of intervals.
A kind of Track used to 'warp time'.
void SetDisplayLog(bool displayLog)
std::unique_ptr< TimeTrack > Holder
std::unique_ptr< BoundedEnvelope > mEnvelope
const BoundedEnvelope * GetEnvelope() const
void ShiftBy(double, double) override
Shift all intervals that starts after t0 by delta seconds.
BoundedEnvelope * GetEnvelope()
bool GetDisplayLog() const
void MoveTo(double) override
Change start time to given time point.
Abstract base class for an object holding data associated with points on a time axis.
virtual Holder Clone(bool backup) const =0
virtual void Paste(double t, const Track &src)=0
Weak precondition allows overrides to replicate one channel into many.
virtual Holder PasteInto(AudacityProject &project, TrackList &list) const =0
virtual Holder Copy(double t0, double t1, bool forClipboard=true) const =0
Create new tracks and don't modify this track.
virtual const TypeInfo & GetTypeInfo() const =0
virtual void InsertSilence(double t, double len)=0
virtual bool SupportsBasicEditing() const
Whether this track type implements cut-copy-paste; by default, true.
static const TypeInfo & ClassTypeInfo()
virtual void Clear(double t0, double t1)=0
std::shared_ptr< Track > Holder
void Init(const Track &orig)
virtual void WriteXML(XMLWriter &xmlFile) const =0
virtual void Silence(double t0, double t1, ProgressReporter reportProgress={})=0
virtual Holder Cut(double t0, double t1)=0
Create tracks and modify this track.
A flat linked list of tracks supporting Add, Remove, Clear, and Contains, serialization of the list o...
Generates overrides of channel-related functions.
This class is an interface which should be implemented by classes which wish to be able to load and s...
virtual XMLTagHandler * HandleXMLChild(const std::string_view &tag)=0
virtual void HandleXMLEndTag(const std::string_view &WXUNUSED(tag))
virtual bool HandleXMLTag(const std::string_view &tag, const AttributesList &attrs)=0
Base class for XMLFileWriter and XMLStringWriter that provides the general functionality for creating...
Empty argument passed to some public constructors.