battery_saving.cpp 740 B

123456789101112131415161718192021222324252627282930
  1. // This file is part of Desktop App Toolkit,
  2. // a set of libraries for developing nice desktop applications.
  3. //
  4. // For license and copyright information please follow this link:
  5. // https://github.com/desktop-app/legal/blob/master/LEGAL
  6. //
  7. #include "base/battery_saving.h"
  8. namespace base {
  9. BatterySaving::BatterySaving()
  10. : _helper(Platform::CreateBatterySaving([=] {
  11. _value = _helper->enabled();
  12. }))
  13. , _value(_helper->enabled()) {
  14. }
  15. BatterySaving::~BatterySaving() = default;
  16. std::optional<bool> BatterySaving::enabled() const {
  17. return _value.current();
  18. }
  19. rpl::producer<bool> BatterySaving::value() const {
  20. return _value.value() | rpl::map([=](std::optional<bool> maybe) {
  21. return maybe.value_or(false);
  22. });
  23. }
  24. } // namespace base