1
/*****************************************************************************
3
* utouch-frame - Touch Frame Library
5
* Copyright (C) 2011 Canonical Ltd.
7
* This program is free software: you can redistribute it and/or modify it
8
* under the terms of the GNU General Public License as published by the
9
* Free Software Foundation, either version 3 of the License, or (at your
10
* option) any later version.
12
* This program is distributed in the hope that it will be useful, but
13
* WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* General Public License for more details.
17
* You should have received a copy of the GNU General Public License along
18
* with this program. If not, see <http://www.gnu.org/licenses/>.
20
****************************************************************************/
22
#ifndef UTOUCH_FRAME_DEVICE_X11_H_
23
#define UTOUCH_FRAME_DEVICE_X11_H_
28
#include <X11/extensions/XInput2.h>
30
#include "utouch/frame.h"
31
#include "v2/device.h"
32
#include "v2/typedefs.h"
39
public std::enable_shared_from_this<UFDeviceX11> {
41
UFDeviceX11(Display* display, const XIDeviceInfo& info);
43
int id() const { return id_; }
44
const std::map<int, UFAxisType>& axis_map() const { return axis_map_; }
46
bool HandleDeviceEvent(const XIDeviceEvent* event, SharedUFFrame* frame);
47
bool HandleOwnershipEvent(const XITouchOwnershipEvent* event,
48
SharedUFFrame* frame);
49
UFStatus AcceptTouch(::Window window_id, UFTouchId touch_id) const;
50
UFStatus RejectTouch(::Window window_id, UFTouchId touch_id) const;
53
UFDeviceX11(const UFDeviceX11&) = delete;
54
UFDeviceX11& operator=(const UFDeviceX11&) = delete;
59
std::map<int, UFAxisType> axis_map_;
60
std::map< ::Window, SharedWindow> windows_;
66
#endif // UTOUCH_FRAME_DEVICE_X11_H_