diff options
Diffstat (limited to 'src/track/cueinfoimporter.h')
-rw-r--r-- | src/track/cueinfoimporter.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/track/cueinfoimporter.h b/src/track/cueinfoimporter.h new file mode 100644 index 0000000000..c2f3648184 --- /dev/null +++ b/src/track/cueinfoimporter.h @@ -0,0 +1,40 @@ +#pragma once + +#include <memory> + +#include "track/cueinfo.h" + +namespace mixxx { + +/// Importer class for CueInfo objects that can correct timing offsets when the +/// signal info (channel number, sample rate, bitrate) is known. +class CueInfoImporter { + public: + CueInfoImporter() = default; + explicit CueInfoImporter(const QList<CueInfo>& cueInfos); + virtual ~CueInfoImporter() = default; + + /// Returns audio signal dependent timing offset correction. + /// The default implementation just returns 0, but this can be overridden + /// in subclasses. + virtual double guessTimingOffsetMillis( + const QString& filePath, + const audio::SignalInfo& signalInfo) const; + + void append(const CueInfo& cueInfo); + void append(const QList<CueInfo>& cueInfos); + + int size() const; + bool isEmpty() const; + + QList<CueInfo> importCueInfosWithCorrectTiming( + const QString& filePath, + const audio::SignalInfo& signalInfo); + + private: + QList<CueInfo> m_cueInfos; +}; + +typedef std::shared_ptr<CueInfoImporter> CueInfoImporterPointer; + +} // namespace mixxx |