#pragma once #include #include "track/beats.h" class Track; class BeatFactory { public: static mixxx::BeatsPointer loadBeatsFromByteArray(const Track& track, const QString& beatsVersion, const QString& beatsSubVersion, const QByteArray& beatsSerialized); static mixxx::BeatsPointer makeBeatGrid(const Track& track, double dBpm, double dFirstBeatSample); static QString getPreferredVersion(const bool bEnableFixedTempoCorrection); static QString getPreferredSubVersion( const bool bEnableFixedTempoCorrection, const bool bEnableOffsetCorrection, const int iMinBpm, const int iMaxBpm, const QHash& extraVersionInfo); static mixxx::BeatsPointer makePreferredBeats(const Track& track, const QVector& beats, const QHash& extraVersionInfo, const bool bEnableFixedTempoCorrection, const bool bEnableOffsetCorrection, const int iSampleRate, const int iTotalSamples, const int iMinBpm, const int iMaxBpm); private: static void deleteBeats(mixxx::Beats* pBeats); };