OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef DEVICE_HID_HID_USAGE_AND_PAGE_H_ | |
6 #define DEVICE_HID_HID_USAGE_AND_PAGE_H_ | |
7 | |
8 #include <stdint.h> | |
9 | |
10 #include <ostream> | |
11 | |
12 #include "base/logging.h" | |
13 | |
14 namespace device { | |
15 | |
16 struct HidUsageAndPage { | |
Ken Rockot(use gerrit already)
2014/04/15 21:18:37
Vertical whitespace
jracle (use Gerrit)
2014/04/16 16:39:20
Done
| |
17 | |
18 enum Page { | |
19 kPageUndefined = 0x00, | |
20 kPageGenericDesktop = 0x01, | |
21 kPageSimulation = 0x02, | |
22 kPageVirtualReality = 0x03, | |
23 kPageSport = 0x04, | |
24 kPageGame = 0x05, | |
25 kPageKeyboard = 0x07, | |
26 kPageLed = 0x08, | |
27 kPageButton = 0x09, | |
28 kPageOrdinal = 0x0A, | |
29 kPageTelephony = 0x0B, | |
30 kPageConsumer = 0x0C, | |
31 kPageDigitizer = 0x0D, | |
32 kPagePidPage = 0x0F, | |
33 kPageUnicode = 0x10, | |
34 kPageAlphanumericDisplay = 0x14, | |
35 kPageMedicalInstruments = 0x40, | |
36 kPageMonitor0 = 0x80, | |
37 kPageMonitor1 = 0x81, | |
38 kPageMonitor2 = 0x82, | |
39 kPageMonitor3 = 0x83, | |
40 kPagePower0 = 0x84, | |
41 kPagePower1 = 0x85, | |
42 kPagePower2 = 0x86, | |
43 kPagePower3 = 0x87, | |
44 kPageBarCodeScanner = 0x8C, | |
45 kPageScale = 0x8D, | |
46 kPageMagneticStripeReader = 0x8E, | |
47 kPageReservedPointOfSale = 0x8F, | |
48 kPageCameraControl = 0x90, | |
49 kPageArcade = 0x91, | |
50 kPageVendor = 0xFF00, | |
51 kPageMediaCenter = 0xFFBC | |
52 }; | |
53 | |
54 HidUsageAndPage(Page usage_page, uint16_t usage) | |
55 : usage_page((uint16_t)usage_page), usage(usage) {} | |
56 HidUsageAndPage(uint16_t usage_page, uint16_t usage) | |
Ken Rockot(use gerrit already)
2014/04/15 21:18:37
This is confusing. Please just have one constructo
jracle (use Gerrit)
2014/04/16 16:39:20
Makes sense!
| |
57 : usage_page(usage_page), usage(usage) {} | |
58 HidUsageAndPage() : usage_page(0), usage(0) {} | |
59 ~HidUsageAndPage() {} | |
60 | |
61 uint16_t usage_page; | |
Ken Rockot(use gerrit already)
2014/04/15 21:18:37
Why not store this as a Page?
jracle (use Gerrit)
2014/04/16 16:39:20
Indeed (feared to get out-of-range values wrt page
| |
62 uint16_t usage; | |
63 | |
64 bool operator==(const HidUsageAndPage& other) const { | |
Ken Rockot(use gerrit already)
2014/04/15 21:18:37
Please do not overload operators (the ostream oper
jracle (use Gerrit)
2014/04/16 16:39:20
This is needed for unit test assertions
| |
65 return usage_page == other.usage_page && usage == other.usage; | |
66 } | |
67 | |
68 private: | |
69 friend std::ostream& operator<<(std::ostream& os, | |
70 const HidUsageAndPage& usage_and_page) { | |
Ken Rockot(use gerrit already)
2014/04/15 21:18:37
Please do not inline this, and it doesn't need to
jracle (use Gerrit)
2014/04/16 16:39:20
OK
| |
71 os << "Usage Page: " << (Page)usage_and_page.usage_page | |
72 << ", Usage: " << usage_and_page.usage; | |
73 return os; | |
74 }; | |
75 | |
76 friend std::ostream& operator<<(std::ostream& os, const Page& usage_page) { | |
Ken Rockot(use gerrit already)
2014/04/15 21:18:37
Please do not inline this, and it doesn't need to
jracle (use Gerrit)
2014/04/16 16:39:20
OK
| |
77 switch (usage_page) { | |
78 case kPageUndefined: | |
79 os << "Undefined"; | |
80 break; | |
81 case kPageGenericDesktop: | |
82 os << "Generic Desktop"; | |
83 break; | |
84 case kPageSimulation: | |
85 os << "Simulation"; | |
86 break; | |
87 case kPageVirtualReality: | |
88 os << "Virtual Reality"; | |
89 break; | |
90 case kPageSport: | |
91 os << "Sport"; | |
92 break; | |
93 case kPageGame: | |
94 os << "Game"; | |
95 break; | |
96 case kPageKeyboard: | |
97 os << "Keyboard"; | |
98 break; | |
99 case kPageLed: | |
100 os << "Led"; | |
101 break; | |
102 case kPageButton: | |
103 os << "Button"; | |
104 break; | |
105 case kPageOrdinal: | |
106 os << "Ordinal"; | |
107 break; | |
108 case kPageTelephony: | |
109 os << "Telephony"; | |
110 break; | |
111 case kPageConsumer: | |
112 os << "Consumer"; | |
113 break; | |
114 case kPageDigitizer: | |
115 os << "Digitizer"; | |
116 break; | |
117 case kPagePidPage: | |
118 os << "Pid Page"; | |
119 break; | |
120 case kPageUnicode: | |
121 os << "Unicode"; | |
122 break; | |
123 case kPageAlphanumericDisplay: | |
124 os << "Alphanumeric Display"; | |
125 break; | |
126 case kPageMedicalInstruments: | |
127 os << "Medical Instruments"; | |
128 break; | |
129 case kPageMonitor0: | |
130 os << "Monitor 0"; | |
131 break; | |
132 case kPageMonitor1: | |
133 os << "Monitor 1"; | |
134 break; | |
135 case kPageMonitor2: | |
136 os << "Monitor 2"; | |
137 break; | |
138 case kPageMonitor3: | |
139 os << "Monitor 3"; | |
140 break; | |
141 case kPagePower0: | |
142 os << "Power 0"; | |
143 break; | |
144 case kPagePower1: | |
145 os << "Power 1"; | |
146 break; | |
147 case kPagePower2: | |
148 os << "Power 2"; | |
149 break; | |
150 case kPagePower3: | |
151 os << "Power 3"; | |
152 break; | |
153 case kPageBarCodeScanner: | |
154 os << "Bar Code Scanner"; | |
155 break; | |
156 case kPageScale: | |
157 os << "Scale"; | |
158 break; | |
159 case kPageMagneticStripeReader: | |
160 os << "Magnetic Stripe Reader"; | |
161 break; | |
162 case kPageReservedPointOfSale: | |
163 os << "Reserved Point Of Sale"; | |
164 break; | |
165 case kPageCameraControl: | |
166 os << "Camera Control"; | |
167 break; | |
168 case kPageArcade: | |
169 os << "Arcade"; | |
170 break; | |
171 case kPageVendor: | |
172 os << "Vendor"; | |
173 break; | |
174 case kPageMediaCenter: | |
175 os << "Media Center"; | |
176 break; | |
177 default: | |
178 NOTREACHED(); | |
179 break; | |
180 } | |
181 return os; | |
182 } | |
183 }; | |
184 | |
185 } // namespace device | |
186 | |
187 #endif // DEVICE_HID_HID_USAGE_AND_PAGE_H_ | |
OLD | NEW |