1fb299fa2Sopenharmony_ci/* 2fb299fa2Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 3fb299fa2Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb299fa2Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb299fa2Sopenharmony_ci * You may obtain a copy of the License at 6fb299fa2Sopenharmony_ci * 7fb299fa2Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb299fa2Sopenharmony_ci * 9fb299fa2Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb299fa2Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb299fa2Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb299fa2Sopenharmony_ci * See the License for the specific language governing permissions and 13fb299fa2Sopenharmony_ci * limitations under the License. 14fb299fa2Sopenharmony_ci */ 15fb299fa2Sopenharmony_ci#ifndef UPDATER_UI_POINTERS_INPUT_DEVICE_H 16fb299fa2Sopenharmony_ci#define UPDATER_UI_POINTERS_INPUT_DEVICE_H 17fb299fa2Sopenharmony_ci#include <linux/input.h> 18fb299fa2Sopenharmony_ci#include "input_manager.h" 19fb299fa2Sopenharmony_ci#include "macros_updater.h" 20fb299fa2Sopenharmony_ci#include "dock/pointer_input_device.h" 21fb299fa2Sopenharmony_ci#include "dock/input_device.h" 22fb299fa2Sopenharmony_ci 23fb299fa2Sopenharmony_cinamespace Updater { 24fb299fa2Sopenharmony_civoid AddInputDevice(); 25fb299fa2Sopenharmony_civoid HandlePointersEvent(const input_event &ev, uint32_t type); 26fb299fa2Sopenharmony_ciclass PointersInputDevice : public OHOS::PointerInputDevice { 27fb299fa2Sopenharmony_ci DISALLOW_COPY_MOVE(PointersInputDevice); 28fb299fa2Sopenharmony_cipublic: 29fb299fa2Sopenharmony_ci PointersInputDevice() = default; 30fb299fa2Sopenharmony_ci virtual ~PointersInputDevice() = default; 31fb299fa2Sopenharmony_ci static PointersInputDevice &GetInstance(); 32fb299fa2Sopenharmony_ci bool Read(OHOS::DeviceData &data) override; 33fb299fa2Sopenharmony_ci bool ReadPoint(OHOS::DeviceData& data, OHOS::Point pos, bool fingerPressDown); 34fb299fa2Sopenharmony_ci bool ReadTouch(OHOS::DeviceData &data); 35fb299fa2Sopenharmony_ci void SetFingerDown(bool isPressed); 36fb299fa2Sopenharmony_ci int HandlePointEvent(const input_event &ev, uint32_t type); 37fb299fa2Sopenharmony_ci void HandleEvAbsMt(const input_event &ev); 38fb299fa2Sopenharmony_ci 39fb299fa2Sopenharmony_ciprivate: 40fb299fa2Sopenharmony_ci OHOS::Point reportAbsMt_ {}; 41fb299fa2Sopenharmony_ci bool touchFingerDown_ { false }; 42fb299fa2Sopenharmony_ci}; 43fb299fa2Sopenharmony_ci} // namespace Updater 44fb299fa2Sopenharmony_ci#endif // UPDATER_UI_POINTERS_INPUT_DEVICE_H