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() const238 void FrameUiIntf::MonitorGpuStart() const
239 {
240 return;
241 }
242
MonitorGpuEnd() const243 void FrameUiIntf::MonitorGpuEnd() const
244 {
245 return;
246 }
247
Init()248 extern "C" void Init()
249 {
250 FrameUiIntf::GetInstance().Init();
251 }
252
GetSenseSchedEnable()253 extern "C" int GetSenseSchedEnable()
254 {
255 return FrameUiIntf::GetInstance().GetSenseSchedEnable();
256 }
257
BeginFlushAnimation()258 extern "C" void BeginFlushAnimation()
259 {
260 FrameUiIntf::GetInstance().BeginFlushAnimation();
261 }
262
EndFlushAnimation()263 extern "C" void EndFlushAnimation()
264 {
265 FrameUiIntf::GetInstance().EndFlushAnimation();
266 }
267
BeginFlushBuild()268 extern "C" void BeginFlushBuild()
269 {
270 FrameUiIntf::GetInstance().BeginFlushBuild();
271 }
272
EndFlushBuild()273 extern "C" void EndFlushBuild()
274 {
275 FrameUiIntf::GetInstance().EndFlushBuild();
276 }
277
BeginFlushLayout()278 extern "C" void BeginFlushLayout()
279 {
280 FrameUiIntf::GetInstance().BeginFlushLayout();
281 }
282
EndFlushLayout()283 extern "C" void EndFlushLayout()
284 {
285 FrameUiIntf::GetInstance().EndFlushLayout();
286 }
287
BeginFlushRender()288 extern "C" void BeginFlushRender()
289 {
290 FrameUiIntf::GetInstance().BeginFlushRender();
291 }
292
EndFlushRender()293 extern "C" void EndFlushRender()
294 {
295 FrameUiIntf::GetInstance().EndFlushRender();
296 }
297
BeginFlushRenderFinish()298 extern "C" void BeginFlushRenderFinish()
299 {
300 FrameUiIntf::GetInstance().BeginFlushRenderFinish();
301 }
302
EndFlushRenderFinish()303 extern "C" void EndFlushRenderFinish()
304 {
305 FrameUiIntf::GetInstance().EndFlushRenderFinish();
306 }
307
BeginProcessPostFlush()308 extern "C" void BeginProcessPostFlush()
309 {
310 FrameUiIntf::GetInstance().BeginProcessPostFlush();
311 }
312
ProcessCommandsStart()313 extern "C" void ProcessCommandsStart()
314 {
315 FrameUiIntf::GetInstance().ProcessCommandsStart();
316 }
317
AnimateStart()318 extern "C" void AnimateStart()
319 {
320 FrameUiIntf::GetInstance().AnimateStart();
321 }
322
RenderStart(uint64_t timestamp)323 extern "C" void RenderStart(uint64_t timestamp)
324 {
325 FrameUiIntf::GetInstance().RenderStart(timestamp);
326 }
327
RenderEnd()328 extern "C" void RenderEnd()
329 {
330 FrameUiIntf::GetInstance().RenderEnd();
331 }
332
SendCommandsStart()333 extern "C" void SendCommandsStart()
334 {
335 FrameUiIntf::GetInstance().SendCommandsStart();
336 }
337
BeginListFling()338 extern "C" void BeginListFling()
339 {
340 FrameUiIntf::GetInstance().BeginListFling();
341 }
342
EndListFling()343 extern "C" void EndListFling()
344 {
345 FrameUiIntf::GetInstance().EndListFling();
346 }
347
FlushBegin()348 extern "C" void FlushBegin()
349 {
350 FrameUiIntf::GetInstance().FlushBegin();
351 }
352
FlushEnd()353 extern "C" void FlushEnd()
354 {
355 FrameUiIntf::GetInstance().FlushEnd();
356 }
357
SetFrameParam(int requestId,int load,int schedFrameNum,int value)358 extern "C" void SetFrameParam(int requestId, int load, int schedFrameNum, int value)
359 {
360 FrameUiIntf::GetInstance().SetFrameParam(requestId, load, schedFrameNum, value);
361 }
362
RequestNextVSync()363 extern "C" void RequestNextVSync()
364 {
365 FrameUiIntf::GetInstance().RequestNextVSync();
366 }
367
HandleSwapBuffer()368 extern "C" void HandleSwapBuffer()
369 {
370 FrameUiIntf::GetInstance().HandleSwapBuffer();
371 }
372
EnableSelfRender()373 extern "C" void EnableSelfRender()
374 {
375 FrameUiIntf::GetInstance().EnableSelfRender();
376 }
377
DisableSelfRender()378 extern "C" void DisableSelfRender()
379 {
380 FrameUiIntf::GetInstance().DisableSelfRender();
381 }
382
ReceiveVSync()383 extern "C" void ReceiveVSync()
384 {
385 FrameUiIntf::GetInstance().ReceiveVSync();
386 }
387
MonitorGpuStart()388 extern "C" void MonitorGpuStart()
389 {
390 FrameUiIntf::GetInstance().MonitorGpuStart();
391 }
392
MonitorGpuEnd()393 extern "C" void MonitorGpuEnd()
394 {
395 FrameUiIntf::GetInstance().MonitorGpuEnd();
396 }
397 } // namespace RME
398 } // namespace OHOS
399