mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-04-18 22:18:38 -04:00
Button action behavior has been updated for pre-wake. Now, if pre-wake is in progress, the first press, in addition to pressing the front light, disables the pre-wake function.
64 lines
3.3 KiB
C++
64 lines
3.3 KiB
C++
// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#pragma once
|
|
|
|
#include "AlarmOperations.hpp"
|
|
|
|
#include <service-time/AlarmMessage.hpp>
|
|
#include <service-evtmgr/BatteryMessages.hpp>
|
|
#include <Service/Service.hpp>
|
|
|
|
namespace stm
|
|
{
|
|
class ServiceTime;
|
|
}
|
|
|
|
namespace alarms
|
|
{
|
|
class AlarmMessageHandler
|
|
{
|
|
public:
|
|
AlarmMessageHandler(stm::ServiceTime *service, std::unique_ptr<IAlarmOperations> &&alarmOperations);
|
|
|
|
auto handleTimeUpdate(TimePoint time) -> void;
|
|
auto handleGetAlarm(AlarmGetRequestMessage *request) -> std::shared_ptr<AlarmGetResponseMessage>;
|
|
auto handleGetAlarmWithStatus(AlarmGetWithStatusRequestMessage *request)
|
|
-> std::shared_ptr<AlarmGetWithStatusResponseMessage>;
|
|
auto handleAddAlarm(AlarmAddRequestMessage *request) -> std::shared_ptr<AlarmAddResponseMessage>;
|
|
auto handleUpdateAlarm(AlarmUpdateRequestMessage *request) -> std::shared_ptr<AlarmUpdateResponseMessage>;
|
|
auto handleRemoveAlarm(AlarmRemoveRequestMessage *request) -> std::shared_ptr<AlarmRemoveResponseMessage>;
|
|
auto handleGetAlarmsInRange(AlarmsGetInRangeRequestMessage *request)
|
|
-> std::shared_ptr<AlarmsGetInRangeResponseMessage>;
|
|
auto handleGetNextSingleEvents(AlarmGetNextSingleEventsRequestMessage *request)
|
|
-> std::shared_ptr<AlarmGetNextSingleEventsResponseMessage>;
|
|
auto handleTurnOffRingingAlarm(RingingAlarmTurnOffRequestMessage *request)
|
|
-> std::shared_ptr<RingingAlarmTurnOffResponseMessage>;
|
|
auto handleTurnOffSnooze(TurnOffSnoozeRequestMessage *request) -> std::shared_ptr<TurnOffSnoozeResponseMessage>;
|
|
auto handleSnoozeRingingAlarm(RingingAlarmSnoozeRequestMessage *request)
|
|
-> std::shared_ptr<RingingAlarmSnoozeResponseMessage>;
|
|
auto handlePostponeSnooze(PostponeSnoozeRequestMessage *request)
|
|
-> std::shared_ptr<PostponeSnoozeResponseMessage>;
|
|
auto handleMinuteUpdated() -> void;
|
|
auto handleStopAllSnoozedAlarms() -> void;
|
|
auto handleAddSnoozedAlarmCountChangeCallback(AlarmOperationsCommon::OnSnoozedAlarmsCountChange callback)
|
|
-> void;
|
|
auto handleAddActiveAlarmCountChangeCallback(AlarmOperationsCommon::OnActiveAlarmCountChange callback) -> void;
|
|
auto handleToggleAll(AlarmToggleAllRequestMessage *request) -> std::shared_ptr<AlarmToggleAllResponseMessage>;
|
|
auto handleGetSnoozedAlarms(GetSnoozedAlarmsRequestMessage *request)
|
|
-> std::shared_ptr<GetSnoozedAlarmsResponseMessage>;
|
|
auto handleBatteryStateChange(sevm::BatteryStateChangeMessage *request) -> void;
|
|
auto handleTurnOffPreWakeUp(TurnOffPreWakeUpRequestMessage *request)
|
|
-> std::shared_ptr<TurnOffPreWakeUpResponseMessage>;
|
|
|
|
private:
|
|
stm::ServiceTime *service = nullptr;
|
|
std::unique_ptr<IAlarmOperations> alarmOperations;
|
|
|
|
template <class RequestType, class ResponseType, class CallbackParamType>
|
|
auto handleWithCallback(RequestType *request,
|
|
const std::function<void(RequestType *request, std::function<void(CallbackParamType)>)>
|
|
&alarmOperationsCallback) -> std::shared_ptr<ResponseType>;
|
|
};
|
|
} // namespace alarms
|