1 #pragma once 2 3 #include <QHash> 4 5 #include "audio/types.h" 6 #include "track/beats.h" 7 8 class Track; 9 10 class BeatFactory { 11 public: 12 static mixxx::BeatsPointer loadBeatsFromByteArray( 13 mixxx::audio::SampleRate sampleRate, 14 const QString& beatsVersion, 15 const QString& beatsSubVersion, 16 const QByteArray& beatsSerialized); 17 static mixxx::BeatsPointer makeBeatGrid( 18 mixxx::audio::SampleRate sampleRate, 19 double dBpm, 20 double dFirstBeatSample); 21 22 static QString getPreferredVersion(bool fixedTempo); 23 24 static QString getPreferredSubVersion( 25 const QHash<QString, QString>& extraVersionInfo); 26 27 static mixxx::BeatsPointer makePreferredBeats( 28 const QVector<double>& beats, 29 const QHash<QString, QString>& extraVersionInfo, 30 bool fixedTempo, 31 mixxx::audio::SampleRate sampleRate); 32 }; 33