• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "bytrace_adapter.h"
16 
17 #include "hitrace_meter.h"
18 #include "mmi_log.h"
19 
20 #undef MMI_LOG_TAG
21 #define MMI_LOG_TAG "BytraceAdapter"
22 
23 namespace OHOS {
24 namespace MMI {
25 namespace {
26 const char* ON_KEY_EVENT { "OnKeyEvent" };
27 const char* ON_TOUCH_EVENT { "OnTouchEvent" };
28 const char* ON_POINTER_EVENT { "OnPointerEvent" };
29 const char* KEY_EVENT_DISPATCH { "KeyEventDispatch" };
30 const char* TOUCH_EVENT_DISPATCH { "touchEventDispatch" };
31 const char* POINTER_EVENT_DISPATCH { "PointerEventDispatch" };
32 const char* KEY_EVENT_SUBSCRIBE { "KeyEventSubscribe" };
33 const char* POINTER_EVENT_INTERCEPT { "PointerEventIntercept" };
34 const char* TOUCH_EVENT_INTERCEPT { "TouchEventIntercept" };
35 const char* KEY_EVENT_INTERCEPT { "KeyEventIntercept" };
36 const char* ON_START_EVENT { "StartEvent" };
37 const char* ON_LAUNCH_EVENT { "LaunchEvent" };
38 const char* ON_STOP_EVENT { "StopEvent" };
39 constexpr int32_t START_ID { 1 };
40 constexpr int32_t LAUNCH_ID { 2 };
41 constexpr int32_t STOP_ID { 3 };
42 } // namespace
43 
StartBytrace(std::shared_ptr<KeyEvent> keyEvent)44 void BytraceAdapter::StartBytrace(std::shared_ptr<KeyEvent> keyEvent)
45 {
46     CHKPV(keyEvent);
47     int32_t keyId = keyEvent->GetId();
48     StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, ON_KEY_EVENT, keyId, "", nullptr);
49     HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, "service report keyId=" + std::to_string(keyId));
50 }
51 
GetKeyTraceString(std::shared_ptr<KeyEvent> keyEvent)52 std::string BytraceAdapter::GetKeyTraceString(std::shared_ptr<KeyEvent> keyEvent)
53 {
54     CHKPS(keyEvent);
55     return KeyEvent::ActionToString(keyEvent->GetKeyAction());
56 }
57 
GetPointerTraceString(std::shared_ptr<PointerEvent> pointerEvent)58 std::string BytraceAdapter::GetPointerTraceString(std::shared_ptr<PointerEvent> pointerEvent)
59 {
60     CHKPS(pointerEvent);
61     std::vector<PointerEvent::PointerItem> pointerItems;
62     std::vector<int32_t> pointerIds{ pointerEvent->GetPointerIds() };
63     for (const auto &pointerId : pointerIds) {
64         PointerEvent::PointerItem item;
65         if (!pointerEvent->GetPointerItem(pointerId, item)) {
66             MMI_HILOGE("Invalid pointer:%{public}d", pointerId);
67             return "";
68         }
69         pointerItems.emplace_back(item);
70     }
71     std::string traceStr;
72     for (const auto &item : pointerItems) {
73         auto id = item.GetPointerId();
74         auto displayX = item.GetDisplayX();
75         auto displayY = item.GetDisplayY();
76         traceStr += " [";
77         traceStr += "id: " + std::to_string(id);
78         traceStr += ", x:" + std::to_string(displayX);
79         traceStr += ", y:" + std::to_string(displayY);
80         traceStr += "]";
81     }
82     return traceStr;
83 }
84 
StartBytrace(std::shared_ptr<PointerEvent> pointerEvent,TraceBtn traceBtn)85 void BytraceAdapter::StartBytrace(std::shared_ptr<PointerEvent> pointerEvent, TraceBtn traceBtn)
86 {
87     CHKPV(pointerEvent);
88     int32_t eventId = pointerEvent->GetId();
89     if (traceBtn == TRACE_START) {
90         if (pointerEvent->GetSourceType() == PointerEvent::SOURCE_TYPE_MOUSE) {
91             StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, ON_POINTER_EVENT, eventId,
92                 "", nullptr);
93             HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, "service report pointerId:" + std::to_string(eventId) +
94                 + ", type: " + pointerEvent->DumpPointerAction());
95         } else {
96             StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, ON_TOUCH_EVENT, eventId,
97                 "", nullptr);
98             HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, "service report touchId:" + std::to_string(eventId) +
99                 + ", type: " + pointerEvent->DumpPointerAction());
100         }
101     } else {
102         if (pointerEvent->GetSourceType() == PointerEvent::SOURCE_TYPE_MOUSE) {
103             FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, ON_POINTER_EVENT, eventId);
104         } else {
105             FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, ON_TOUCH_EVENT, eventId);
106         }
107     }
108 }
109 
StartBytrace(std::shared_ptr<KeyEvent> key,HandlerType handlerType)110 void BytraceAdapter::StartBytrace(std::shared_ptr<KeyEvent> key, HandlerType handlerType)
111 {
112     CHKPV(key);
113     std::string checkKeyCode;
114     switch (handlerType) {
115         case KEY_INTERCEPT_EVENT: {
116             checkKeyCode = "Intercept keyCode";
117             break;
118         }
119         case KEY_LAUNCH_EVENT: {
120             checkKeyCode = "Launch keyCode";
121             break;
122         }
123         case KEY_SUBSCRIBE_EVENT: {
124             checkKeyCode = "Subscribe keyCode";
125             break;
126         }
127         case KEY_DISPATCH_EVENT: {
128             checkKeyCode = "Dispatch keyCode";
129             break;
130         }
131         default: {
132             checkKeyCode = "Unknown keyCode";
133             break;
134         }
135     }
136     HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, checkKeyCode);
137     int32_t keyId = key->GetId();
138     FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, ON_KEY_EVENT, keyId);
139 }
140 
StartBytrace(std::shared_ptr<KeyEvent> keyEvent,TraceBtn traceBtn,HandlerType handlerType)141 void BytraceAdapter::StartBytrace(std::shared_ptr<KeyEvent> keyEvent, TraceBtn traceBtn, HandlerType handlerType)
142 {
143     CHKPV(keyEvent);
144     int32_t keyId = keyEvent->GetId();
145     if (traceBtn == TRACE_START) {
146         switch (handlerType) {
147             case KEY_INTERCEPT_EVENT: {
148                 StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, KEY_EVENT_INTERCEPT, keyId,
149                     "", nullptr);
150                 HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, "client Intercept keyCode");
151                 break;
152             }
153             case KEY_SUBSCRIBE_EVENT: {
154                 StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, KEY_EVENT_SUBSCRIBE, keyId,
155                     "", nullptr);
156                 HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, "client subscribe keyCode");
157                 break;
158             }
159             case KEY_DISPATCH_EVENT: {
160                 StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, KEY_EVENT_DISPATCH, keyId,
161                     "", nullptr);
162                 HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, "client dispatch keyCode");
163                 break;
164             }
165             default: {
166                 HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, "Unknown keyCode");
167                 break;
168             }
169         }
170     } else {
171         switch (handlerType) {
172             case KEY_INTERCEPT_EVENT: {
173                 FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, KEY_EVENT_INTERCEPT, keyId);
174                 break;
175             }
176             case KEY_SUBSCRIBE_EVENT: {
177                 FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, KEY_EVENT_SUBSCRIBE, keyId);
178                 break;
179             }
180             case KEY_DISPATCH_EVENT: {
181                 FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, KEY_EVENT_DISPATCH, keyId);
182                 break;
183             }
184             default: {
185                 HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, "Unknown keyCode");
186                 break;
187             }
188         }
189     }
190 }
191 
StartBytrace(std::shared_ptr<PointerEvent> pointerEvent,TraceBtn traceBtn,HandlerType handlerType)192 void BytraceAdapter::StartBytrace(
193     std::shared_ptr<PointerEvent> pointerEvent, TraceBtn traceBtn, HandlerType handlerType)
194 {
195     CHKPV(pointerEvent);
196     int32_t eventId = pointerEvent->GetId();
197     if (traceBtn == TRACE_START) {
198         if (handlerType == POINT_DISPATCH_EVENT) {
199             if (pointerEvent->GetSourceType() == PointerEvent::SOURCE_TYPE_MOUSE) {
200                 StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, POINTER_EVENT_DISPATCH, eventId,
201                     "", nullptr);
202                 HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, "client dispatch pointerId:" + std::to_string(eventId));
203             } else {
204                 StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, TOUCH_EVENT_DISPATCH, eventId,
205                     "", nullptr);
206                 HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, "client dispatch touchId:" + std::to_string(eventId));
207             }
208         } else {
209             if (pointerEvent->GetSourceType() == PointerEvent::SOURCE_TYPE_MOUSE) {
210                 StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, POINTER_EVENT_INTERCEPT, eventId,
211                     "", nullptr);
212                 HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT,
213                     "client Intercept pointerId:" + std::to_string(eventId));
214             } else {
215                 StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, TOUCH_EVENT_INTERCEPT, eventId,
216                     "", nullptr);
217                 HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, "client Intercept touchId:" + std::to_string(eventId));
218             }
219         }
220     } else {
221         if (handlerType == POINT_DISPATCH_EVENT) {
222             if (pointerEvent->GetSourceType() == PointerEvent::SOURCE_TYPE_MOUSE) {
223                 FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, POINTER_EVENT_DISPATCH, eventId);
224             } else {
225                 FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, TOUCH_EVENT_DISPATCH, eventId);
226             }
227         }
228         if (handlerType == POINT_INTERCEPT_EVENT) {
229             if (pointerEvent->GetSourceType() == PointerEvent::SOURCE_TYPE_MOUSE) {
230                 FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, POINTER_EVENT_INTERCEPT, eventId);
231             } else {
232                 FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, TOUCH_EVENT_INTERCEPT, eventId);
233             }
234         }
235     }
236 }
237 
StartBytrace(TraceBtn traceBtn,EventType eventType)238 void BytraceAdapter::StartBytrace(TraceBtn traceBtn, EventType eventType)
239 {
240     std::string checkKeyCode;
241     if (traceBtn == TRACE_START) {
242         switch (eventType) {
243             case START_EVENT: {
244                 StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, ON_START_EVENT, START_ID,
245                     "", nullptr);
246                 checkKeyCode = "crossing startId:" + std::to_string(START_ID);
247                 HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, checkKeyCode);
248                 break;
249             }
250             case LAUNCH_EVENT: {
251                 StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, ON_LAUNCH_EVENT, LAUNCH_ID,
252                     "", nullptr);
253                 checkKeyCode = "crossing launchId:" + std::to_string(LAUNCH_ID);
254                 HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, checkKeyCode);
255                 break;
256             }
257             case STOP_EVENT: {
258                 StartAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, ON_STOP_EVENT, STOP_ID,
259                     "", nullptr);
260                 checkKeyCode = "crossing stopId:" + std::to_string(STOP_ID);
261                 HITRACE_METER_NAME(HITRACE_TAG_MULTIMODALINPUT, checkKeyCode);
262                 break;
263             }
264         }
265     } else {
266         switch (eventType) {
267             case START_EVENT: {
268                 FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, ON_START_EVENT, START_ID);
269                 break;
270             }
271             case LAUNCH_EVENT: {
272                 FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, ON_LAUNCH_EVENT, LAUNCH_ID);
273                 break;
274             }
275             case STOP_EVENT: {
276                 FinishAsyncTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, ON_STOP_EVENT, STOP_ID);
277                 break;
278             }
279         }
280     }
281 }
282 
StartIpcServer(uint32_t code)283 void BytraceAdapter::StartIpcServer(uint32_t code)
284 {
285     std::string traceInfo = "ipcServerHandle code:" + std::to_string(code);
286     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
287 }
288 
StopIpcServer()289 void BytraceAdapter::StopIpcServer()
290 {
291     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
292 }
293 
StartPackageEvent(const std::string & msg)294 void BytraceAdapter::StartPackageEvent(const std::string& msg)
295 {
296     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, msg.c_str(), "");
297 }
298 
StopPackageEvent()299 void BytraceAdapter::StopPackageEvent()
300 {
301     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
302 }
303 
StartHandleInput(int32_t code)304 void BytraceAdapter::StartHandleInput(int32_t code)
305 {
306     std::string traceInfo = "originEventHandle code:" + std::to_string(code);
307     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
308 }
309 
StopHandleInput()310 void BytraceAdapter::StopHandleInput()
311 {
312     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
313 }
314 
StartHandleTracker(int32_t pointerId)315 void BytraceAdapter::StartHandleTracker(int32_t pointerId)
316 {
317     std::string traceInfo = "pointerId:" + std::to_string(pointerId);
318     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
319 }
320 
StopHandleTracker()321 void BytraceAdapter::StopHandleTracker()
322 {
323     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
324 }
325 
StartConsumer(std::shared_ptr<PointerEvent> pointerEvent)326 void BytraceAdapter::StartConsumer(std::shared_ptr<PointerEvent> pointerEvent)
327 {
328     CHKPV(pointerEvent);
329     std::string traceInfo = "eventConsume pointerEventId:" + std::to_string(pointerEvent->GetId());
330     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
331 }
332 
StopConsumer()333 void BytraceAdapter::StopConsumer()
334 {
335     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
336 }
337 
StartConsumer(std::shared_ptr<KeyEvent> keyEvent)338 void BytraceAdapter::StartConsumer(std::shared_ptr<KeyEvent> keyEvent)
339 {
340     CHKPV(keyEvent);
341     std::string traceInfo = "eventConsume keyEventId:" + std::to_string(keyEvent->GetId());
342     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
343 }
344 
StartPostTaskEvent(std::shared_ptr<PointerEvent> pointerEvent)345 void BytraceAdapter::StartPostTaskEvent(std::shared_ptr<PointerEvent> pointerEvent)
346 {
347     CHKPV(pointerEvent);
348     std::string traceInfo = "startpostEvent pointerEventId:" + std::to_string(pointerEvent->GetId());
349     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
350 }
351 
StartPostTaskEvent(std::shared_ptr<KeyEvent> keyEvent)352 void BytraceAdapter::StartPostTaskEvent(std::shared_ptr<KeyEvent> keyEvent)
353 {
354     CHKPV(keyEvent);
355     std::string traceInfo = "startpostEvent keyEventId:" + std::to_string(keyEvent->GetId());
356     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
357 }
358 
StopPostTaskEvent()359 void BytraceAdapter::StopPostTaskEvent()
360 {
361     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
362 }
363 
StartSocketHandle(int32_t msgId)364 void BytraceAdapter::StartSocketHandle(int32_t msgId)
365 {
366     std::string traceInfo = "socketMsgHandle msgId:" + std::to_string(msgId);
367     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
368 }
369 
StopSocketHandle()370 void BytraceAdapter::StopSocketHandle()
371 {
372     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
373 }
374 
StartDevListener(const std::string & type,int32_t deviceId)375 void BytraceAdapter::StartDevListener(const std::string& type, int32_t deviceId)
376 {
377     std::string traceInfo = "device listener type:" + type + ", deviceid:" + std::to_string(deviceId);
378     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
379 }
380 
StopDevListener()381 void BytraceAdapter::StopDevListener()
382 {
383     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
384 }
385 
StartLaunchAbility(int32_t type,const std::string & bundleName)386 void BytraceAdapter::StartLaunchAbility(int32_t type, const std::string& bundleName)
387 {
388     std::string traceInfo = "launchAbility type:" + std::to_string(type) + ", bundleName:" + bundleName;
389     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
390 }
391 
StopLaunchAbility()392 void BytraceAdapter::StopLaunchAbility()
393 {
394     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
395 }
396 
StartMarkedTracker(int32_t eventId)397 void BytraceAdapter::StartMarkedTracker(int32_t eventId)
398 {
399     std::string traceInfo = "markProcessed eventId:" + std::to_string(eventId);
400     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
401 }
402 
StopMarkedTracker()403 void BytraceAdapter::StopMarkedTracker()
404 {
405     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
406 }
407 
StartTouchEvent(int32_t pointerId)408 void BytraceAdapter::StartTouchEvent(int32_t pointerId)
409 {
410     std::string traceInfo = "startTouchEvent pointerId:" + std::to_string(pointerId);
411     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
412 }
413 
StopTouchEvent()414 void BytraceAdapter::StopTouchEvent()
415 {
416     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
417 }
418 
StartToolType(int32_t toolType)419 void BytraceAdapter::StartToolType(int32_t toolType)
420 {
421     std::string traceInfo = "current ToolType:" + std::to_string(toolType);
422     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
423 }
424 
StopToolType()425 void BytraceAdapter::StopToolType()
426 {
427     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
428 }
429 
StartTouchUp(int32_t pointerId)430 void BytraceAdapter::StartTouchUp(int32_t pointerId)
431 {
432     std::string traceInfo = "startTouchUp pointerId:" + std::to_string(pointerId);
433     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
434 }
435 
StopTouchUp()436 void BytraceAdapter::StopTouchUp()
437 {
438     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
439 }
440 
StartUpdateDisplayMode(const std::string & modeMsg)441 void BytraceAdapter::StartUpdateDisplayMode(const std::string &modeMsg)
442 {
443     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, modeMsg.c_str(), "");
444 }
445 
StopUpdateDisplayMode()446 void BytraceAdapter::StopUpdateDisplayMode()
447 {
448     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
449 }
450 
StartDataShare(const std::string & key)451 void BytraceAdapter::StartDataShare(const std::string &key)
452 {
453     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, key.c_str(), "");
454 }
455 
StopDataShare()456 void BytraceAdapter::StopDataShare()
457 {
458     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
459 }
460 
StartRsSurfaceNode(uint64_t rsId)461 void BytraceAdapter::StartRsSurfaceNode(uint64_t rsId)
462 {
463     std::string traceInfo = "pointerWindow rsId:" + std::to_string(rsId);
464     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
465 }
466 
StopRsSurfaceNode()467 void BytraceAdapter::StopRsSurfaceNode()
468 {
469     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
470 }
471 
StartFoldState(bool state)472 void BytraceAdapter::StartFoldState(bool state)
473 {
474     std::string traceInfo = state ? "true" : "false";
475     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
476 }
477 
StopFoldState()478 void BytraceAdapter::StopFoldState()
479 {
480     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
481 }
482 
StartWindowVisible(int32_t pid)483 void BytraceAdapter::StartWindowVisible(int32_t pid)
484 {
485     std::string traceInfo = "get visibility window info:" + std::to_string(pid);
486     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
487 }
488 
StopWindowVisible()489 void BytraceAdapter::StopWindowVisible()
490 {
491     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
492 }
493 
StartHardPointerRender(uint32_t width,uint32_t height,uint32_t bufferId,uint32_t screenId,int32_t style)494 void BytraceAdapter::StartHardPointerRender(uint32_t width, uint32_t height, uint32_t bufferId, uint32_t screenId,
495     int32_t style)
496 {
497     std::string traceInfo = "hard pointer render buffer width:" + std::to_string(width)
498         + " height:" + std::to_string(height)
499         + " bufferId:" + std::to_string(bufferId)
500         + " screenId:" + std::to_string(screenId)
501         + " style:" + std::to_string(style);
502     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
503 }
504 
StopHardPointerRender()505 void BytraceAdapter::StopHardPointerRender()
506 {
507     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
508 }
509 
StartSoftPointerRender(uint32_t width,uint32_t height,int32_t style)510 void BytraceAdapter::StartSoftPointerRender(uint32_t width, uint32_t height, int32_t style)
511 {
512     std::string traceInfo = "soft pointer render buffer width:" + std::to_string(width)
513         + " height:" + std::to_string(height)
514         + " style:" + std::to_string(style);
515     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
516 }
517 
StopSoftPointerRender()518 void BytraceAdapter::StopSoftPointerRender()
519 {
520     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
521 }
522 
StartHardPointerMove(uint32_t width,uint32_t height,uint32_t bufferId,uint32_t screenId)523 void BytraceAdapter::StartHardPointerMove(uint32_t width, uint32_t height, uint32_t bufferId, uint32_t screenId)
524 {
525     std::string traceInfo = "hard pointer move width:" + std::to_string(width)
526         + " height:" + std::to_string(height)
527         + " bufferId:" + std::to_string(bufferId)
528         + " screenId:" + std::to_string(screenId);
529     StartTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT, traceInfo.c_str(), "");
530 }
531 
StopHardPointerMove()532 void BytraceAdapter::StopHardPointerMove()
533 {
534     FinishTraceEx(HITRACE_LEVEL_INFO, HITRACE_TAG_MULTIMODALINPUT);
535 }
536 } // namespace MMI
537 } // namespace OHOS