summaryrefslogtreecommitdiffstats
path: root/src/analyzer/analyzerprogress.h
diff options
context:
space:
mode:
authorUwe Klotz <uklotz@mixxx.org>2018-04-18 16:39:07 +0200
committerUwe Klotz <uklotz@mixxx.org>2018-10-30 23:26:56 +0100
commitc236956884e3c7b9a47536f98eb7eb5a126a26e4 (patch)
tree85ea9323501bb2f5176c35679e2307e50eeed49c /src/analyzer/analyzerprogress.h
parentdb7fe92a9a5c63e0d9b6f0fe6f1ad379f2b0b46a (diff)
Fix and enable multi-threaded analysis
Diffstat (limited to 'src/analyzer/analyzerprogress.h')
-rw-r--r--src/analyzer/analyzerprogress.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/analyzer/analyzerprogress.h b/src/analyzer/analyzerprogress.h
new file mode 100644
index 0000000000..b9b5673245
--- /dev/null
+++ b/src/analyzer/analyzerprogress.h
@@ -0,0 +1,22 @@
+#pragma once
+
+#include "util/math.h"
+
+
+typedef double AnalyzerProgress;
+
+constexpr AnalyzerProgress kAnalyzerProgressUnknown = -1.0;
+constexpr AnalyzerProgress kAnalyzerProgressNone = 0.0; // 0.0 %
+constexpr AnalyzerProgress kAnalyzerProgressHalf = 0.5; // 50.0 %
+constexpr AnalyzerProgress kAnalyzerProgressFinalizing = 0.95; // 95.0 %
+constexpr AnalyzerProgress kAnalyzerProgressDone = 1.0; // 100.0%
+
+Q_DECLARE_METATYPE(AnalyzerProgress);
+
+// Integer [0, 100]
+inline
+int analyzerProgressPercent(AnalyzerProgress analyzerProgress) {
+ DEBUG_ASSERT(analyzerProgress >= kAnalyzerProgressNone);
+ return int((100 * (math_min(analyzerProgress, kAnalyzerProgressDone) - kAnalyzerProgressNone)) /
+ (kAnalyzerProgressDone - kAnalyzerProgressNone));
+}