1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-12 17:43:37 +02:00

Import.cpp does not depend on subclasses of ImportPlugin...

... freeing 15 files from the big strongly connected component:

ImportFFmpeg & ODDecodeFFMpegTask (still in a cycle of two)
ImportFLAC
ImportGStreamer
ImportLOF
ImportMIDI
ImportMP3
ImportOGG
ImportPCM
ImportQT
ProjectFileManager
ProjectFSCK
ProjectManager
ProjectSelectionManager
ODDecodeFlacTask

And eight header files in src/import are deleted.

This breaks a lot of cycles because Import, which is still in the big component,
no longer includes ImportLOF, which recursively uses ProjectManager. A
registration system for the subclasses of ImportFileHandle allows that
recursion without the cyclic compilation dependencies.
This commit is contained in:
Paul Licameli
2019-06-06 17:43:34 -04:00
parent 3cf124d92a
commit e2cf1d93c2
25 changed files with 202 additions and 424 deletions

View File

@@ -507,25 +507,17 @@ src/import/FormatClassifier.h
src/import/Import.cpp
src/import/Import.h
src/import/ImportFFmpeg.cpp
src/import/ImportFFmpeg.h
src/import/ImportFLAC.cpp
src/import/ImportFLAC.h
src/import/ImportForwards.h
src/import/ImportGStreamer.cpp
src/import/ImportGStreamer.h
src/import/ImportLOF.cpp
src/import/ImportLOF.h
src/import/ImportMIDI.cpp
src/import/ImportMIDI.h
src/import/ImportMP3.cpp
src/import/ImportMP3.h
src/import/ImportOGG.cpp
src/import/ImportOGG.h
src/import/ImportPCM.cpp
src/import/ImportPCM.h
src/import/ImportPlugin.h
src/import/ImportQT.cpp
src/import/ImportQT.h
src/import/ImportRaw.cpp
src/import/ImportRaw.h
src/import/MultiFormatReader.cpp