• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef ROSEN_RENDER_SERVICE_BASE_RS_VARIABLE_FRAME_RATE_H
17 #define ROSEN_RENDER_SERVICE_BASE_RS_VARIABLE_FRAME_RATE_H
18 
19 #include <vector>
20 #include <parcel.h>
21 #include <message_parcel.h>
22 
23 #include "common/rs_macros.h"
24 
25 namespace OHOS {
26 namespace Rosen {
27 
28 // Used for refresh rate decisions in the HGM module
29 struct EventInfo {
30     std::string eventName;   // unique ID assigned by HGM, e.g."VOTER_THERMAL"
31     bool eventStatus;        // true-enter, false-exit
32     uint32_t minRefreshRate; // the desired min refresh rate, e.g.60
33     uint32_t maxRefreshRate; // the desired max refresh rate, e.g.120
34     std::string description; // the extend description for eventName,e.g."SCENE_APP_START_ANIMATION"
35 
SerializeEventInfo36     bool Serialize(MessageParcel& parcel) const
37     {
38         if (!parcel.WriteString(eventName)) {
39             return false;
40         }
41         if (!parcel.WriteBool(eventStatus)) {
42             return false;
43         }
44         if (!parcel.WriteUint32(minRefreshRate)) {
45             return false;
46         }
47         if (!parcel.WriteUint32(maxRefreshRate)) {
48             return false;
49         }
50         if (!parcel.WriteString(description)) {
51             return false;
52         }
53         return true;
54     }
55 
DeserializeEventInfo56     static bool Deserialize(MessageParcel& parcel, EventInfo& info)
57     {
58         if (!parcel.ReadString(info.eventName)) {
59             return false;
60         }
61         if (!parcel.ReadBool(info.eventStatus)) {
62             return false;
63         }
64         if (!parcel.ReadUint32(info.minRefreshRate)) {
65             return false;
66         }
67         if (!parcel.ReadUint32(info.maxRefreshRate)) {
68             return false;
69         }
70         if (!parcel.ReadString(info.description)) {
71             return false;
72         }
73         return true;
74     }
75 };
76 
77 } // namespace Rosen
78 } // namespace OHOS
79 
80 #endif
81