summaryrefslogtreecommitdiffstats
path: root/src/track/keyfactory.h
blob: 72ce8c873b387badb7be8e0429c499823582a839 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once

#include <QHash>
#include <QString>
#include <QVector>

#include "proto/keys.pb.h"
#include "track/keys.h"

class KeyFactory {
  public:
    static Keys loadKeysFromByteArray(const QString& keysVersion,
                                      const QString& keysSubVersion,
                                      QByteArray* keysSerialized);

    static Keys makeBasicKeys(mixxx::track::io::key::ChromaticKey global_key,
                              mixxx::track::io::key::Source source);

    static Keys makeBasicKeysFromText(const QString& global_key_text,
                                      mixxx::track::io::key::Source source);

    static QString getPreferredVersion();

    static QString getPreferredSubVersion(
        const QHash<QString, QString>& extraVersionInfo);

    static Keys makePreferredKeys(
        const KeyChangeList& key_changes,
        const QHash<QString, QString>& extraVersionInfo,
        const int iSampleRate, const int iTotalSamples);
};