Audacity 3.2.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Effect::ModifiedAnalysisTrack Class Reference

#include <Effect.h>

Collaboration diagram for Effect::ModifiedAnalysisTrack:
[legend]

Public Member Functions

 ModifiedAnalysisTrack ()
 
 ModifiedAnalysisTrack (ModifiedAnalysisTrack &&that)
 
LabelTrackget () const
 
void Commit ()
 
 ~ModifiedAnalysisTrack ()
 

Private Member Functions

 ModifiedAnalysisTrack (Effect *pEffect, const LabelTrack *pOrigTrack, const wxString &name)
 
 ModifiedAnalysisTrack (const ModifiedAnalysisTrack &) PROHIBITED
 

Private Attributes

friend Effect
 
EffectmpEffect {}
 
LabelTrackmpTrack {}
 
std::shared_ptr< TrackmpOrigTrack {}
 

Detailed Description

Definition at line 265 of file Effect.h.

Constructor & Destructor Documentation

◆ ModifiedAnalysisTrack() [1/4]

Effect::ModifiedAnalysisTrack::ModifiedAnalysisTrack ( Effect pEffect,
const LabelTrack pOrigTrack,
const wxString &  name 
)
private

Definition at line 746 of file Effect.cpp.

748 : mpEffect(pEffect)
749{
750 // copy LabelTrack here, so it can be undone on cancel
751 auto newTrack = pOrigTrack->Copy(pOrigTrack->GetStartTime(), pOrigTrack->GetEndTime());
752
753 mpTrack = static_cast<LabelTrack*>(newTrack.get());
754
755 // Why doesn't LabelTrack::Copy complete the job? :
756 mpTrack->SetOffset(pOrigTrack->GetStartTime());
757 if (!name.empty())
759
760 // mpOrigTrack came from mTracks which we own but expose as const to subclasses
761 // So it's okay that we cast it back to const
763 pEffect->mTracks->Replace(const_cast<LabelTrack*>(pOrigTrack),
764 newTrack );
765}
const TranslatableString name
Definition: Distortion.cpp:74
std::shared_ptr< Track > mpOrigTrack
Definition: Effect.h:289
TrackList * mTracks
Definition: EffectBase.h:127
A LabelTrack is a Track that holds labels (LabelStruct).
Definition: LabelTrack.h:87
double GetStartTime() const override
Definition: LabelTrack.cpp:338
Track::Holder Copy(double t0, double t1, bool forClipboard=true) const override
Definition: LabelTrack.cpp:706
double GetEndTime() const override
Definition: LabelTrack.cpp:346
void SetOffset(double dOffset) override
Definition: LabelTrack.cpp:171
void SetName(const wxString &n)
Definition: Track.cpp:79
ListOfTracks::value_type Replace(Track *t, const ListOfTracks::value_type &with)
Definition: Track.cpp:724

References LabelTrack::Copy(), TranslatableString::empty(), LabelTrack::GetEndTime(), LabelTrack::GetStartTime(), mpOrigTrack, mpTrack, EffectBase::mTracks, name, TrackList::Replace(), Track::SetName(), and LabelTrack::SetOffset().

Here is the call graph for this function:

◆ ModifiedAnalysisTrack() [2/4]

Effect::ModifiedAnalysisTrack::ModifiedAnalysisTrack ( const ModifiedAnalysisTrack )
private

◆ ModifiedAnalysisTrack() [3/4]

Effect::ModifiedAnalysisTrack::ModifiedAnalysisTrack ( )

◆ ModifiedAnalysisTrack() [4/4]

Effect::ModifiedAnalysisTrack::ModifiedAnalysisTrack ( ModifiedAnalysisTrack &&  that)

Definition at line 767 of file Effect.cpp.

768{
769 mpEffect = that.mpEffect;
770 mpTrack = that.mpTrack;
771 mpOrigTrack = std::move(that.mpOrigTrack);
772 that.Commit();
773}

◆ ~ModifiedAnalysisTrack()

Effect::ModifiedAnalysisTrack::~ModifiedAnalysisTrack ( )

Definition at line 780 of file Effect.cpp.

781{
782 if (mpEffect) {
783 // not committed -- DELETE the label track
784 // mpOrigTrack came from mTracks which we own but expose as const to subclasses
785 // So it's okay that we cast it back to const
787 }
788}

Member Function Documentation

◆ Commit()

void Effect::ModifiedAnalysisTrack::Commit ( )

Definition at line 775 of file Effect.cpp.

776{
777 mpEffect = nullptr;
778}

◆ get()

LabelTrack * Effect::ModifiedAnalysisTrack::get ( ) const
inline

Definition at line 278 of file Effect.h.

278{ return mpTrack; }

Member Data Documentation

◆ Effect

friend Effect::ModifiedAnalysisTrack::Effect
private

Definition at line 266 of file Effect.h.

◆ mpEffect

Effect* Effect::ModifiedAnalysisTrack::mpEffect {}
private

Definition at line 287 of file Effect.h.

◆ mpOrigTrack

std::shared_ptr<Track> Effect::ModifiedAnalysisTrack::mpOrigTrack {}
private

Definition at line 289 of file Effect.h.

Referenced by ModifiedAnalysisTrack().

◆ mpTrack

LabelTrack* Effect::ModifiedAnalysisTrack::mpTrack {}
private

Definition at line 288 of file Effect.h.

Referenced by ModifiedAnalysisTrack().


The documentation for this class was generated from the following files: