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 #undef LOG_TAG
24 #define LOG_TAG "ueaClient-FrameUiIntf"
25
26 namespace OHOS {
27 namespace RME {
28
GetInstance()29 FrameUiIntf& FrameUiIntf::GetInstance()
30 {
31 static FrameUiIntf instance;
32 return instance;
33 }
34
Init()35 void FrameUiIntf::Init()
36 {
37 if (inited) {
38 return;
39 }
40 int ret = FrameMsgMgr::GetInstance().Init();
41 if (!ret) {
42 inited = false;
43 } else {
44 inited = true;
45 }
46 RME_LOGI("[Init]:ret:%{public}d, inited:%{public}d", ret, inited);
47 }
48
GetSenseSchedEnable()49 int FrameUiIntf::GetSenseSchedEnable()
50 {
51 if (!inited) {
52 return static_cast<int>(ErrorCode::FAIL);
53 }
54 return static_cast<int>(ErrorCode::SUCC);
55 }
56
BeginFlushAnimation() const57 void FrameUiIntf::BeginFlushAnimation() const
58 {
59 if (!inited) {
60 return;
61 }
62 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_ANIMATION_START);
63 }
64
EndFlushAnimation() const65 void FrameUiIntf::EndFlushAnimation() const
66 {
67 if (!inited) {
68 return;
69 }
70 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_ANIMATION_END);
71 }
72
BeginFlushBuild() const73 void FrameUiIntf::BeginFlushBuild() const
74 {
75 if (!inited) {
76 return;
77 }
78 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_BUILD_START);
79 }
80
EndFlushBuild() const81 void FrameUiIntf::EndFlushBuild() const
82 {
83 if (!inited) {
84 return;
85 }
86 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_BUILD_END);
87 }
88
BeginFlushLayout() const89 void FrameUiIntf::BeginFlushLayout() const
90 {
91 if (!inited) {
92 return;
93 }
94 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_LAYOUT_START);
95 }
96
EndFlushLayout() const97 void FrameUiIntf::EndFlushLayout() const
98 {
99 if (!inited) {
100 return;
101 }
102 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_LAYOUT_END);
103 }
104
BeginFlushRender() const105 void FrameUiIntf::BeginFlushRender() const
106 {
107 if (!inited) {
108 return;
109 }
110 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_RENDER_START);
111 }
112
EndFlushRender() const113 void FrameUiIntf::EndFlushRender() const
114 {
115 if (!inited) {
116 return;
117 }
118 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_RENDER_END);
119 }
120
BeginFlushRenderFinish() const121 void FrameUiIntf::BeginFlushRenderFinish() const
122 {
123 if (!inited) {
124 return;
125 }
126 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_RENDER_FINISH_START);
127 }
128
EndFlushRenderFinish() const129 void FrameUiIntf::EndFlushRenderFinish() const
130 {
131 if (!inited) {
132 return;
133 }
134 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_FLUSH_RENDER_FINISH_END);
135 }
136
BeginProcessPostFlush() const137 void FrameUiIntf::BeginProcessPostFlush() const
138 {
139 if (!inited) {
140 return;
141 }
142 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_PROCESS_POST_FLUSH_START);
143 }
144
ProcessCommandsStart() const145 void FrameUiIntf::ProcessCommandsStart() const
146 {
147 if (!inited) {
148 return;
149 }
150 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_PROCESS_COMMANDS_START);
151 }
152
AnimateStart() const153 void FrameUiIntf::AnimateStart() const
154 {
155 if (!inited) {
156 return;
157 }
158 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_ANIMATE_START);
159 }
160
RenderStart(uint64_t timestamp) const161 void FrameUiIntf::RenderStart(uint64_t timestamp) const
162 {
163 if (!inited) {
164 return;
165 }
166 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_RENDER_START);
167 }
168
RenderEnd() const169 void FrameUiIntf::RenderEnd() const
170 {
171 return;
172 }
173
SendCommandsStart() const174 void FrameUiIntf::SendCommandsStart() const
175 {
176 if (!inited) {
177 return;
178 }
179 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_SEND_COMMANDS_START);
180 }
181
BeginListFling() const182 void FrameUiIntf::BeginListFling() const
183 {
184 if (!inited) {
185 return;
186 }
187 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_BEGIN_FRAME);
188 }
189
EndListFling() const190 void FrameUiIntf::EndListFling() const
191 {
192 if (!inited) {
193 return;
194 }
195 FrameMsgMgr::GetInstance().EventUpdate(FrameEvent::EVENT_END_FRAME);
196 }
197
FlushBegin() const198 void FrameUiIntf::FlushBegin() const
199 {
200 return;
201 }
202
FlushEnd() const203 void FrameUiIntf::FlushEnd() const
204 {
205 return;
206 }
207
SetFrameParam(int requestId,int load,int schedFrameNum,int value) const208 void FrameUiIntf::SetFrameParam(int requestId, int load, int schedFrameNum, int value) const
209 {
210 return;
211 }
212
RequestNextVSync() const213 void FrameUiIntf::RequestNextVSync() const
214 {
215 return;
216 }
217
HandleSwapBuffer() const218 void FrameUiIntf::HandleSwapBuffer() const
219 {
220 return;
221 }
222
EnableSelfRender() const223 void FrameUiIntf::EnableSelfRender() const
224 {
225 return;
226 }
227
DisableSelfRender() const228 void FrameUiIntf::DisableSelfRender() const
229 {
230 return;
231 }
232
ReceiveVSync() const233 void FrameUiIntf::ReceiveVSync() const
234 {
235 return;
236 }
237
MonitorGpuStart(uint32_t fenceId) const238 void FrameUiIntf::MonitorGpuStart(uint32_t fenceId) const
239 {
240 return;
241 }
242
MonitorGpuEnd() const243 void FrameUiIntf::MonitorGpuEnd() const
244 {
245 return;
246 }
247
SendFenceId(uint32_t fenceId) const248 void FrameUiIntf::SendFenceId(uint32_t fenceId) const
249 {
250 return;
251 }
252
ReportSchedEvent(FrameSchedEvent event,const std::unordered_map<std::string,std::string> & payload)253 void FrameUiIntf::ReportSchedEvent(FrameSchedEvent event, const std::unordered_map<std::string, std::string>& payload)
254 {
255 return;
256 }
257
Init()258 extern "C" void Init()
259 {
260 FrameUiIntf::GetInstance().Init();
261 }
262
GetSenseSchedEnable()263 extern "C" int GetSenseSchedEnable()
264 {
265 return FrameUiIntf::GetInstance().GetSenseSchedEnable();
266 }
267
BeginFlushAnimation()268 extern "C" void BeginFlushAnimation()
269 {
270 FrameUiIntf::GetInstance().BeginFlushAnimation();
271 }
272
EndFlushAnimation()273 extern "C" void EndFlushAnimation()
274 {
275 FrameUiIntf::GetInstance().EndFlushAnimation();
276 }
277
BeginFlushBuild()278 extern "C" void BeginFlushBuild()
279 {
280 FrameUiIntf::GetInstance().BeginFlushBuild();
281 }
282
EndFlushBuild()283 extern "C" void EndFlushBuild()
284 {
285 FrameUiIntf::GetInstance().EndFlushBuild();
286 }
287
BeginFlushLayout()288 extern "C" void BeginFlushLayout()
289 {
290 FrameUiIntf::GetInstance().BeginFlushLayout();
291 }
292
EndFlushLayout()293 extern "C" void EndFlushLayout()
294 {
295 FrameUiIntf::GetInstance().EndFlushLayout();
296 }
297
BeginFlushRender()298 extern "C" void BeginFlushRender()
299 {
300 FrameUiIntf::GetInstance().BeginFlushRender();
301 }
302
EndFlushRender()303 extern "C" void EndFlushRender()
304 {
305 FrameUiIntf::GetInstance().EndFlushRender();
306 }
307
BeginFlushRenderFinish()308 extern "C" void BeginFlushRenderFinish()
309 {
310 FrameUiIntf::GetInstance().BeginFlushRenderFinish();
311 }
312
EndFlushRenderFinish()313 extern "C" void EndFlushRenderFinish()
314 {
315 FrameUiIntf::GetInstance().EndFlushRenderFinish();
316 }
317
BeginProcessPostFlush()318 extern "C" void BeginProcessPostFlush()
319 {
320 FrameUiIntf::GetInstance().BeginProcessPostFlush();
321 }
322
ProcessCommandsStart()323 extern "C" void ProcessCommandsStart()
324 {
325 FrameUiIntf::GetInstance().ProcessCommandsStart();
326 }
327
AnimateStart()328 extern "C" void AnimateStart()
329 {
330 FrameUiIntf::GetInstance().AnimateStart();
331 }
332
RenderStart(uint64_t timestamp)333 extern "C" void RenderStart(uint64_t timestamp)
334 {
335 FrameUiIntf::GetInstance().RenderStart(timestamp);
336 }
337
RenderEnd()338 extern "C" void RenderEnd()
339 {
340 FrameUiIntf::GetInstance().RenderEnd();
341 }
342
SendCommandsStart()343 extern "C" void SendCommandsStart()
344 {
345 FrameUiIntf::GetInstance().SendCommandsStart();
346 }
347
BeginListFling()348 extern "C" void BeginListFling()
349 {
350 FrameUiIntf::GetInstance().BeginListFling();
351 }
352
EndListFling()353 extern "C" void EndListFling()
354 {
355 FrameUiIntf::GetInstance().EndListFling();
356 }
357
FlushBegin()358 extern "C" void FlushBegin()
359 {
360 FrameUiIntf::GetInstance().FlushBegin();
361 }
362
FlushEnd()363 extern "C" void FlushEnd()
364 {
365 FrameUiIntf::GetInstance().FlushEnd();
366 }
367
SetFrameParam(int requestId,int load,int schedFrameNum,int value)368 extern "C" void SetFrameParam(int requestId, int load, int schedFrameNum, int value)
369 {
370 FrameUiIntf::GetInstance().SetFrameParam(requestId, load, schedFrameNum, value);
371 }
372
RequestNextVSync()373 extern "C" void RequestNextVSync()
374 {
375 FrameUiIntf::GetInstance().RequestNextVSync();
376 }
377
HandleSwapBuffer()378 extern "C" void HandleSwapBuffer()
379 {
380 FrameUiIntf::GetInstance().HandleSwapBuffer();
381 }
382
EnableSelfRender()383 extern "C" void EnableSelfRender()
384 {
385 FrameUiIntf::GetInstance().EnableSelfRender();
386 }
387
DisableSelfRender()388 extern "C" void DisableSelfRender()
389 {
390 FrameUiIntf::GetInstance().DisableSelfRender();
391 }
392
ReceiveVSync()393 extern "C" void ReceiveVSync()
394 {
395 FrameUiIntf::GetInstance().ReceiveVSync();
396 }
397
MonitorGpuStart(uint32_t fenceId)398 extern "C" void MonitorGpuStart(uint32_t fenceId)
399 {
400 FrameUiIntf::GetInstance().MonitorGpuStart(fenceId);
401 }
402
MonitorGpuEnd()403 extern "C" void MonitorGpuEnd()
404 {
405 FrameUiIntf::GetInstance().MonitorGpuEnd();
406 }
407
SendFenceId(uint32_t fenceId)408 extern "C" void SendFenceId(uint32_t fenceId)
409 {
410 FrameUiIntf::GetInstance().SendFenceId(fenceId);
411 }
412
IsScbScene()413 extern "C" bool IsScbScene()
414 {
415 return false;
416 }
417
ReportSchedEvent(FrameSchedEvent event,const std::unordered_map<std::string,std::string> & payload)418 extern "C" void ReportSchedEvent(FrameSchedEvent event, const std::unordered_map<std::string, std::string>& payload)
419 {
420 FrameUiIntf::GetInstance().ReportSchedEvent(event, payload);
421 }
422 } // namespace RME
423 } // namespace OHOS
424