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 enum Page { |
| 18 kPageUndefined = 0x00, |
| 19 kPageGenericDesktop = 0x01, |
| 20 kPageSimulation = 0x02, |
| 21 kPageVirtualReality = 0x03, |
| 22 kPageSport = 0x04, |
| 23 kPageGame = 0x05, |
| 24 kPageKeyboard = 0x07, |
| 25 kPageLed = 0x08, |
| 26 kPageButton = 0x09, |
| 27 kPageOrdinal = 0x0A, |
| 28 kPageTelephony = 0x0B, |
| 29 kPageConsumer = 0x0C, |
| 30 kPageDigitizer = 0x0D, |
| 31 kPagePidPage = 0x0F, |
| 32 kPageUnicode = 0x10, |
| 33 kPageAlphanumericDisplay = 0x14, |
| 34 kPageMedicalInstruments = 0x40, |
| 35 kPageMonitor0 = 0x80, |
| 36 kPageMonitor1 = 0x81, |
| 37 kPageMonitor2 = 0x82, |
| 38 kPageMonitor3 = 0x83, |
| 39 kPagePower0 = 0x84, |
| 40 kPagePower1 = 0x85, |
| 41 kPagePower2 = 0x86, |
| 42 kPagePower3 = 0x87, |
| 43 kPageBarCodeScanner = 0x8C, |
| 44 kPageScale = 0x8D, |
| 45 kPageMagneticStripeReader = 0x8E, |
| 46 kPageReservedPointOfSale = 0x8F, |
| 47 kPageCameraControl = 0x90, |
| 48 kPageArcade = 0x91, |
| 49 kPageVendor = 0xFF00, |
| 50 kPageMediaCenter = 0xFFBC |
| 51 }; |
| 52 |
| 53 HidUsageAndPage(Page usage_page, uint16_t usage) |
| 54 : usage_page((uint16_t)usage_page), usage(usage) {} |
| 55 HidUsageAndPage(uint16_t usage_page, uint16_t usage) |
| 56 : usage_page(usage_page), usage(usage) {} |
| 57 HidUsageAndPage() : usage_page(0), usage(0) {} |
| 58 ~HidUsageAndPage() {} |
| 59 |
| 60 uint16_t usage_page; |
| 61 uint16_t usage; |
| 62 |
| 63 bool operator==(const HidUsageAndPage& other) const { |
| 64 return usage_page == other.usage_page && usage == other.usage; |
| 65 } |
| 66 |
| 67 private: |
| 68 friend std::ostream& operator<<(std::ostream& os, |
| 69 const HidUsageAndPage& usage_and_page) { |
| 70 os << "Usage Page: " << (Page)usage_and_page.usage_page |
| 71 << ", Usage: " << usage_and_page.usage; |
| 72 return os; |
| 73 }; |
| 74 |
| 75 friend std::ostream& operator<<(std::ostream& os, const Page& usage_page) { |
| 76 switch (usage_page) { |
| 77 case kPageUndefined: |
| 78 os << "Undefined"; |
| 79 break; |
| 80 case kPageGenericDesktop: |
| 81 os << "Generic Desktop"; |
| 82 break; |
| 83 case kPageSimulation: |
| 84 os << "Simulation"; |
| 85 break; |
| 86 case kPageVirtualReality: |
| 87 os << "Virtual Reality"; |
| 88 break; |
| 89 case kPageSport: |
| 90 os << "Sport"; |
| 91 break; |
| 92 case kPageGame: |
| 93 os << "Game"; |
| 94 break; |
| 95 case kPageKeyboard: |
| 96 os << "Keyboard"; |
| 97 break; |
| 98 case kPageLed: |
| 99 os << "Led"; |
| 100 break; |
| 101 case kPageButton: |
| 102 os << "Button"; |
| 103 break; |
| 104 case kPageOrdinal: |
| 105 os << "Ordinal"; |
| 106 break; |
| 107 case kPageTelephony: |
| 108 os << "Telephony"; |
| 109 break; |
| 110 case kPageConsumer: |
| 111 os << "Consumer"; |
| 112 break; |
| 113 case kPageDigitizer: |
| 114 os << "Digitizer"; |
| 115 break; |
| 116 case kPagePidPage: |
| 117 os << "Pid Page"; |
| 118 break; |
| 119 case kPageUnicode: |
| 120 os << "Unicode"; |
| 121 break; |
| 122 case kPageAlphanumericDisplay: |
| 123 os << "Alphanumeric Display"; |
| 124 break; |
| 125 case kPageMedicalInstruments: |
| 126 os << "Medical Instruments"; |
| 127 break; |
| 128 case kPageMonitor0: |
| 129 os << "Monitor 0"; |
| 130 break; |
| 131 case kPageMonitor1: |
| 132 os << "Monitor 1"; |
| 133 break; |
| 134 case kPageMonitor2: |
| 135 os << "Monitor 2"; |
| 136 break; |
| 137 case kPageMonitor3: |
| 138 os << "Monitor 3"; |
| 139 break; |
| 140 case kPagePower0: |
| 141 os << "Power 0"; |
| 142 break; |
| 143 case kPagePower1: |
| 144 os << "Power 1"; |
| 145 break; |
| 146 case kPagePower2: |
| 147 os << "Power 2"; |
| 148 break; |
| 149 case kPagePower3: |
| 150 os << "Power 3"; |
| 151 break; |
| 152 case kPageBarCodeScanner: |
| 153 os << "Bar Code Scanner"; |
| 154 break; |
| 155 case kPageScale: |
| 156 os << "Scale"; |
| 157 break; |
| 158 case kPageMagneticStripeReader: |
| 159 os << "Magnetic Stripe Reader"; |
| 160 break; |
| 161 case kPageReservedPointOfSale: |
| 162 os << "Reserved Point Of Sale"; |
| 163 break; |
| 164 case kPageCameraControl: |
| 165 os << "Camera Control"; |
| 166 break; |
| 167 case kPageArcade: |
| 168 os << "Arcade"; |
| 169 break; |
| 170 case kPageVendor: |
| 171 os << "Vendor"; |
| 172 break; |
| 173 case kPageMediaCenter: |
| 174 os << "Media Center"; |
| 175 break; |
| 176 default: |
| 177 NOTREACHED(); |
| 178 break; |
| 179 } |
| 180 return os; |
| 181 } |
| 182 }; |
| 183 |
| 184 } // namespace device |
| 185 |
| 186 #endif // DEVICE_HID_HID_USAGE_AND_PAGE_H_ |
OLD | NEW |