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_HANDLE_X11_H_
23
#define UTOUCH_FRAME_HANDLE_X11_H_
31
#include <X11/extensions/XInput2.h>
33
#include "v2/handle.h"
34
#include "v2/typedefs.h"
39
class UFHandleX11 : public UFHandle {
41
explicit UFHandleX11(Display *dsp);
44
UFStatus ProcessEvent(XGenericEventCookie* xcookie);
46
UFHandleX11(const UFHandleX11&) = delete;
47
UFHandleX11& operator=(const UFHandleX11&) = delete;
50
void AddDevice(const XIDeviceInfo& info, uint64_t time);
51
void HandleHierarchyEvent(const XIHierarchyEvent* event);
52
void HandleDeviceEvent(const XIDeviceEvent* event);
53
void HandleOwnershipEvent(const XITouchOwnershipEvent* event);
57
std::map<int, SharedUFDevice> devices_;
63
#endif // UTOUCH_FRAME_HANDLE_X11_H_