Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(505)

Side by Side Diff: trunk/src/ui/events/x/touch_factory_x11.h

Issue 135763002: Revert 244210 "Include external touchscreen vid/pid in UMA hardw..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « trunk/src/ui/events/event_utils.cc ('k') | trunk/src/ui/events/x/touch_factory_x11.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef UI_EVENTS_X_TOUCH_FACTORY_X11_H_ 5 #ifndef UI_EVENTS_X_TOUCH_FACTORY_X11_H_
6 #define UI_EVENTS_X_TOUCH_FACTORY_X11_H_ 6 #define UI_EVENTS_X_TOUCH_FACTORY_X11_H_
7 7
8 #include <bitset> 8 #include <bitset>
9 #include <map> 9 #include <map>
10 #include <set>
11 #include <vector> 10 #include <vector>
12 11
13 #include "base/timer/timer.h" 12 #include "base/timer/timer.h"
14 #include "ui/events/events_base_export.h" 13 #include "ui/events/events_base_export.h"
15 #include "ui/gfx/sequential_id_generator.h" 14 #include "ui/gfx/sequential_id_generator.h"
16 15
17 template <typename T> struct DefaultSingletonTraits; 16 template <typename T> struct DefaultSingletonTraits;
18 17
19 typedef unsigned long Cursor; 18 typedef unsigned long Cursor;
20 typedef unsigned long Window; 19 typedef unsigned long Window;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 // Tries to find an existing slot ID mapping to tracking ID. If there 65 // Tries to find an existing slot ID mapping to tracking ID. If there
67 // isn't one already, allocates a new slot ID and sets up the mapping. 66 // isn't one already, allocates a new slot ID and sets up the mapping.
68 int GetSlotForTrackingID(uint32 tracking_id); 67 int GetSlotForTrackingID(uint32 tracking_id);
69 68
70 // Releases the slot ID mapping to tracking ID. 69 // Releases the slot ID mapping to tracking ID.
71 void ReleaseSlotForTrackingID(uint32 tracking_id); 70 void ReleaseSlotForTrackingID(uint32 tracking_id);
72 71
73 // Whether any touch device is currently present and enabled. 72 // Whether any touch device is currently present and enabled.
74 bool IsTouchDevicePresent(); 73 bool IsTouchDevicePresent();
75 74
76 // Pairs of <vendor id, product id> of external touch screens.
77 const std::set<std::pair<int, int> >& GetTouchscreenIds() const {
78 return touchscreen_ids_;
79 }
80
81 // Return maximum simultaneous touch points supported by device. 75 // Return maximum simultaneous touch points supported by device.
82 int GetMaxTouchPoints() const; 76 int GetMaxTouchPoints() const;
83 77
84 // Sets up the device id in the list |devices| as multi-touch capable 78 // Sets up the device id in the list |devices| as multi-touch capable
85 // devices and enables touch events processing. This function is only 79 // devices and enables touch events processing. This function is only
86 // for test purpose, and it does not query from X server. 80 // for test purpose, and it does not query from X server.
87 void SetTouchDeviceForTest(const std::vector<unsigned int>& devices); 81 void SetTouchDeviceForTest(const std::vector<unsigned int>& devices);
88 82
89 // Sets up the device id in the list |devices| as pointer devices. 83 // Sets up the device id in the list |devices| as pointer devices.
90 // This function is only for test purpose, and it does not query from 84 // This function is only for test purpose, and it does not query from
91 // X server. 85 // X server.
92 void SetPointerDeviceForTest(const std::vector<unsigned int>& devices); 86 void SetPointerDeviceForTest(const std::vector<unsigned int>& devices);
93 87
94 private: 88 private:
95 // Requirement for Singleton 89 // Requirement for Singleton
96 friend struct DefaultSingletonTraits<TouchFactory>; 90 friend struct DefaultSingletonTraits<TouchFactory>;
97 91
98 void CacheTouchscreenIds(Display* display, int id);
99
100 // NOTE: To keep track of touch devices, we currently maintain a lookup table 92 // NOTE: To keep track of touch devices, we currently maintain a lookup table
101 // to quickly decide if a device is a touch device or not. We also maintain a 93 // to quickly decide if a device is a touch device or not. We also maintain a
102 // list of the touch devices. Ideally, there will be only one touch device, 94 // list of the touch devices. Ideally, there will be only one touch device,
103 // and instead of having the lookup table and the list, there will be a single 95 // and instead of having the lookup table and the list, there will be a single
104 // identifier for the touch device. This can be completed after enough testing 96 // identifier for the touch device. This can be completed after enough testing
105 // on real touch devices. 97 // on real touch devices.
106 98
107 static const int kMaxDeviceNum = 128; 99 static const int kMaxDeviceNum = 128;
108 100
109 // A quick lookup table for determining if events from the pointer device 101 // A quick lookup table for determining if events from the pointer device
110 // should be processed. 102 // should be processed.
111 std::bitset<kMaxDeviceNum> pointer_device_lookup_; 103 std::bitset<kMaxDeviceNum> pointer_device_lookup_;
112 104
113 // A quick lookup table for determining if a device is a touch device. 105 // A quick lookup table for determining if a device is a touch device.
114 std::bitset<kMaxDeviceNum> touch_device_lookup_; 106 std::bitset<kMaxDeviceNum> touch_device_lookup_;
115 107
116 // Indicates whether a touch device is currently available or not. 108 // Indicates whether a touch device is currently available or not.
117 bool touch_device_available_; 109 bool touch_device_available_;
118 110
119 // Indicates whether touch events are explicitly disabled. 111 // Indicates whether touch events are explicitly disabled.
120 bool touch_events_disabled_; 112 bool touch_events_disabled_;
121 113
122 // Indicates whether the device's internal display produces touch events.
123 bool internal_display_supports_touch_;
124
125 // The list of touch devices. For testing/debugging purposes, a single-pointer 114 // The list of touch devices. For testing/debugging purposes, a single-pointer
126 // device (mouse or touch screen without sufficient X/driver support for MT) 115 // device (mouse or touch screen without sufficient X/driver support for MT)
127 // can sometimes be treated as a touch device. The key in the map represents 116 // can sometimes be treated as a touch device. The key in the map represents
128 // the device id, and the value represents if the device is multi-touch 117 // the device id, and the value represents if the device is multi-touch
129 // capable. 118 // capable.
130 std::map<int, bool> touch_device_list_; 119 std::map<int, bool> touch_device_list_;
131 120
132 // Touch screen <vid, pid>s.
133 std::set<std::pair<int, int> > touchscreen_ids_;
134
135 // Maximum simultaneous touch points supported by device. In the case of 121 // Maximum simultaneous touch points supported by device. In the case of
136 // devices with multiple digitizers (e.g. multiple touchscreens), the value 122 // devices with multiple digitizers (e.g. multiple touchscreens), the value
137 // is the maximum of the set of maximum supported contacts by each individual 123 // is the maximum of the set of maximum supported contacts by each individual
138 // digitizer. 124 // digitizer.
139 int max_touch_points_; 125 int max_touch_points_;
140 126
141 SequentialIDGenerator id_generator_; 127 SequentialIDGenerator id_generator_;
142 128
143 DISALLOW_COPY_AND_ASSIGN(TouchFactory); 129 DISALLOW_COPY_AND_ASSIGN(TouchFactory);
144 }; 130 };
145 131
146 } // namespace ui 132 } // namespace ui
147 133
148 #endif // UI_EVENTS_X_TOUCH_FACTORY_X11_H_ 134 #endif // UI_EVENTS_X_TOUCH_FACTORY_X11_H_
OLDNEW
« no previous file with comments | « trunk/src/ui/events/event_utils.cc ('k') | trunk/src/ui/events/x/touch_factory_x11.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698