mirror of
https://github.com/cookiengineer/audacity
synced 2025-10-13 14:13:32 +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:
@@ -455,7 +455,7 @@ std::unique_ptr<ExtImportItem> Importer::CreateDefaultImportItem()
|
||||
// returns number of tracks imported
|
||||
bool Importer::Import( AudacityProject &project,
|
||||
const FilePath &fName,
|
||||
TrackFactory *trackFactory,
|
||||
WaveTrackFactory *trackFactory,
|
||||
TrackHolders &tracks,
|
||||
Tags *tags,
|
||||
TranslatableString &errorMessage)
|
||||
|
@@ -25,7 +25,7 @@ class wxArrayString;
|
||||
class wxListBox;
|
||||
class AudacityProject;
|
||||
class Tags;
|
||||
class TrackFactory;
|
||||
class WaveTrackFactory;
|
||||
class Track;
|
||||
class ImportPlugin;
|
||||
class ImportFileHandle;
|
||||
@@ -167,7 +167,7 @@ public:
|
||||
// if false, the import failed and errorMessage will be set.
|
||||
bool Import( AudacityProject &project,
|
||||
const FilePath &fName,
|
||||
TrackFactory *trackFactory,
|
||||
WaveTrackFactory *trackFactory,
|
||||
TrackHolders &tracks,
|
||||
Tags *tags,
|
||||
TranslatableString &errorMessage);
|
||||
|
@@ -91,7 +91,7 @@ public:
|
||||
|
||||
ByteCount GetFileUncompressedBytes() override;
|
||||
|
||||
ProgressResult Import(TrackFactory *trackFactory,
|
||||
ProgressResult Import(WaveTrackFactory *trackFactory,
|
||||
TrackHolders &outTracks,
|
||||
Tags *tags) override;
|
||||
|
||||
@@ -267,7 +267,7 @@ auto AUPImportFileHandle::GetFileUncompressedBytes() -> ByteCount
|
||||
return 0;
|
||||
}
|
||||
|
||||
ProgressResult AUPImportFileHandle::Import(TrackFactory *WXUNUSED(trackFactory),
|
||||
ProgressResult AUPImportFileHandle::Import(WaveTrackFactory *WXUNUSED(trackFactory),
|
||||
TrackHolders &WXUNUSED(outTracks),
|
||||
Tags *tags)
|
||||
{
|
||||
@@ -829,8 +829,7 @@ bool AUPImportFileHandle::HandleProject(XMLTagHandler *&handler)
|
||||
|
||||
bool AUPImportFileHandle::HandleLabelTrack(XMLTagHandler *&handler)
|
||||
{
|
||||
auto &trackFactory = TrackFactory::Get(mProject);
|
||||
mTracks.push_back(trackFactory.NewLabelTrack());
|
||||
mTracks.push_back(std::make_shared<LabelTrack>());
|
||||
|
||||
handler = mTracks.back().get();
|
||||
|
||||
@@ -840,8 +839,7 @@ bool AUPImportFileHandle::HandleLabelTrack(XMLTagHandler *&handler)
|
||||
bool AUPImportFileHandle::HandleNoteTrack(XMLTagHandler *&handler)
|
||||
{
|
||||
#if defined(USE_MIDI)
|
||||
auto &trackFactory = TrackFactory::Get(mProject);
|
||||
mTracks.push_back(trackFactory.NewNoteTrack());
|
||||
mTracks.push_back( std::make_shared<NoteTrack>());
|
||||
|
||||
handler = mTracks.back().get();
|
||||
|
||||
@@ -874,8 +872,8 @@ bool AUPImportFileHandle::HandleTimeTrack(XMLTagHandler *&handler)
|
||||
return true;
|
||||
}
|
||||
|
||||
auto &trackFactory = TrackFactory::Get(mProject);
|
||||
mTracks.push_back(trackFactory.NewTimeTrack());
|
||||
auto &viewInfo = ViewInfo::Get( mProject );
|
||||
mTracks.push_back( std::make_shared<TimeTrack>(&viewInfo) );
|
||||
|
||||
handler = mTracks.back().get();
|
||||
|
||||
@@ -884,7 +882,7 @@ bool AUPImportFileHandle::HandleTimeTrack(XMLTagHandler *&handler)
|
||||
|
||||
bool AUPImportFileHandle::HandleWaveTrack(XMLTagHandler *&handler)
|
||||
{
|
||||
auto &trackFactory = TrackFactory::Get(mProject);
|
||||
auto &trackFactory = WaveTrackFactory::Get(mProject);
|
||||
mTracks.push_back(trackFactory.NewWaveTrack());
|
||||
|
||||
handler = mTracks.back().get();
|
||||
|
@@ -200,7 +200,7 @@ public:
|
||||
|
||||
///! Imports audio
|
||||
///\return import status (see Import.cpp)
|
||||
ProgressResult Import(TrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
ProgressResult Import(WaveTrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
Tags *tags) override;
|
||||
|
||||
///! Reads next audio frame
|
||||
@@ -467,7 +467,7 @@ auto FFmpegImportFileHandle::GetFileUncompressedBytes() -> ByteCount
|
||||
return 0;
|
||||
}
|
||||
|
||||
ProgressResult FFmpegImportFileHandle::Import(TrackFactory *trackFactory,
|
||||
ProgressResult FFmpegImportFileHandle::Import(WaveTrackFactory *trackFactory,
|
||||
TrackHolders &outTracks,
|
||||
Tags *tags)
|
||||
{
|
||||
|
@@ -149,7 +149,7 @@ public:
|
||||
|
||||
TranslatableString GetFileDescription() override;
|
||||
ByteCount GetFileUncompressedBytes() override;
|
||||
ProgressResult Import(TrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
ProgressResult Import(WaveTrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
Tags *tags) override;
|
||||
|
||||
wxInt32 GetStreamCount() override { return 1; }
|
||||
@@ -408,7 +408,7 @@ auto FLACImportFileHandle::GetFileUncompressedBytes() -> ByteCount
|
||||
}
|
||||
|
||||
|
||||
ProgressResult FLACImportFileHandle::Import(TrackFactory *trackFactory,
|
||||
ProgressResult FLACImportFileHandle::Import(WaveTrackFactory *trackFactory,
|
||||
TrackHolders &outTracks,
|
||||
Tags *tags)
|
||||
{
|
||||
|
@@ -128,7 +128,7 @@ public:
|
||||
|
||||
TranslatableString GetFileDescription() override;
|
||||
ByteCount GetFileUncompressedBytes() override;
|
||||
ProgressResult Import(TrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
ProgressResult Import(WaveTrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
Tags *tags) override;
|
||||
|
||||
wxInt32 GetStreamCount() override { return 1; }
|
||||
@@ -225,7 +225,7 @@ auto LOFImportFileHandle::GetFileUncompressedBytes() -> ByteCount
|
||||
}
|
||||
|
||||
ProgressResult LOFImportFileHandle::Import(
|
||||
TrackFactory * WXUNUSED(trackFactory), TrackHolders &outTracks,
|
||||
WaveTrackFactory * WXUNUSED(trackFactory), TrackHolders &outTracks,
|
||||
Tags * WXUNUSED(tags))
|
||||
{
|
||||
// Unlike other ImportFileHandle subclasses, this one never gives any tracks
|
||||
|
@@ -36,7 +36,7 @@
|
||||
bool DoImportMIDI( AudacityProject &project, const FilePath &fileName )
|
||||
{
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto newTrack = TrackFactory::Get( project ).NewNoteTrack();
|
||||
auto newTrack = std::make_shared<NoteTrack>();
|
||||
|
||||
if (::ImportMIDI(fileName, newTrack.get())) {
|
||||
|
||||
|
@@ -110,7 +110,7 @@ public:
|
||||
|
||||
TranslatableString GetFileDescription() override;
|
||||
ByteCount GetFileUncompressedBytes() override;
|
||||
ProgressResult Import(TrackFactory *trackFactory, TrackHolders &outTracks, Tags *tags) override;
|
||||
ProgressResult Import(WaveTrackFactory *trackFactory, TrackHolders &outTracks, Tags *tags) override;
|
||||
wxInt32 GetStreamCount() override;
|
||||
const TranslatableStrings &GetStreamInfo() override;
|
||||
void SetStreamUsage(wxInt32 StreamID, bool Use) override;
|
||||
@@ -157,7 +157,7 @@ private:
|
||||
unsigned char mInputBuffer[INPUT_BUFFER_SIZE + MAD_BUFFER_GUARD];
|
||||
int mInputBufferLen;
|
||||
|
||||
TrackFactory *mTrackFactory;
|
||||
WaveTrackFactory *mTrackFactory;
|
||||
NewChannelGroup mChannels;
|
||||
unsigned mNumChannels;
|
||||
|
||||
@@ -252,7 +252,7 @@ void MP3ImportFileHandle::SetStreamUsage(wxInt32 WXUNUSED(StreamID), bool WXUNUS
|
||||
{
|
||||
}
|
||||
|
||||
ProgressResult MP3ImportFileHandle::Import(TrackFactory *trackFactory,
|
||||
ProgressResult MP3ImportFileHandle::Import(WaveTrackFactory *trackFactory,
|
||||
TrackHolders &outTracks,
|
||||
Tags *tags)
|
||||
{
|
||||
|
@@ -126,7 +126,7 @@ public:
|
||||
|
||||
TranslatableString GetFileDescription() override;
|
||||
ByteCount GetFileUncompressedBytes() override;
|
||||
ProgressResult Import(TrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
ProgressResult Import(WaveTrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
Tags *tags) override;
|
||||
|
||||
wxInt32 GetStreamCount() override
|
||||
@@ -231,7 +231,7 @@ auto OggImportFileHandle::GetFileUncompressedBytes() -> ByteCount
|
||||
}
|
||||
|
||||
ProgressResult OggImportFileHandle::Import(
|
||||
TrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
WaveTrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
Tags *tags)
|
||||
{
|
||||
outTracks.clear();
|
||||
|
@@ -93,7 +93,7 @@ public:
|
||||
|
||||
TranslatableString GetFileDescription() override;
|
||||
ByteCount GetFileUncompressedBytes() override;
|
||||
ProgressResult Import(TrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
ProgressResult Import(WaveTrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
Tags *tags) override;
|
||||
|
||||
wxInt32 GetStreamCount() override { return 1; }
|
||||
@@ -290,7 +290,7 @@ using id3_tag_holder = std::unique_ptr<id3_tag, id3_tag_deleter>;
|
||||
|
||||
using NewChannelGroup = std::vector< std::shared_ptr<WaveTrack> >;
|
||||
|
||||
ProgressResult PCMImportFileHandle::Import(TrackFactory *trackFactory,
|
||||
ProgressResult PCMImportFileHandle::Import(WaveTrackFactory *trackFactory,
|
||||
TrackHolders &outTracks,
|
||||
Tags *tags)
|
||||
{
|
||||
|
@@ -54,7 +54,7 @@ but little else.
|
||||
class AudacityProject;
|
||||
class ProgressDialog;
|
||||
enum class ProgressResult : unsigned;
|
||||
class TrackFactory;
|
||||
class WaveTrackFactory;
|
||||
class Track;
|
||||
class Tags;
|
||||
|
||||
@@ -133,14 +133,14 @@ public:
|
||||
virtual ByteCount GetFileUncompressedBytes() = 0;
|
||||
|
||||
// do the actual import, creating whatever tracks are necessary with
|
||||
// the TrackFactory and calling the progress callback every iteration
|
||||
// the WaveTrackFactory and calling the progress callback every iteration
|
||||
// through the importing loop
|
||||
// The given Tags structure may also be modified.
|
||||
// In case of errors or exceptions, it is not necessary to leave outTracks
|
||||
// or tags unmodified.
|
||||
// If resulting outTracks is not empty,
|
||||
// then each member of it must be a nonempty vector.
|
||||
virtual ProgressResult Import(TrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
virtual ProgressResult Import(WaveTrackFactory *trackFactory, TrackHolders &outTracks,
|
||||
Tags *tags) = 0;
|
||||
|
||||
// Return number of elements in stream list
|
||||
|
@@ -93,7 +93,7 @@ class ImportRawDialog final : public wxDialogWrapper {
|
||||
// but may also throw FileException to make use of the application's
|
||||
// user visible error reporting.
|
||||
void ImportRaw(wxWindow *parent, const wxString &fileName,
|
||||
TrackFactory *trackFactory, TrackHolders &outTracks)
|
||||
WaveTrackFactory *trackFactory, TrackHolders &outTracks)
|
||||
{
|
||||
outTracks.clear();
|
||||
int encoding = 0; // Guess Format
|
||||
|
@@ -13,7 +13,7 @@
|
||||
|
||||
#include "../MemoryX.h"
|
||||
|
||||
class TrackFactory;
|
||||
class WaveTrackFactory;
|
||||
class WaveTrack;
|
||||
class wxString;
|
||||
class wxWindow;
|
||||
@@ -27,6 +27,6 @@ using TrackHolders = std::vector< NewChannelGroup >;
|
||||
|
||||
|
||||
void ImportRaw(wxWindow *parent, const wxString &fileName,
|
||||
TrackFactory *trackFactory, TrackHolders &outTracks);
|
||||
WaveTrackFactory *trackFactory, TrackHolders &outTracks);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user