// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include #include #include "SystemManager/Constants.hpp" #include "SystemManager/data/SystemManagerActionsParams.hpp" #include namespace sys { class SystemManagerMessage : public sys::DataMessage { public: SystemManagerMessage() : sys::DataMessage(MessageType::PMChangePowerMode){}; }; class CriticalBatteryLevelNotification : public sys::Message, public app::manager::actions::ConvertibleToAction { public: explicit CriticalBatteryLevelNotification(bool isActive) : sys::Message(), isActive(isActive) {} [[nodiscard]] auto toAction() const -> std::unique_ptr { return std::make_unique( service::name::system_manager, app::manager::actions::DisplayLowBatteryNotification, std::make_unique(isActive)); } private: bool isActive; }; class SystemBrownoutMesssage : public sys::Message, public app::manager::actions::ConvertibleToAction { public: [[nodiscard]] auto toAction() const -> std::unique_ptr { return std::make_unique( service::name::system_manager, app::manager::actions::SystemBrownout, nullptr); } }; } // namespace sys