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 { |
| 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), |
| 56 usage(usage) {} |
| 57 HidUsageAndPage(uint16_t usage_page, uint16_t usage) |
| 58 : usage_page(usage_page), |
| 59 usage(usage) {} |
| 60 HidUsageAndPage() |
| 61 : usage_page(0), |
| 62 usage(0) {} |
| 63 ~HidUsageAndPage() {} |
| 64 |
| 65 uint16_t usage_page; |
| 66 uint16_t usage; |
| 67 |
| 68 bool operator==(const HidUsageAndPage& other) const { |
| 69 return usage_page == other.usage_page |
| 70 && usage == other.usage; |
| 71 } |
| 72 |
| 73 private: |
| 74 friend std::ostream& operator<<(std::ostream& os, |
| 75 const HidUsageAndPage& usage_and_page) { |
| 76 os << "Usage Page: " << (Page)usage_and_page.usage_page |
| 77 << ", Usage: " << usage_and_page.usage; |
| 78 return os; |
| 79 }; |
| 80 |
| 81 friend std::ostream& operator<<(std::ostream& os, |
| 82 const Page& usage_page) { |
| 83 switch (usage_page) { |
| 84 case kPageUndefined: |
| 85 os << "Undefined"; |
| 86 break; |
| 87 case kPageGenericDesktop: |
| 88 os << "Generic Desktop"; |
| 89 break; |
| 90 case kPageSimulation: |
| 91 os << "Simulation"; |
| 92 break; |
| 93 case kPageVirtualReality: |
| 94 os << "Virtual Reality"; |
| 95 break; |
| 96 case kPageSport: |
| 97 os << "Sport"; |
| 98 break; |
| 99 case kPageGame: |
| 100 os << "Game"; |
| 101 break; |
| 102 case kPageKeyboard: |
| 103 os << "Keyboard"; |
| 104 break; |
| 105 case kPageLed: |
| 106 os << "Led"; |
| 107 break; |
| 108 case kPageButton: |
| 109 os << "Button"; |
| 110 break; |
| 111 case kPageOrdinal: |
| 112 os << "Ordinal"; |
| 113 break; |
| 114 case kPageTelephony: |
| 115 os << "Telephony"; |
| 116 break; |
| 117 case kPageConsumer: |
| 118 os << "Consumer"; |
| 119 break; |
| 120 case kPageDigitizer: |
| 121 os << "Digitizer"; |
| 122 break; |
| 123 case kPagePidPage: |
| 124 os << "Pid Page"; |
| 125 break; |
| 126 case kPageUnicode: |
| 127 os << "Unicode"; |
| 128 break; |
| 129 case kPageAlphanumericDisplay: |
| 130 os << "Alphanumeric Display"; |
| 131 break; |
| 132 case kPageMedicalInstruments: |
| 133 os << "Medical Instruments"; |
| 134 break; |
| 135 case kPageMonitor0: |
| 136 os << "Monitor 0"; |
| 137 break; |
| 138 case kPageMonitor1: |
| 139 os << "Monitor 1"; |
| 140 break; |
| 141 case kPageMonitor2: |
| 142 os << "Monitor 2"; |
| 143 break; |
| 144 case kPageMonitor3: |
| 145 os << "Monitor 3"; |
| 146 break; |
| 147 case kPagePower0: |
| 148 os << "Power 0"; |
| 149 break; |
| 150 case kPagePower1: |
| 151 os << "Power 1"; |
| 152 break; |
| 153 case kPagePower2: |
| 154 os << "Power 2"; |
| 155 break; |
| 156 case kPagePower3: |
| 157 os << "Power 3"; |
| 158 break; |
| 159 case kPageBarCodeScanner: |
| 160 os << "Bar Code Scanner"; |
| 161 break; |
| 162 case kPageScale: |
| 163 os << "Scale"; |
| 164 break; |
| 165 case kPageMagneticStripeReader: |
| 166 os << "Magnetic Stripe Reader"; |
| 167 break; |
| 168 case kPageReservedPointOfSale: |
| 169 os << "Reserved Point Of Sale"; |
| 170 break; |
| 171 case kPageCameraControl: |
| 172 os << "Camera Control"; |
| 173 break; |
| 174 case kPageArcade: |
| 175 os << "Arcade"; |
| 176 break; |
| 177 case kPageVendor: |
| 178 os << "Vendor"; |
| 179 break; |
| 180 case kPageMediaCenter: |
| 181 os << "Media Center"; |
| 182 break; |
| 183 default: |
| 184 NOTREACHED(); |
| 185 break; |
| 186 } |
| 187 return os; |
| 188 } |
| 189 }; |
| 190 |
| 191 } // namespace device |
| 192 |
| 193 #endif // DEVICE_HID_HID_USAGE_AND_PAGE_H_ |
OLD | NEW |