summaryrefslogtreecommitdiff
path: root/media/libjxl/src/tools/flicker_test/parameters.cc
diff options
context:
space:
mode:
Diffstat (limited to 'media/libjxl/src/tools/flicker_test/parameters.cc')
-rw-r--r--media/libjxl/src/tools/flicker_test/parameters.cc87
1 files changed, 87 insertions, 0 deletions
diff --git a/media/libjxl/src/tools/flicker_test/parameters.cc b/media/libjxl/src/tools/flicker_test/parameters.cc
new file mode 100644
index 0000000000..575edb0832
--- /dev/null
+++ b/media/libjxl/src/tools/flicker_test/parameters.cc
@@ -0,0 +1,87 @@
+// Copyright (c) the JPEG XL Project Authors. All rights reserved.
+//
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+#include "tools/flicker_test/parameters.h"
+
+namespace jxl {
+
+namespace {
+
+constexpr char kPathsGroup[] = "paths";
+constexpr char kOriginalFolderKey[] = "originalFolder";
+constexpr char kAlteredFolderKey[] = "alteredFolder";
+constexpr char kOutputFileKey[] = "outputFile";
+
+constexpr char kTimingGroup[] = "timing";
+constexpr char kAdvanceTimeKey[] = "advanceTimeMSecs";
+constexpr char kViewingTimeKey[] = "viewingTimeSecs";
+constexpr char kBlankingTimeKey[] = "blankingTimeMSecs";
+constexpr char kGrayGroup[] = "gray";
+constexpr char kGrayKey[] = "enabled";
+constexpr char kGrayFadingTimeKey[] = "fadingTimeMSecs";
+constexpr char kGrayTimeKey[] = "timeMSecs";
+
+constexpr char kDisplayGroup[] = "display";
+constexpr char kIntensityTargetKey[] = "intensityTarget";
+constexpr char kSpacingKey[] = "spacing";
+
+} // namespace
+
+FlickerTestParameters FlickerTestParameters::loadFrom(
+ QSettings* const settings) {
+ FlickerTestParameters parameters;
+
+ settings->beginGroup(kPathsGroup);
+ parameters.originalFolder = settings->value(kOriginalFolderKey).toString();
+ parameters.alteredFolder = settings->value(kAlteredFolderKey).toString();
+ parameters.outputFile = settings->value(kOutputFileKey).toString();
+ settings->endGroup();
+
+ settings->beginGroup(kTimingGroup);
+ parameters.advanceTimeMSecs = settings->value(kAdvanceTimeKey, 100).toInt();
+ parameters.viewingTimeSecs = settings->value(kViewingTimeKey, 4).toInt();
+ parameters.blankingTimeMSecs = settings->value(kBlankingTimeKey, 250).toInt();
+ settings->beginGroup(kGrayGroup);
+ parameters.gray = settings->value(kGrayKey, false).toBool();
+ parameters.grayFadingTimeMSecs =
+ settings->value(kGrayFadingTimeKey, 100).toInt();
+ parameters.grayTimeMSecs = settings->value(kGrayTimeKey, 300).toInt();
+ settings->endGroup();
+ settings->endGroup();
+
+ settings->beginGroup(kDisplayGroup);
+ parameters.intensityTarget =
+ settings->value(kIntensityTargetKey, 250).toInt();
+ parameters.spacing = settings->value(kSpacingKey, 50).toInt();
+ settings->endGroup();
+
+ return parameters;
+}
+
+void FlickerTestParameters::saveTo(QSettings* const settings) const {
+ settings->beginGroup(kPathsGroup);
+ settings->setValue(kOriginalFolderKey, originalFolder);
+ settings->setValue(kAlteredFolderKey, alteredFolder);
+ settings->setValue(kOutputFileKey, outputFile);
+ settings->endGroup();
+
+ settings->beginGroup(kTimingGroup);
+ settings->setValue(kAdvanceTimeKey, advanceTimeMSecs);
+ settings->setValue(kViewingTimeKey, viewingTimeSecs);
+ settings->setValue(kBlankingTimeKey, blankingTimeMSecs);
+ settings->beginGroup(kGrayGroup);
+ settings->setValue(kGrayKey, gray);
+ settings->setValue(kGrayFadingTimeKey, grayFadingTimeMSecs);
+ settings->setValue(kGrayTimeKey, grayTimeMSecs);
+ settings->endGroup();
+ settings->endGroup();
+
+ settings->beginGroup(kDisplayGroup);
+ settings->setValue(kIntensityTargetKey, intensityTarget);
+ settings->setValue(kSpacingKey, spacing);
+ settings->endGroup();
+}
+
+} // namespace jxl