xbmc
ITouchInputHandler.h
1 /*
2  * Copyright (C) 2013-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "input/touch/ITouchInputHandling.h"
12 
13 #include <atomic>
14 #include <stdint.h>
15 
20 typedef enum
21 {
22  TouchInputUnchanged = 0,
23  TouchInputAbort,
24  TouchInputDown,
25  TouchInputUp,
26  TouchInputMove
27 } TouchInput;
28 
39 {
40 public:
41  ITouchInputHandler() : m_dpi(160.0f) {}
42  ~ITouchInputHandler() override = default;
43 
63  virtual bool HandleTouchInput(
64  TouchInput event, float x, float y, int64_t time, int32_t pointer = 0, float size = 0.0f) = 0;
65 
86  virtual bool UpdateTouchPointer(
87  int32_t pointer, float x, float y, int64_t time, float size = 0.0f)
88  {
89  return false;
90  }
91 
92  void SetScreenDPI(float dpi)
93  {
94  if (dpi > 0.0f)
95  m_dpi = dpi;
96  }
97  float GetScreenDPI() { return m_dpi; }
98 
99 protected:
103  std::atomic<float> m_dpi;
104 };
virtual bool HandleTouchInput(TouchInput event, float x, float y, int64_t time, int32_t pointer=0, float size=0.0f)=0
Handle a touch event.
Convenience interface implementing ITouchActionHandler with an implementation that forwards any ITouc...
Definition: ITouchInputHandling.h:23
virtual bool UpdateTouchPointer(int32_t pointer, float x, float y, int64_t time, float size=0.0f)
Update the coordinates of a pointer.
Definition: ITouchInputHandler.h:86
Interface (implements ITouchInputHandling) defining methods to handle raw touch input events (down...
Definition: ITouchInputHandler.h:38
std::atomic< float > m_dpi
DPI value of the touch screen.
Definition: ITouchInputHandler.h:103
TouchInput
Touch input event.
Definition: ITouchInputHandler.h:20