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