Chromium Code Reviews| 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 |