Roll src/third_party/WebKit c63b89c:29324ab (svn 202546:202547)
[chromium-blink-merge.git] / device / usb / usb_ids.h
blob9b9461e3161b2a947bf9087b1c82212958e0416f
1 // Copyright (c) 2012 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.
5 #ifndef DEVICE_USB_USB_IDS_H_
6 #define DEVICE_USB_USB_IDS_H_
8 #include <stdint.h>
10 #include "base/basictypes.h"
12 namespace device {
14 struct UsbProduct {
15 const uint16_t id;
16 const char* name;
19 struct UsbVendor {
20 const uint16_t id;
21 const char* name;
22 const size_t product_size;
23 const UsbProduct* products;
26 // UsbIds provides a static mapping from a vendor ID to a name, as well as a
27 // mapping from a vendor/product ID pair to a product name.
28 class UsbIds {
29 public:
30 // Gets the name of the vendor who owns |vendor_id|. Returns NULL if the
31 // specified |vendor_id| does not exist.
32 static const char* GetVendorName(uint16_t vendor_id);
34 // Gets the name of a product belonging to a specific vendor. If either
35 // |vendor_id| refers to a vendor that does not exist, or |vendor_id| is valid
36 // but |product_id| refers to a product that does not exist, this method
37 // returns NULL.
38 static const char* GetProductName(uint16_t vendor_id, uint16_t product_id);
40 private:
41 UsbIds();
42 ~UsbIds();
44 // Finds the static UsbVendor associated with |vendor_id|. Returns NULL if no
45 // such vendor exists.
46 static const UsbVendor* FindVendor(uint16_t vendor_id);
48 // These fields are defined in a generated file. See device/usb/usb.gyp for
49 // more information on how they are generated.
50 static const size_t vendor_size_;
51 static const UsbVendor vendors_[];
53 DISALLOW_COPY_AND_ASSIGN(UsbIds);
56 } // namespace device
58 #endif // DEVICE_USB_USB_IDS_H_