1 /*
2 * Copyright (c) 2022 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 #include "frame_ui_intf.h"
17
18 #include "frame_info_const.h"
19 #include "rme_constants.h"
20 #include "frame_msg_mgr.h"
21 #include "rme_log_domain.h"
22
23 namespace OHOS {
24 namespace RME {
25 DEFINE_RMELOG_INTELLISENSE("ueaClient-FrameUiIntf");
26
GetInstance()27 FrameUiIntf& FrameUiIntf::GetInstance()
28 {
29 static FrameUiIntf instance;
30 return instance;
31 }
32
Init()33 void FrameUiIntf::Init()
34 {
35 if (inited) {
36 return;
37 }
38 int ret = FrameMsgMgr::GetInstance().Init();
39 if (!ret) {
40 inited = false;
41 } else {
42 inited = true;
43 }
44 RME_LOGI("[Init]:ret:%{public}d, inited:%{public}d", ret, inited);
45 }
46
GetSenseSchedEnable()47 int FrameUiIntf::GetSenseSchedEnable()
48 {
49 if (!inited) {
50 return static_cast<int>(ErrorCode::FAIL);
51 }
52 return static_cast<int>(ErrorCode::SUCC);
53 }
54
BeginFlushAnimation() const55 void FrameUiIntf::BeginFlushAnimation() const
56 {
57 if (!inited) {
58 return;
59 }
60 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_ANIMATION_START);
61 }
62
EndFlushAnimation() const63 void FrameUiIntf::EndFlushAnimation() const
64 {
65 if (!inited) {
66 return;
67 }
68 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_ANIMATION_END);
69 }
70
BeginFlushBuild() const71 void FrameUiIntf::BeginFlushBuild() const
72 {
73 if (!inited) {
74 return;
75 }
76 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_BUILD_START);
77 }
78
EndFlushBuild() const79 void FrameUiIntf::EndFlushBuild() const
80 {
81 if (!inited) {
82 return;
83 }
84 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_BUILD_END);
85 }
86
BeginFlushLayout() const87 void FrameUiIntf::BeginFlushLayout() const
88 {
89 if (!inited) {
90 return;
91 }
92 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_LAYOUT_START);
93 }
94
EndFlushLayout() const95 void FrameUiIntf::EndFlushLayout() const
96 {
97 if (!inited) {
98 return;
99 }
100 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_LAYOUT_END);
101 }
102
BeginFlushRender() const103 void FrameUiIntf::BeginFlushRender() const
104 {
105 if (!inited) {
106 return;
107 }
108 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_RENDER_START);
109 }
110
EndFlushRender() const111 void FrameUiIntf::EndFlushRender() const
112 {
113 if (!inited) {
114 return;
115 }
116 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_RENDER_END);
117 }
118
BeginFlushRenderFinish() const119 void FrameUiIntf::BeginFlushRenderFinish() const
120 {
121 if (!inited) {
122 return;
123 }
124 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_RENDER_FINISH_START);
125 }
126
EndFlushRenderFinish() const127 void FrameUiIntf::EndFlushRenderFinish() const
128 {
129 if (!inited) {
130 return;
131 }
132 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_RENDER_FINISH_END);
133 }
134
BeginProcessPostFlush() const135 void FrameUiIntf::BeginProcessPostFlush() const
136 {
137 if (!inited) {
138 return;
139 }
140 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_PROCESS_POST_FLUSH_START);
141 }
142
ProcessCommandsStart() const143 void FrameUiIntf::ProcessCommandsStart() const
144 {
145 if (!inited) {
146 return;
147 }
148 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_PROCESS_COMMANDS_START);
149 }
150
AnimateStart() const151 void FrameUiIntf::AnimateStart() const
152 {
153 if (!inited) {
154 return;
155 }
156 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_ANIMATE_START);
157 }
158
RenderStart(uint64_t timestamp) const159 void FrameUiIntf::RenderStart(uint64_t timestamp) const
160 {
161 if (!inited) {
162 return;
163 }
164 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_RENDER_START);
165 }
166
RenderEnd() const167 void FrameUiIntf::RenderEnd() const
168 {
169 return;
170 }
171
SendCommandsStart() const172 void FrameUiIntf::SendCommandsStart() const
173 {
174 if (!inited) {
175 return;
176 }
177 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_SEND_COMMANDS_START);
178 }
179
BeginListFling() const180 void FrameUiIntf::BeginListFling() const
181 {
182 if (!inited) {
183 return;
184 }
185 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_BEGIN_FRAME);
186 }
187
EndListFling() const188 void FrameUiIntf::EndListFling() const
189 {
190 if (!inited) {
191 return;
192 }
193 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_END_FRAME);
194 }
195
FlushBegin() const196 void FrameUiIntf::FlushBegin() const
197 {
198 return;
199 }
200
FlushEnd() const201 void FrameUiIntf::FlushEnd() const
202 {
203 return;
204 }
205
SetFrameParam(int requestId,int load,int schedFrameNum,int value) const206 void FrameUiIntf::SetFrameParam(int requestId, int load, int schedFrameNum, int value) const
207 {
208 return;
209 }
210
Init()211 extern "C" void Init()
212 {
213 FrameUiIntf::GetInstance().Init();
214 }
215
GetSenseSchedEnable()216 extern "C" int GetSenseSchedEnable()
217 {
218 return FrameUiIntf::GetInstance().GetSenseSchedEnable();
219 }
220
BeginFlushAnimation()221 extern "C" void BeginFlushAnimation()
222 {
223 FrameUiIntf::GetInstance().BeginFlushAnimation();
224 }
225
EndFlushAnimation()226 extern "C" void EndFlushAnimation()
227 {
228 FrameUiIntf::GetInstance().EndFlushAnimation();
229 }
230
BeginFlushBuild()231 extern "C" void BeginFlushBuild()
232 {
233 FrameUiIntf::GetInstance().BeginFlushBuild();
234 }
235
EndFlushBuild()236 extern "C" void EndFlushBuild()
237 {
238 FrameUiIntf::GetInstance().EndFlushBuild();
239 }
240
BeginFlushLayout()241 extern "C" void BeginFlushLayout()
242 {
243 FrameUiIntf::GetInstance().BeginFlushLayout();
244 }
245
EndFlushLayout()246 extern "C" void EndFlushLayout()
247 {
248 FrameUiIntf::GetInstance().EndFlushLayout();
249 }
250
BeginFlushRender()251 extern "C" void BeginFlushRender()
252 {
253 FrameUiIntf::GetInstance().BeginFlushRender();
254 }
255
EndFlushRender()256 extern "C" void EndFlushRender()
257 {
258 FrameUiIntf::GetInstance().EndFlushRender();
259 }
260
BeginFlushRenderFinish()261 extern "C" void BeginFlushRenderFinish()
262 {
263 FrameUiIntf::GetInstance().BeginFlushRenderFinish();
264 }
265
EndFlushRenderFinish()266 extern "C" void EndFlushRenderFinish()
267 {
268 FrameUiIntf::GetInstance().EndFlushRenderFinish();
269 }
270
BeginProcessPostFlush()271 extern "C" void BeginProcessPostFlush()
272 {
273 FrameUiIntf::GetInstance().BeginProcessPostFlush();
274 }
275
ProcessCommandsStart()276 extern "C" void ProcessCommandsStart()
277 {
278 FrameUiIntf::GetInstance().ProcessCommandsStart();
279 }
280
AnimateStart()281 extern "C" void AnimateStart()
282 {
283 FrameUiIntf::GetInstance().AnimateStart();
284 }
285
RenderStart(uint64_t timestamp)286 extern "C" void RenderStart(uint64_t timestamp)
287 {
288 FrameUiIntf::GetInstance().RenderStart(timestamp);
289 }
290
RenderEnd()291 extern "C" void RenderEnd()
292 {
293 FrameUiIntf::GetInstance().RenderEnd();
294 }
295
SendCommandsStart()296 extern "C" void SendCommandsStart()
297 {
298 FrameUiIntf::GetInstance().SendCommandsStart();
299 }
300
BeginListFling()301 extern "C" void BeginListFling()
302 {
303 FrameUiIntf::GetInstance().BeginListFling();
304 }
305
EndListFling()306 extern "C" void EndListFling()
307 {
308 FrameUiIntf::GetInstance().EndListFling();
309 }
310
FlushBegin()311 extern "C" void FlushBegin()
312 {
313 FrameUiIntf::GetInstance().FlushBegin();
314 }
315
FlushEnd()316 extern "C" void FlushEnd()
317 {
318 FrameUiIntf::GetInstance().FlushEnd();
319 }
320
SetFrameParam(int requestId,int load,int schedFrameNum,int value)321 extern "C" void SetFrameParam(int requestId, int load, int schedFrameNum, int value)
322 {
323 FrameUiIntf::GetInstance().SetFrameParam(requestId, load, schedFrameNum, value);
324 }
325 } // namespace RME
326 } // namespace OHOS
327