~aleteoryx/muditaos

ref: f2381600d5ade802e6de3b75d21a3c308e42a534 muditaos/module-services/service-evtmgr/service-evtmgr/ScreenLightControlMessage.hpp -rw-r--r-- 3.2 KiB
f2381600 — Pawel Olejniczak [EGD-7697] Change deafult bt device name to Mudita Pure 4 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include <service-evtmgr/screen-light-control/ScreenLightControlParameters.hpp>

#include <Service/Message.hpp>
#include <Service/Service.hpp>
#include <utility>

namespace sevm
{
    class ScreenLightControlMessage : public sys::DataMessage
    {
        const screen_light_control::Action action;

      public:
        explicit ScreenLightControlMessage(screen_light_control::Action act)
            : sys::DataMessage(MessageType::ScreenLightControlAction), action(act)
        {}

        [[nodiscard]] auto getAction() const noexcept -> screen_light_control::Action
        {
            return action;
        }
    };

    class ScreenLightSetAutoModeParams : public ScreenLightControlMessage
    {
        screen_light_control::AutomaticModeParameters params;

      public:
        explicit ScreenLightSetAutoModeParams(screen_light_control::AutomaticModeParameters params)
            : ScreenLightControlMessage(screen_light_control::Action::setAutomaticModeParameters), params{std::move(
                                                                                                       params)}
        {}

        [[nodiscard]] auto getParams() const noexcept -> const screen_light_control::AutomaticModeParameters &
        {
            return params;
        }
    };

    class ScreenLightSetManualModeParams : public ScreenLightControlMessage
    {
        screen_light_control::ManualModeParameters params;

      public:
        explicit ScreenLightSetManualModeParams(screen_light_control::ManualModeParameters params)
            : ScreenLightControlMessage(screen_light_control::Action::setManualModeBrightness), params{params}
        {}

        [[nodiscard]] auto getParams() const noexcept -> screen_light_control::ManualModeParameters
        {
            return params;
        }
    };

    class ScreenLightControlRequestParameters : public sys::DataMessage
    {
      public:
        ScreenLightControlRequestParameters() : sys::DataMessage(MessageType::ScreenLightControlParameters)
        {}
    };

    class ScreenLightControlParametersResponse : public sys::DataMessage
    {
        bool lightOn;
        screen_light_control::ScreenLightMode mode;
        screen_light_control::ManualModeParameters parameters;

      public:
        ScreenLightControlParametersResponse(bool lightOn,
                                             screen_light_control::ScreenLightMode mode,
                                             screen_light_control::ManualModeParameters params)
            : sys::DataMessage(MessageType::ScreenLightControlParametersResponse), lightOn(lightOn), mode(mode),
              parameters(params)
        {}

        [[nodiscard]] bool isLightOn() const noexcept
        {
            return lightOn;
        }
        [[nodiscard]] auto getMode() const noexcept -> screen_light_control::ScreenLightMode
        {
            return mode;
        }
        [[nodiscard]] auto getParams() const noexcept -> screen_light_control::ManualModeParameters
        {
            return parameters;
        }
    };
} // namespace sevm