1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-04-01 03:54:47 +02:00

Track factory cleanup (#646)

* Don't need TrackFactory to make LabelTrack

* Don't need TrackFactory to make NoteTrack

* Don't need TrackFactory to make TimeTrack, or ZoomInfo in the factory

* Remove some forward declarations

* Rename TrackFactory as WaveTrackFactory, move it out of Track.cpp
This commit is contained in:
Paul Licameli
2020-08-22 19:44:49 -04:00
committed by GitHub
parent 0f98522b5c
commit 4ca3e7096f
42 changed files with 158 additions and 198 deletions

View File

@@ -1278,38 +1278,3 @@ bool TrackList::HasPendingTracks() const
return true;
return false;
}
#include "SampleBlock.h"
#include "ViewInfo.h"
static auto TrackFactoryFactory = []( AudacityProject &project ) {
auto &viewInfo = ViewInfo::Get( project );
return std::make_shared< TrackFactory >(
ProjectSettings::Get( project ),
SampleBlockFactory::New( project ), &viewInfo );
};
static const AudacityProject::AttachedObjects::RegisteredFactory key2{
TrackFactoryFactory
};
TrackFactory &TrackFactory::Get( AudacityProject &project )
{
return project.AttachedObjects::Get< TrackFactory >( key2 );
}
const TrackFactory &TrackFactory::Get( const AudacityProject &project )
{
return Get( const_cast< AudacityProject & >( project ) );
}
TrackFactory &TrackFactory::Reset( AudacityProject &project )
{
auto result = TrackFactoryFactory( project );
project.AttachedObjects::Assign( key2, result );
return *result;
}
void TrackFactory::Destroy( AudacityProject &project )
{
project.AttachedObjects::Assign( key2, nullptr );
}