display_settings_manager.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef CHROMECAST_UI_DISPLAY_SETTINGS_MANAGER_H_
  5. #define CHROMECAST_UI_DISPLAY_SETTINGS_MANAGER_H_
  6. #include <vector>
  7. #include "chromecast/ui/mojom/display_settings.mojom.h"
  8. #include "mojo/public/cpp/bindings/pending_receiver.h"
  9. #include "ui/display/types/gamma_ramp_rgb_entry.h"
  10. namespace chromecast {
  11. class DisplaySettingsManager {
  12. public:
  13. struct ColorTemperatureConfig {
  14. ColorTemperatureConfig();
  15. ColorTemperatureConfig(const ColorTemperatureConfig& other);
  16. ~ColorTemperatureConfig();
  17. float neutral_temperature;
  18. float full_color;
  19. std::vector<float> temperature_values;
  20. std::vector<float> red_values;
  21. std::vector<float> green_values;
  22. std::vector<float> blue_values;
  23. };
  24. class Delegate {
  25. public:
  26. virtual void SetDisplayBrightness(float brightness, bool smooth) = 0;
  27. virtual float GetDisplayBrightness() = 0;
  28. protected:
  29. virtual ~Delegate() {}
  30. };
  31. virtual ~DisplaySettingsManager() = default;
  32. virtual void SetDelegate(Delegate* delegate) = 0;
  33. virtual void SetColorTemperatureConfig(
  34. const ColorTemperatureConfig& config) = 0;
  35. virtual void ResetDelegate() = 0;
  36. virtual void SetGammaCalibration(
  37. const std::vector<display::GammaRampRGBEntry>& gamma) = 0;
  38. virtual void NotifyBrightnessChanged(float new_brightness,
  39. float old_brightness) = 0;
  40. virtual void SetColorInversion(bool enable) = 0;
  41. virtual void AddReceiver(
  42. mojo::PendingReceiver<mojom::DisplaySettings> receiver) = 0;
  43. };
  44. } // namespace chromecast
  45. #endif // CHROMECAST_UI_DISPLAY_SETTINGS_MANAGER_H_