#ifndef ANALYZER_ANALYZERKEY_H #define ANALYZER_ANALYZERKEY_H #include #include #include #include "analyzer/analyzer.h" #include "analyzer/plugins/analyzerplugin.h" #include "preferences/keydetectionsettings.h" #include "preferences/usersettings.h" #include "track/track.h" #include "util/memory.h" class AnalyzerKey : public Analyzer { public: explicit AnalyzerKey(KeyDetectionSettings keySettings); ~AnalyzerKey() override = default; static QList availablePlugins(); bool initialize(TrackPointer tio, int sampleRate, int totalSamples) override; bool isDisabledOrLoadStoredSuccess(TrackPointer tio) const override; void process(const CSAMPLE *pIn, const int iLen) override; void finalize(TrackPointer tio) override; void cleanup(TrackPointer tio) override; private: static QHash getExtraVersionInfo( QString pluginId, bool bPreferencesFastAnalysis); KeyDetectionSettings m_keySettings; std::unique_ptr m_pPlugin; QString m_pluginId; int m_iSampleRate; int m_iTotalSamples; int m_iMaxSamplesToProcess; int m_iCurrentSample; bool m_bPreferencesKeyDetectionEnabled; bool m_bPreferencesFastAnalysisEnabled; bool m_bPreferencesReanalyzeEnabled; }; #endif /* ANALYZER_ANALYZERKEY_H */