1886da342Sopenharmony_ci/* 2886da342Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3886da342Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4886da342Sopenharmony_ci * you may not use this file except in compliance with the License. 5886da342Sopenharmony_ci * You may obtain a copy of the License at 6886da342Sopenharmony_ci * 7886da342Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8886da342Sopenharmony_ci * 9886da342Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10886da342Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11886da342Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12886da342Sopenharmony_ci * See the License for the specific language governing permissions and 13886da342Sopenharmony_ci * limitations under the License. 14886da342Sopenharmony_ci */ 15886da342Sopenharmony_ci 16886da342Sopenharmony_ci#ifndef EVENT_TOUCH_EVENT_H 17886da342Sopenharmony_ci#define EVENT_TOUCH_EVENT_H 18886da342Sopenharmony_ci 19886da342Sopenharmony_ci#include <list> 20886da342Sopenharmony_ci#include <map> 21886da342Sopenharmony_ci#include "offset.h" 22886da342Sopenharmony_ci#include "ui_model.h" 23886da342Sopenharmony_ci 24886da342Sopenharmony_cinamespace OHOS::uitest { 25886da342Sopenharmony_ciusing TimeStamp = std::chrono::high_resolution_clock::time_point; 26886da342Sopenharmony_ci 27886da342Sopenharmony_cistruct TouchPoint final { 28886da342Sopenharmony_ci int32_t id = 0; 29886da342Sopenharmony_ci int32_t x = 0; 30886da342Sopenharmony_ci int32_t y = 0; 31886da342Sopenharmony_ci TimeStamp downTime; 32886da342Sopenharmony_ci}; 33886da342Sopenharmony_ci/** 34886da342Sopenharmony_ci * @brief TouchEvent contains the active change point and a list of all touch points. 35886da342Sopenharmony_ci */ 36886da342Sopenharmony_cistruct TouchEventInfo final { 37886da342Sopenharmony_ci // the active changed point info 38886da342Sopenharmony_ci // The ID is used to identify the point of contact between the finger and the screen. Different fingers have 39886da342Sopenharmony_ci // different ids. 40886da342Sopenharmony_ci int32_t id = 0; 41886da342Sopenharmony_ci int32_t x = 0; 42886da342Sopenharmony_ci int32_t y = 0; 43886da342Sopenharmony_ci int32_t wx = 0; 44886da342Sopenharmony_ci int32_t wy = 0; 45886da342Sopenharmony_ci // nanosecond time stamp. 46886da342Sopenharmony_ci int64_t actionTime; 47886da342Sopenharmony_ci int64_t downTime; 48886da342Sopenharmony_ci double durationSeconds; 49886da342Sopenharmony_ci std::vector<std::string> attributes; 50886da342Sopenharmony_ci std::string bundleName; 51886da342Sopenharmony_ci std::string abilityName; 52886da342Sopenharmony_ci Point GetPoint() const 53886da342Sopenharmony_ci { 54886da342Sopenharmony_ci return Point(x, y); 55886da342Sopenharmony_ci } 56886da342Sopenharmony_ci TimeStamp GetActionTimeStamp() const 57886da342Sopenharmony_ci { 58886da342Sopenharmony_ci TimeStamp time {std::chrono::duration_cast<TimeStamp::duration>(std::chrono::nanoseconds(actionTime * 1000))}; 59886da342Sopenharmony_ci return time; 60886da342Sopenharmony_ci } 61886da342Sopenharmony_ci TimeStamp GetDownTimeStamp() const 62886da342Sopenharmony_ci { 63886da342Sopenharmony_ci TimeStamp time {std::chrono::duration_cast<TimeStamp::duration>(std::chrono::nanoseconds(downTime * 1000))}; 64886da342Sopenharmony_ci return time; 65886da342Sopenharmony_ci } 66886da342Sopenharmony_ci void Resets() 67886da342Sopenharmony_ci { 68886da342Sopenharmony_ci x = 0; 69886da342Sopenharmony_ci y = 0; 70886da342Sopenharmony_ci actionTime = GetCurrentMillisecond(); 71886da342Sopenharmony_ci downTime = GetCurrentMillisecond(); 72886da342Sopenharmony_ci } 73886da342Sopenharmony_ci}; 74886da342Sopenharmony_ci} // namespace OHOS::uitest 75886da342Sopenharmony_ci#endif // EVENT_TOUCH_EVENT_H 76