chromium/chrome/browser/ash/power/auto_screen_brightness/model_config.h

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_ASH_POWER_AUTO_SCREEN_BRIGHTNESS_MODEL_CONFIG_H_
#define CHROME_BROWSER_ASH_POWER_AUTO_SCREEN_BRIGHTNESS_MODEL_CONFIG_H_

#include <memory>
#include <string>
#include <vector>

namespace ash {
namespace power {
namespace auto_screen_brightness {

// Model customization config.
struct ModelConfig {
  double auto_brightness_als_horizon_seconds = -1.0;
  bool enabled = false;
  std::vector<double> log_lux;
  std::vector<double> brightness;
  std::string metrics_key;
  double model_als_horizon_seconds = -1.0;

  ModelConfig();
  ModelConfig(const ModelConfig& config);
  ~ModelConfig();

  bool operator==(const ModelConfig& config) const;
};

bool IsValidModelConfig(const ModelConfig& model_config);

}  // namespace auto_screen_brightness
}  // namespace power
}  // namespace ash

#endif  // CHROME_BROWSER_ASH_POWER_AUTO_SCREEN_BRIGHTNESS_MODEL_CONFIG_H_