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

Unified Diff: device/hid/hid_usage_and_page.h

Issue 225513005: chrome.hid : enrich device info with Top-Level collections usages (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: renaming 'parent_item' Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/hid/hid_service_win.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/hid/hid_usage_and_page.h
diff --git a/device/hid/hid_usage_and_page.h b/device/hid/hid_usage_and_page.h
new file mode 100644
index 0000000000000000000000000000000000000000..fd366acda883025cb235145e2d30a81fa576e144
--- /dev/null
+++ b/device/hid/hid_usage_and_page.h
@@ -0,0 +1,187 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef DEVICE_HID_HID_USAGE_AND_PAGE_H_
+#define DEVICE_HID_HID_USAGE_AND_PAGE_H_
+
+#include <stdint.h>
+
+#include <ostream>
+
+#include "base/logging.h"
+
+namespace device {
+
+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
+
+ enum Page {
+ kPageUndefined = 0x00,
+ kPageGenericDesktop = 0x01,
+ kPageSimulation = 0x02,
+ kPageVirtualReality = 0x03,
+ kPageSport = 0x04,
+ kPageGame = 0x05,
+ kPageKeyboard = 0x07,
+ kPageLed = 0x08,
+ kPageButton = 0x09,
+ kPageOrdinal = 0x0A,
+ kPageTelephony = 0x0B,
+ kPageConsumer = 0x0C,
+ kPageDigitizer = 0x0D,
+ kPagePidPage = 0x0F,
+ kPageUnicode = 0x10,
+ kPageAlphanumericDisplay = 0x14,
+ kPageMedicalInstruments = 0x40,
+ kPageMonitor0 = 0x80,
+ kPageMonitor1 = 0x81,
+ kPageMonitor2 = 0x82,
+ kPageMonitor3 = 0x83,
+ kPagePower0 = 0x84,
+ kPagePower1 = 0x85,
+ kPagePower2 = 0x86,
+ kPagePower3 = 0x87,
+ kPageBarCodeScanner = 0x8C,
+ kPageScale = 0x8D,
+ kPageMagneticStripeReader = 0x8E,
+ kPageReservedPointOfSale = 0x8F,
+ kPageCameraControl = 0x90,
+ kPageArcade = 0x91,
+ kPageVendor = 0xFF00,
+ kPageMediaCenter = 0xFFBC
+ };
+
+ HidUsageAndPage(Page usage_page, uint16_t usage)
+ : usage_page((uint16_t)usage_page), usage(usage) {}
+ 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!
+ : usage_page(usage_page), usage(usage) {}
+ HidUsageAndPage() : usage_page(0), usage(0) {}
+ ~HidUsageAndPage() {}
+
+ 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
+ uint16_t usage;
+
+ 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
+ return usage_page == other.usage_page && usage == other.usage;
+ }
+
+ private:
+ friend std::ostream& operator<<(std::ostream& os,
+ 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
+ os << "Usage Page: " << (Page)usage_and_page.usage_page
+ << ", Usage: " << usage_and_page.usage;
+ return os;
+ };
+
+ 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
+ switch (usage_page) {
+ case kPageUndefined:
+ os << "Undefined";
+ break;
+ case kPageGenericDesktop:
+ os << "Generic Desktop";
+ break;
+ case kPageSimulation:
+ os << "Simulation";
+ break;
+ case kPageVirtualReality:
+ os << "Virtual Reality";
+ break;
+ case kPageSport:
+ os << "Sport";
+ break;
+ case kPageGame:
+ os << "Game";
+ break;
+ case kPageKeyboard:
+ os << "Keyboard";
+ break;
+ case kPageLed:
+ os << "Led";
+ break;
+ case kPageButton:
+ os << "Button";
+ break;
+ case kPageOrdinal:
+ os << "Ordinal";
+ break;
+ case kPageTelephony:
+ os << "Telephony";
+ break;
+ case kPageConsumer:
+ os << "Consumer";
+ break;
+ case kPageDigitizer:
+ os << "Digitizer";
+ break;
+ case kPagePidPage:
+ os << "Pid Page";
+ break;
+ case kPageUnicode:
+ os << "Unicode";
+ break;
+ case kPageAlphanumericDisplay:
+ os << "Alphanumeric Display";
+ break;
+ case kPageMedicalInstruments:
+ os << "Medical Instruments";
+ break;
+ case kPageMonitor0:
+ os << "Monitor 0";
+ break;
+ case kPageMonitor1:
+ os << "Monitor 1";
+ break;
+ case kPageMonitor2:
+ os << "Monitor 2";
+ break;
+ case kPageMonitor3:
+ os << "Monitor 3";
+ break;
+ case kPagePower0:
+ os << "Power 0";
+ break;
+ case kPagePower1:
+ os << "Power 1";
+ break;
+ case kPagePower2:
+ os << "Power 2";
+ break;
+ case kPagePower3:
+ os << "Power 3";
+ break;
+ case kPageBarCodeScanner:
+ os << "Bar Code Scanner";
+ break;
+ case kPageScale:
+ os << "Scale";
+ break;
+ case kPageMagneticStripeReader:
+ os << "Magnetic Stripe Reader";
+ break;
+ case kPageReservedPointOfSale:
+ os << "Reserved Point Of Sale";
+ break;
+ case kPageCameraControl:
+ os << "Camera Control";
+ break;
+ case kPageArcade:
+ os << "Arcade";
+ break;
+ case kPageVendor:
+ os << "Vendor";
+ break;
+ case kPageMediaCenter:
+ os << "Media Center";
+ break;
+ default:
+ NOTREACHED();
+ break;
+ }
+ return os;
+ }
+};
+
+} // namespace device
+
+#endif // DEVICE_HID_HID_USAGE_AND_PAGE_H_
« no previous file with comments | « device/hid/hid_service_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698