OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_USB_USB_INTERFACE_H_ | 5 #ifndef COMPONENTS_USB_SERVICE_USB_INTERFACE_H_ |
6 #define CHROME_BROWSER_USB_USB_INTERFACE_H_ | 6 #define COMPONENTS_USB_SERVICE_USB_INTERFACE_H_ |
7 | 7 |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
| 9 #include "components/usb_service/usb_service_export.h" |
9 | 10 |
10 struct libusb_config_descriptor; | 11 struct libusb_config_descriptor; |
11 struct libusb_endpoint_descriptor; | 12 struct libusb_endpoint_descriptor; |
12 struct libusb_interface; | 13 struct libusb_interface; |
13 struct libusb_interface_descriptor; | 14 struct libusb_interface_descriptor; |
14 | 15 |
| 16 namespace usb_service { |
| 17 |
15 typedef libusb_config_descriptor* PlatformUsbConfigDescriptor; | 18 typedef libusb_config_descriptor* PlatformUsbConfigDescriptor; |
16 typedef const libusb_endpoint_descriptor* PlatformUsbEndpointDescriptor; | 19 typedef const libusb_endpoint_descriptor* PlatformUsbEndpointDescriptor; |
17 typedef const libusb_interface* PlatformUsbInterface; | 20 typedef const libusb_interface* PlatformUsbInterface; |
18 typedef const libusb_interface_descriptor* PlatformUsbInterfaceDescriptor; | 21 typedef const libusb_interface_descriptor* PlatformUsbInterfaceDescriptor; |
19 | 22 |
20 enum UsbTransferType { | 23 enum UsbTransferType { |
21 USB_TRANSFER_CONTROL = 0, | 24 USB_TRANSFER_CONTROL = 0, |
22 USB_TRANSFER_ISOCHRONOUS, | 25 USB_TRANSFER_ISOCHRONOUS, |
23 USB_TRANSFER_BULK, | 26 USB_TRANSFER_BULK, |
24 USB_TRANSFER_INTERRUPT, | 27 USB_TRANSFER_INTERRUPT, |
(...skipping 15 matching lines...) Expand all Loading... |
40 USB_USAGE_DATA = 0, | 43 USB_USAGE_DATA = 0, |
41 USB_USAGE_FEEDBACK, | 44 USB_USAGE_FEEDBACK, |
42 USB_USAGE_EXPLICIT_FEEDBACK | 45 USB_USAGE_EXPLICIT_FEEDBACK |
43 }; | 46 }; |
44 | 47 |
45 class UsbDevice; | 48 class UsbDevice; |
46 class UsbConfigDescriptor; | 49 class UsbConfigDescriptor; |
47 class UsbInterfaceDescriptor; | 50 class UsbInterfaceDescriptor; |
48 class UsbInterfaceAltSettingDescriptor; | 51 class UsbInterfaceAltSettingDescriptor; |
49 | 52 |
50 class UsbEndpointDescriptor | 53 class USB_SERVICE_EXPORT UsbEndpointDescriptor |
51 : public base::RefCounted<const UsbEndpointDescriptor> { | 54 : public base::RefCounted<const UsbEndpointDescriptor> { |
52 public: | 55 public: |
53 int GetAddress() const; | 56 int GetAddress() const; |
54 UsbEndpointDirection GetDirection() const; | 57 UsbEndpointDirection GetDirection() const; |
55 int GetMaximumPacketSize() const; | 58 int GetMaximumPacketSize() const; |
56 UsbSynchronizationType GetSynchronizationType() const; | 59 UsbSynchronizationType GetSynchronizationType() const; |
57 UsbTransferType GetTransferType() const; | 60 UsbTransferType GetTransferType() const; |
58 UsbUsageType GetUsageType() const; | 61 UsbUsageType GetUsageType() const; |
59 int GetPollingInterval() const; | 62 int GetPollingInterval() const; |
60 | 63 |
61 private: | 64 private: |
62 friend class base::RefCounted<const UsbEndpointDescriptor>; | 65 friend class base::RefCounted<const UsbEndpointDescriptor>; |
63 friend class UsbInterfaceAltSettingDescriptor; | 66 friend class UsbInterfaceAltSettingDescriptor; |
64 | 67 |
65 UsbEndpointDescriptor( | 68 UsbEndpointDescriptor(scoped_refptr<const UsbConfigDescriptor> config, |
66 scoped_refptr<const UsbConfigDescriptor> config, | 69 PlatformUsbEndpointDescriptor descriptor); |
67 PlatformUsbEndpointDescriptor descriptor); | |
68 ~UsbEndpointDescriptor(); | 70 ~UsbEndpointDescriptor(); |
69 | 71 |
70 scoped_refptr<const UsbConfigDescriptor> config_; | 72 scoped_refptr<const UsbConfigDescriptor> config_; |
71 PlatformUsbEndpointDescriptor descriptor_; | 73 PlatformUsbEndpointDescriptor descriptor_; |
72 | 74 |
73 DISALLOW_COPY_AND_ASSIGN(UsbEndpointDescriptor); | 75 DISALLOW_COPY_AND_ASSIGN(UsbEndpointDescriptor); |
74 }; | 76 }; |
75 | 77 |
76 class UsbInterfaceAltSettingDescriptor | 78 class USB_SERVICE_EXPORT UsbInterfaceAltSettingDescriptor |
77 : public base::RefCounted<const UsbInterfaceAltSettingDescriptor> { | 79 : public base::RefCounted<const UsbInterfaceAltSettingDescriptor> { |
78 public: | 80 public: |
79 size_t GetNumEndpoints() const; | 81 size_t GetNumEndpoints() const; |
80 scoped_refptr<const UsbEndpointDescriptor> GetEndpoint(size_t index) const; | 82 scoped_refptr<const UsbEndpointDescriptor> GetEndpoint(size_t index) const; |
81 | 83 |
82 int GetInterfaceNumber() const; | 84 int GetInterfaceNumber() const; |
83 int GetAlternateSetting() const; | 85 int GetAlternateSetting() const; |
84 int GetInterfaceClass() const; | 86 int GetInterfaceClass() const; |
85 int GetInterfaceSubclass() const; | 87 int GetInterfaceSubclass() const; |
86 int GetInterfaceProtocol() const; | 88 int GetInterfaceProtocol() const; |
87 | 89 |
88 private: | 90 private: |
89 friend class base::RefCounted<const UsbInterfaceAltSettingDescriptor>; | 91 friend class base::RefCounted<const UsbInterfaceAltSettingDescriptor>; |
90 friend class UsbInterfaceDescriptor; | 92 friend class UsbInterfaceDescriptor; |
91 | 93 |
92 UsbInterfaceAltSettingDescriptor( | 94 UsbInterfaceAltSettingDescriptor( |
93 scoped_refptr<const UsbConfigDescriptor> config, | 95 scoped_refptr<const UsbConfigDescriptor> config, |
94 PlatformUsbInterfaceDescriptor descriptor); | 96 PlatformUsbInterfaceDescriptor descriptor); |
95 ~UsbInterfaceAltSettingDescriptor(); | 97 ~UsbInterfaceAltSettingDescriptor(); |
96 | 98 |
97 scoped_refptr<const UsbConfigDescriptor> config_; | 99 scoped_refptr<const UsbConfigDescriptor> config_; |
98 PlatformUsbInterfaceDescriptor descriptor_; | 100 PlatformUsbInterfaceDescriptor descriptor_; |
99 | 101 |
100 DISALLOW_COPY_AND_ASSIGN(UsbInterfaceAltSettingDescriptor); | 102 DISALLOW_COPY_AND_ASSIGN(UsbInterfaceAltSettingDescriptor); |
101 }; | 103 }; |
102 | 104 |
103 class UsbInterfaceDescriptor | 105 class USB_SERVICE_EXPORT UsbInterfaceDescriptor |
104 : public base::RefCounted<const UsbInterfaceDescriptor> { | 106 : public base::RefCounted<const UsbInterfaceDescriptor> { |
105 public: | 107 public: |
106 size_t GetNumAltSettings() const; | 108 size_t GetNumAltSettings() const; |
107 scoped_refptr<const UsbInterfaceAltSettingDescriptor> GetAltSetting( | 109 scoped_refptr<const UsbInterfaceAltSettingDescriptor> GetAltSetting( |
108 size_t index) const; | 110 size_t index) const; |
109 | 111 |
110 private: | 112 private: |
111 friend class base::RefCounted<const UsbInterfaceDescriptor>; | 113 friend class base::RefCounted<const UsbInterfaceDescriptor>; |
112 friend class UsbConfigDescriptor; | 114 friend class UsbConfigDescriptor; |
113 | 115 |
114 UsbInterfaceDescriptor(scoped_refptr<const UsbConfigDescriptor> config, | 116 UsbInterfaceDescriptor(scoped_refptr<const UsbConfigDescriptor> config, |
115 PlatformUsbInterface usbInterface); | 117 PlatformUsbInterface usbInterface); |
116 ~UsbInterfaceDescriptor(); | 118 ~UsbInterfaceDescriptor(); |
117 | 119 |
118 scoped_refptr<const UsbConfigDescriptor> config_; | 120 scoped_refptr<const UsbConfigDescriptor> config_; |
119 PlatformUsbInterface interface_; | 121 PlatformUsbInterface interface_; |
120 | 122 |
121 DISALLOW_COPY_AND_ASSIGN(UsbInterfaceDescriptor); | 123 DISALLOW_COPY_AND_ASSIGN(UsbInterfaceDescriptor); |
122 }; | 124 }; |
123 | 125 |
124 class UsbConfigDescriptor : public base::RefCounted<UsbConfigDescriptor> { | 126 class USB_SERVICE_EXPORT UsbConfigDescriptor |
| 127 : public base::RefCounted<UsbConfigDescriptor> { |
125 public: | 128 public: |
126 size_t GetNumInterfaces() const; | 129 size_t GetNumInterfaces() const; |
127 scoped_refptr<const UsbInterfaceDescriptor> GetInterface(size_t index) const; | 130 scoped_refptr<const UsbInterfaceDescriptor> GetInterface(size_t index) const; |
128 | 131 |
129 private: | 132 private: |
130 friend class base::RefCounted<UsbConfigDescriptor>; | 133 friend class base::RefCounted<UsbConfigDescriptor>; |
131 friend class UsbDevice; | 134 friend class UsbDevice; |
132 | 135 |
133 explicit UsbConfigDescriptor(PlatformUsbConfigDescriptor config); | 136 explicit UsbConfigDescriptor(PlatformUsbConfigDescriptor config); |
134 ~UsbConfigDescriptor(); | 137 ~UsbConfigDescriptor(); |
135 | 138 |
136 PlatformUsbConfigDescriptor config_; | 139 PlatformUsbConfigDescriptor config_; |
137 | 140 |
138 DISALLOW_COPY_AND_ASSIGN(UsbConfigDescriptor); | 141 DISALLOW_COPY_AND_ASSIGN(UsbConfigDescriptor); |
139 }; | 142 }; |
140 | 143 |
141 #endif // CHROME_BROWSER_USB_USB_INTERFACE_H_ | 144 } // namespace usb_service; |
| 145 |
| 146 #endif // COMPONENTS_USB_SERVICE_USB_INTERFACE_H_ |
OLD | NEW |