diff options
author | Uwe Klotz <uklotz@mixxx.org> | 2020-09-27 22:24:21 +0200 |
---|---|---|
committer | Uwe Klotz <uklotz@mixxx.org> | 2020-09-28 01:41:55 +0200 |
commit | 119f3f2f0acd006e7aac800de6ea55ef71d6f3a2 (patch) | |
tree | 42da11eff214c1e28973631023b19736095c6d28 | |
parent | cdc5d213daed22d28026ea78d42dd59066639ea2 (diff) |
Externalize forward declarations for Track object
...to reduce compile time dependencies
29 files changed, 77 insertions, 53 deletions
diff --git a/src/library/externaltrackcollection.h b/src/library/externaltrackcollection.h index 92b24ae6b0..64aaa794b4 100644 --- a/src/library/externaltrackcollection.h +++ b/src/library/externaltrackcollection.h @@ -4,12 +4,12 @@ #include <QList> #include <QString> -#include "preferences/usersettings.h" #include "library/relocatedtrack.h" +#include "preferences/usersettings.h" +#include "track/track_decl.h" class Library; class LibraryFeature; -class Track; // This interface and base class enable to synchronize external // track collections with Mixxx. It provides methods that will diff --git a/src/mixxx.h b/src/mixxx.h index 7fb3c2a683..dea2bc6bfa 100644 --- a/src/mixxx.h +++ b/src/mixxx.h @@ -9,7 +9,7 @@ #include "preferences/constants.h" #include "preferences/usersettings.h" #include "soundio/sounddeviceerror.h" -#include "track/track.h" +#include "track/track_decl.h" #include "util/cmdlineargs.h" #include "util/db/dbconnectionpool.h" #include "util/parented_ptr.h" diff --git a/src/sources/audiosourcetrackproxy.h b/src/sources/audiosourcetrackproxy.h index 766cdcf9f1..dca3f58b49 100644 --- a/src/sources/audiosourcetrackproxy.h +++ b/src/sources/audiosourcetrackproxy.h @@ -1,7 +1,7 @@ #pragma once #include "sources/audiosourceproxy.h" -#include "track/track.h" +#include "track/track_decl.h" namespace mixxx { diff --git a/src/sources/soundsourceproxy.h b/src/sources/soundsourceproxy.h index 43d2dc5b97..10f14d53a9 100644 --- a/src/sources/soundsourceproxy.h +++ b/src/sources/soundsourceproxy.h @@ -1,8 +1,9 @@ #pragma once -#include "track/track.h" - #include "sources/soundsourceproviderregistry.h" +#include "track/track_decl.h" +#include "track/trackfile.h" +#include "util/sandbox.h" // Creates sound sources for tracks. Only intended to be used // in a narrow scope and not shareable between multiple threads! diff --git a/src/test/beatgridtest.cpp b/src/test/beatgridtest.cpp index d8c1f88c48..780aeb11b9 100644 --- a/src/test/beatgridtest.cpp +++ b/src/test/beatgridtest.cpp @@ -1,7 +1,9 @@ #include <gtest/gtest.h> + #include <QtDebug> #include "track/beatgrid.h" +#include "track/track.h" #include "util/memory.h" using namespace mixxx; diff --git a/src/test/beatmaptest.cpp b/src/test/beatmaptest.cpp index 4692fc191d..5cbafa71d3 100644 --- a/src/test/beatmaptest.cpp +++ b/src/test/beatmaptest.cpp @@ -1,8 +1,10 @@ #include <gtest/gtest.h> +#include <memory.h> + #include <QtDebug> #include "track/beatmap.h" -#include "util/memory.h" +#include "track/track.h" using namespace mixxx; diff --git a/src/test/globaltrackcache_test.cpp b/src/test/globaltrackcache_test.cpp index fb7e7ceec0..7e98b4bae9 100644 --- a/src/test/globaltrackcache_test.cpp +++ b/src/test/globaltrackcache_test.cpp @@ -1,12 +1,11 @@ +#include "track/globaltrackcache.h" + #include <QThread> #include <QtDebug> - #include <atomic> #include "test/mixxxtest.h" - -#include "track/globaltrackcache.h" - +#include "track/track.h" namespace { diff --git a/src/test/soundproxy_test.cpp b/src/test/soundproxy_test.cpp index e6eb9b79e2..9511d28f8d 100644 --- a/src/test/soundproxy_test.cpp +++ b/src/test/soundproxy_test.cpp @@ -4,7 +4,7 @@ #include "sources/audiosourcestereoproxy.h" #include "sources/soundsourceproxy.h" #include "test/mixxxtest.h" -#include "track/trackmetadata.h" +#include "track/track.h" #include "util/samplebuffer.h" namespace { diff --git a/src/track/beatfactory.h b/src/track/beatfactory.h index cb25021f19..20ac6fe71e 100644 --- a/src/track/beatfactory.h +++ b/src/track/beatfactory.h @@ -4,7 +4,7 @@ #include <QHash> #include "track/beats.h" -#include "track/track.h" +#include "track/track_decl.h" class BeatFactory { public: diff --git a/src/track/beatgrid.cpp b/src/track/beatgrid.cpp index 815314f736..230cd3ce86 100644 --- a/src/track/beatgrid.cpp +++ b/src/track/beatgrid.cpp @@ -1,7 +1,9 @@ +#include "track/beatgrid.h" + #include <QMutexLocker> #include <QtDebug> -#include "track/beatgrid.h" +#include "track/track.h" #include "util/math.h" static const int kFrameSize = 2; diff --git a/src/track/beatgrid.h b/src/track/beatgrid.h index f1f09faf28..f379decc49 100644 --- a/src/track/beatgrid.h +++ b/src/track/beatgrid.h @@ -3,9 +3,9 @@ #include <QMutex> -#include "track/track.h" -#include "track/beats.h" #include "proto/beats.pb.h" +#include "track/beats.h" +#include "track/track_decl.h" #define BEAT_GRID_1_VERSION "BeatGrid-1.0" #define BEAT_GRID_2_VERSION "BeatGrid-2.0" diff --git a/src/track/beatmap.cpp b/src/track/beatmap.cpp index 661f79e9f9..89437441ad 100644 --- a/src/track/beatmap.cpp +++ b/src/track/beatmap.cpp @@ -5,13 +5,15 @@ * Author: vittorio */ -#include <algorithm> +#include "track/beatmap.h" + +#include <QMutexLocker> #include <QtDebug> #include <QtGlobal> -#include <QMutexLocker> +#include <algorithm> -#include "track/beatmap.h" #include "track/beatutils.h" +#include "track/track.h" #include "util/math.h" using mixxx::track::io::Beat; diff --git a/src/track/beatmap.h b/src/track/beatmap.h index 5d1ce7df57..7f85b449bb 100644 --- a/src/track/beatmap.h +++ b/src/track/beatmap.h @@ -10,9 +10,9 @@ #include <QMutex> -#include "track/track.h" -#include "track/beats.h" #include "proto/beats.pb.h" +#include "track/beats.h" +#include "track/track_decl.h" #define BEAT_MAP_VERSION "BeatMap-1.0" diff --git a/src/track/cue.h b/src/track/cue.h index d7c6d36f9a..d4a8fbb497 100644 --- a/src/track/cue.h +++ b/src/track/cue.h @@ -6,13 +6,13 @@ #include "audio/types.h" #include "track/cueinfo.h" +#include "track/track_decl.h" #include "track/trackid.h" #include "util/color/rgbcolor.h" #include "util/memory.h" class CuePosition; class CueDAO; -class Track; class Cue : public QObject { Q_OBJECT diff --git a/src/track/globaltrackcache.cpp b/src/track/globaltrackcache.cpp index e2da4c0456..58637ffbcd 100644 --- a/src/track/globaltrackcache.cpp +++ b/src/track/globaltrackcache.cpp @@ -2,6 +2,7 @@ #include <QCoreApplication> +#include "track/track.h" #include "util/assert.h" #include "util/logger.h" #include "util/thread_affinity.h" diff --git a/src/track/globaltrackcache.h b/src/track/globaltrackcache.h index 6266a230ee..d66c7f3a54 100644 --- a/src/track/globaltrackcache.h +++ b/src/track/globaltrackcache.h @@ -4,9 +4,9 @@ #include <map> #include <unordered_map> -#include "track/track.h" +#include "track/track_decl.h" #include "track/trackref.h" - +#include "util/sandbox.h" // forward declaration(s) class GlobalTrackCache; diff --git a/src/track/keyfactory.h b/src/track/keyfactory.h index fbd64bee66..36811dc593 100644 --- a/src/track/keyfactory.h +++ b/src/track/keyfactory.h @@ -2,12 +2,12 @@ #define KEYFACTORY_H #include <QHash> -#include <QVector> #include <QString> +#include <QVector> -#include "track/keys.h" #include "proto/keys.pb.h" -#include "track/track.h" +#include "track/keys.h" +#include "track/track_decl.h" class KeyFactory { public: diff --git a/src/track/track.h b/src/track/track.h index 2a3af32469..6cf9905d34 100644 --- a/src/track/track.h +++ b/src/track/track.h @@ -10,27 +10,12 @@ #include "track/beats.h" #include "track/cue.h" #include "track/cueinfoimporter.h" +#include "track/track_decl.h" #include "track/trackfile.h" #include "track/trackrecord.h" -#include "util/memory.h" #include "util/sandbox.h" #include "waveform/waveform.h" -// forward declaration(s) -class Track; - -typedef std::shared_ptr<Track> TrackPointer; -typedef std::weak_ptr<Track> TrackWeakPointer; -typedef QList<TrackPointer> TrackPointerList; - -Q_DECLARE_METATYPE(TrackPointer); - -enum class ExportTrackMetadataResult { - Succeeded, - Failed, - Skipped, -}; - class Track : public QObject { Q_OBJECT diff --git a/src/track/track_decl.h b/src/track/track_decl.h new file mode 100644 index 0000000000..12a03187cc --- /dev/null +++ b/src/track/track_decl.h @@ -0,0 +1,21 @@ +#pragma once + +/// Forward declarations for Track objects and their pointers + +#include <QList> +#include <QMetaType> +#include <memory> + +class Track; + +typedef std::shared_ptr<Track> TrackPointer; +typedef std::weak_ptr<Track> TrackWeakPointer; +typedef QList<TrackPointer> TrackPointerList; + +enum class ExportTrackMetadataResult { + Succeeded, + Failed, + Skipped, +}; + +Q_DECLARE_METATYPE(TrackPointer); diff --git a/src/track/trackiterator.h b/src/track/trackiterator.h index f95c5e6efd..9d6bc6fec1 100644 --- a/src/track/trackiterator.h +++ b/src/track/trackiterator.h @@ -5,7 +5,8 @@ #include <QModelIndex> -#include "track/track.h" +#include "track/track_decl.h" +#include "track/trackid.h" #include "util/itemiterator.h" namespace mixxx { diff --git a/src/util/dnd.h b/src/util/dnd.h index b437ab3652..77d2b5a077 100644 --- a/src/util/dnd.h +++ b/src/util/dnd.h @@ -8,7 +8,8 @@ #include <QUrl> #include "preferences/usersettings.h" -#include "track/track.h" +#include "track/track_decl.h" +#include "track/trackfile.h" #include "widget/trackdroptarget.h" class DragAndDropHelper final { diff --git a/src/util/itemiterator.h b/src/util/itemiterator.h index 5fa0825b63..c43b675d75 100644 --- a/src/util/itemiterator.h +++ b/src/util/itemiterator.h @@ -7,6 +7,7 @@ #include <QVector> #include "util/assert.h" +#include "util/optional.h" namespace mixxx { diff --git a/src/waveform/renderers/glvsynctestrenderer.cpp b/src/waveform/renderers/glvsynctestrenderer.cpp index d1f06be01b..dc5e42e966 100644 --- a/src/waveform/renderers/glvsynctestrenderer.cpp +++ b/src/waveform/renderers/glvsynctestrenderer.cpp @@ -1,10 +1,11 @@ #include "waveform/renderers/glvsynctestrenderer.h" #if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES_2) +#include "track/track.h" +#include "util/performancetimer.h" #include "waveform/renderers/waveformwidgetrenderer.h" #include "waveform/waveform.h" #include "waveform/waveformwidgetfactory.h" -#include "util/performancetimer.h" GLVSyncTestRenderer::GLVSyncTestRenderer( WaveformWidgetRenderer* waveformWidgetRenderer) diff --git a/src/waveform/renderers/glwaveformrendererrgb.cpp b/src/waveform/renderers/glwaveformrendererrgb.cpp index 7620dae200..52a206eb4c 100644 --- a/src/waveform/renderers/glwaveformrendererrgb.cpp +++ b/src/waveform/renderers/glwaveformrendererrgb.cpp @@ -1,12 +1,13 @@ #include "waveform/renderers/glwaveformrendererrgb.h" #if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES_2) -#include "waveformwidgetrenderer.h" +#include "track/track.h" +#include "util/math.h" #include "waveform/waveform.h" #include "waveform/waveformwidgetfactory.h" -#include "widget/wwidget.h" +#include "waveformwidgetrenderer.h" #include "widget/wskincolor.h" -#include "util/math.h" +#include "widget/wwidget.h" GLWaveformRendererRGB::GLWaveformRendererRGB( WaveformWidgetRenderer* waveformWidgetRenderer) diff --git a/src/waveform/renderers/glwaveformrenderersimplesignal.cpp b/src/waveform/renderers/glwaveformrenderersimplesignal.cpp index 3a161f74f9..370b35c5b9 100644 --- a/src/waveform/renderers/glwaveformrenderersimplesignal.cpp +++ b/src/waveform/renderers/glwaveformrenderersimplesignal.cpp @@ -1,6 +1,7 @@ #include "waveform/renderers/glwaveformrenderersimplesignal.h" #if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES_2) +#include "track/track.h" #include "util/math.h" #include "waveform/waveform.h" #include "waveform/waveformwidgetfactory.h" diff --git a/src/waveform/renderers/qtvsynctestrenderer.cpp b/src/waveform/renderers/qtvsynctestrenderer.cpp index 8357703613..340a3f63b5 100644 --- a/src/waveform/renderers/qtvsynctestrenderer.cpp +++ b/src/waveform/renderers/qtvsynctestrenderer.cpp @@ -1,10 +1,11 @@ #include "waveform/renderers/qtvsynctestrenderer.h" +#include "track/track.h" +#include "util/painterscope.h" +#include "util/performancetimer.h" #include "waveform/renderers/waveformwidgetrenderer.h" #include "waveform/waveform.h" #include "waveform/waveformwidgetfactory.h" -#include "util/painterscope.h" -#include "util/performancetimer.h" QtVSyncTestRenderer::QtVSyncTestRenderer( WaveformWidgetRenderer* waveformWidgetRenderer) diff --git a/src/waveform/renderers/waveformwidgetrenderer.cpp b/src/waveform/renderers/waveformwidgetrenderer.cpp index 6483c23914..323c962a84 100644 --- a/src/waveform/renderers/waveformwidgetrenderer.cpp +++ b/src/waveform/renderers/waveformwidgetrenderer.cpp @@ -5,6 +5,7 @@ #include "control/controlobject.h" #include "control/controlproxy.h" +#include "track/track.h" #include "util/math.h" #include "util/performancetimer.h" #include "waveform/visualplayposition.h" diff --git a/src/waveform/renderers/waveformwidgetrenderer.h b/src/waveform/renderers/waveformwidgetrenderer.h index 6be11dca9d..0f28a12fe6 100644 --- a/src/waveform/renderers/waveformwidgetrenderer.h +++ b/src/waveform/renderers/waveformwidgetrenderer.h @@ -6,7 +6,7 @@ #include <QVector> #include <QtDebug> -#include "track/track.h" +#include "track/track_decl.h" #include "util/class.h" #include "util/performancetimer.h" #include "waveform/renderers/waveformmark.h" @@ -15,7 +15,6 @@ //#define WAVEFORMWIDGETRENDERER_DEBUG -class Track; class ControlProxy; class VisualPlayPosition; class VSyncThread; diff --git a/src/widget/wtrackmenu.h b/src/widget/wtrackmenu.h index a822804516..cd898fa5c1 100644 --- a/src/widget/wtrackmenu.h +++ b/src/widget/wtrackmenu.h @@ -5,10 +5,12 @@ #include <QPointer> #include <memory> +#include "library/coverart.h" #include "library/dao/playlistdao.h" #include "library/trackprocessing.h" #include "preferences/usersettings.h" #include "track/trackref.h" +#include "util/color/rgbcolor.h" class ControlProxy; class DlgTagFetcher; |