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

Side by Side Diff: chrome/browser/extensions/api/usb/usb_api.h

Issue 268713013: Move chrome.usb to //extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 7 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/extensions/api/usb/OWNERS ('k') | chrome/browser/extensions/api/usb/usb_api.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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.
4
5 #ifndef CHROME_BROWSER_EXTENSIONS_API_USB_USB_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_USB_USB_API_H_
7
8 #include <string>
9 #include <vector>
10
11 #include "base/memory/ref_counted.h"
12 #include "base/memory/scoped_ptr.h"
13 #include "chrome/common/extensions/api/usb.h"
14 #include "components/usb_service/usb_device.h"
15 #include "components/usb_service/usb_device_handle.h"
16 #include "extensions/browser/api/api_resource_manager.h"
17 #include "extensions/browser/api/async_api_function.h"
18 #include "net/base/io_buffer.h"
19
20 namespace extensions {
21
22 class UsbDeviceResource;
23
24 class UsbAsyncApiFunction : public AsyncApiFunction {
25 public:
26 UsbAsyncApiFunction();
27
28 protected:
29 virtual ~UsbAsyncApiFunction();
30
31 virtual bool PrePrepare() OVERRIDE;
32 virtual bool Respond() OVERRIDE;
33
34 scoped_refptr<usb_service::UsbDevice> GetDeviceOrOrCompleteWithError(
35 const extensions::api::usb::Device& input_device);
36
37 scoped_refptr<usb_service::UsbDeviceHandle>
38 GetDeviceHandleOrCompleteWithError(
39 const extensions::api::usb::ConnectionHandle& input_device_handle);
40
41 void RemoveUsbDeviceResource(int api_resource_id);
42
43 void CompleteWithError(const std::string& error);
44
45 ApiResourceManager<UsbDeviceResource>* manager_;
46 };
47
48 class UsbAsyncApiTransferFunction : public UsbAsyncApiFunction {
49 protected:
50 UsbAsyncApiTransferFunction();
51 virtual ~UsbAsyncApiTransferFunction();
52
53 bool ConvertDirectionSafely(const extensions::api::usb::Direction& input,
54 usb_service::UsbEndpointDirection* output);
55 bool ConvertRequestTypeSafely(
56 const extensions::api::usb::RequestType& input,
57 usb_service::UsbDeviceHandle::TransferRequestType* output);
58 bool ConvertRecipientSafely(
59 const extensions::api::usb::Recipient& input,
60 usb_service::UsbDeviceHandle::TransferRecipient* output);
61
62 void OnCompleted(usb_service::UsbTransferStatus status,
63 scoped_refptr<net::IOBuffer> data,
64 size_t length);
65 };
66
67 class UsbFindDevicesFunction : public UsbAsyncApiFunction {
68 public:
69 DECLARE_EXTENSION_FUNCTION("usb.findDevices", USB_FINDDEVICES)
70
71 UsbFindDevicesFunction();
72
73 protected:
74 virtual ~UsbFindDevicesFunction();
75
76 virtual bool Prepare() OVERRIDE;
77 virtual void AsyncWorkStart() OVERRIDE;
78
79 private:
80 void OpenDevices(
81 scoped_ptr<std::vector<scoped_refptr<usb_service::UsbDevice> > > devices);
82
83 std::vector<scoped_refptr<usb_service::UsbDeviceHandle> > device_handles_;
84 scoped_ptr<extensions::api::usb::FindDevices::Params> parameters_;
85 };
86
87 class UsbGetDevicesFunction : public UsbAsyncApiFunction {
88 public:
89 DECLARE_EXTENSION_FUNCTION("usb.getDevices", USB_GETDEVICES)
90
91 UsbGetDevicesFunction();
92
93 virtual bool Prepare() OVERRIDE;
94 virtual void AsyncWorkStart() OVERRIDE;
95
96 protected:
97 virtual ~UsbGetDevicesFunction();
98
99 private:
100 void EnumerationCompletedFileThread(
101 scoped_ptr<std::vector<scoped_refptr<usb_service::UsbDevice> > > devices);
102
103 scoped_ptr<extensions::api::usb::GetDevices::Params> parameters_;
104 };
105
106 class UsbRequestAccessFunction : public UsbAsyncApiFunction {
107 public:
108 DECLARE_EXTENSION_FUNCTION("usb.requestAccess", USB_REQUESTACCESS)
109
110 UsbRequestAccessFunction();
111
112 virtual bool Prepare() OVERRIDE;
113 virtual void AsyncWorkStart() OVERRIDE;
114
115 protected:
116 virtual ~UsbRequestAccessFunction();
117
118 void OnCompleted(bool success);
119
120 private:
121 scoped_ptr<extensions::api::usb::RequestAccess::Params> parameters_;
122 };
123
124 class UsbOpenDeviceFunction : public UsbAsyncApiFunction {
125 public:
126 DECLARE_EXTENSION_FUNCTION("usb.openDevice", USB_OPENDEVICE)
127
128 UsbOpenDeviceFunction();
129
130 virtual bool Prepare() OVERRIDE;
131 virtual void AsyncWorkStart() OVERRIDE;
132
133 protected:
134 virtual ~UsbOpenDeviceFunction();
135
136 private:
137 scoped_refptr<usb_service::UsbDeviceHandle> handle_;
138 scoped_ptr<extensions::api::usb::OpenDevice::Params> parameters_;
139 };
140
141 class UsbListInterfacesFunction : public UsbAsyncApiFunction {
142 public:
143 DECLARE_EXTENSION_FUNCTION("usb.listInterfaces", USB_LISTINTERFACES)
144
145 UsbListInterfacesFunction();
146
147 protected:
148 virtual ~UsbListInterfacesFunction();
149
150 virtual bool Prepare() OVERRIDE;
151 virtual void AsyncWorkStart() OVERRIDE;
152
153 private:
154 bool ConvertDirectionSafely(const usb_service::UsbEndpointDirection& input,
155 extensions::api::usb::Direction* output);
156 bool ConvertSynchronizationTypeSafely(
157 const usb_service::UsbSynchronizationType& input,
158 extensions::api::usb::SynchronizationType* output);
159 bool ConvertTransferTypeSafely(const usb_service::UsbTransferType& input,
160 extensions::api::usb::TransferType* output);
161 bool ConvertUsageTypeSafely(const usb_service::UsbUsageType& input,
162 extensions::api::usb::UsageType* output);
163
164 scoped_ptr<base::ListValue> result_;
165 scoped_ptr<extensions::api::usb::ListInterfaces::Params> parameters_;
166 };
167
168 class UsbCloseDeviceFunction : public UsbAsyncApiFunction {
169 public:
170 DECLARE_EXTENSION_FUNCTION("usb.closeDevice", USB_CLOSEDEVICE)
171
172 UsbCloseDeviceFunction();
173
174 protected:
175 virtual ~UsbCloseDeviceFunction();
176
177 virtual bool Prepare() OVERRIDE;
178 virtual void AsyncWorkStart() OVERRIDE;
179
180 private:
181 scoped_ptr<extensions::api::usb::CloseDevice::Params> parameters_;
182 };
183
184 class UsbClaimInterfaceFunction : public UsbAsyncApiFunction {
185 public:
186 DECLARE_EXTENSION_FUNCTION("usb.claimInterface", USB_CLAIMINTERFACE)
187
188 UsbClaimInterfaceFunction();
189
190 protected:
191 virtual ~UsbClaimInterfaceFunction();
192
193 virtual bool Prepare() OVERRIDE;
194 virtual void AsyncWorkStart() OVERRIDE;
195
196 private:
197 scoped_ptr<extensions::api::usb::ClaimInterface::Params> parameters_;
198 };
199
200 class UsbReleaseInterfaceFunction : public UsbAsyncApiFunction {
201 public:
202 DECLARE_EXTENSION_FUNCTION("usb.releaseInterface", USB_RELEASEINTERFACE)
203
204 UsbReleaseInterfaceFunction();
205
206 protected:
207 virtual ~UsbReleaseInterfaceFunction();
208
209 virtual bool Prepare() OVERRIDE;
210 virtual void AsyncWorkStart() OVERRIDE;
211
212 private:
213 scoped_ptr<extensions::api::usb::ReleaseInterface::Params> parameters_;
214 };
215
216 class UsbSetInterfaceAlternateSettingFunction : public UsbAsyncApiFunction {
217 public:
218 DECLARE_EXTENSION_FUNCTION("usb.setInterfaceAlternateSetting",
219 USB_SETINTERFACEALTERNATESETTING)
220
221 UsbSetInterfaceAlternateSettingFunction();
222
223 private:
224 virtual ~UsbSetInterfaceAlternateSettingFunction();
225
226 virtual bool Prepare() OVERRIDE;
227 virtual void AsyncWorkStart() OVERRIDE;
228
229 scoped_ptr<extensions::api::usb::SetInterfaceAlternateSetting::Params>
230 parameters_;
231 };
232
233 class UsbControlTransferFunction : public UsbAsyncApiTransferFunction {
234 public:
235 DECLARE_EXTENSION_FUNCTION("usb.controlTransfer", USB_CONTROLTRANSFER)
236
237 UsbControlTransferFunction();
238
239 protected:
240 virtual ~UsbControlTransferFunction();
241
242 virtual bool Prepare() OVERRIDE;
243 virtual void AsyncWorkStart() OVERRIDE;
244
245 private:
246 scoped_ptr<extensions::api::usb::ControlTransfer::Params> parameters_;
247 };
248
249 class UsbBulkTransferFunction : public UsbAsyncApiTransferFunction {
250 public:
251 DECLARE_EXTENSION_FUNCTION("usb.bulkTransfer", USB_BULKTRANSFER)
252
253 UsbBulkTransferFunction();
254
255 protected:
256 virtual ~UsbBulkTransferFunction();
257
258 virtual bool Prepare() OVERRIDE;
259 virtual void AsyncWorkStart() OVERRIDE;
260
261 private:
262 scoped_ptr<extensions::api::usb::BulkTransfer::Params> parameters_;
263 };
264
265 class UsbInterruptTransferFunction : public UsbAsyncApiTransferFunction {
266 public:
267 DECLARE_EXTENSION_FUNCTION("usb.interruptTransfer", USB_INTERRUPTTRANSFER)
268
269 UsbInterruptTransferFunction();
270
271 protected:
272 virtual ~UsbInterruptTransferFunction();
273
274 virtual bool Prepare() OVERRIDE;
275 virtual void AsyncWorkStart() OVERRIDE;
276
277 private:
278 scoped_ptr<extensions::api::usb::InterruptTransfer::Params> parameters_;
279 };
280
281 class UsbIsochronousTransferFunction : public UsbAsyncApiTransferFunction {
282 public:
283 DECLARE_EXTENSION_FUNCTION("usb.isochronousTransfer", USB_ISOCHRONOUSTRANSFER)
284
285 UsbIsochronousTransferFunction();
286
287 protected:
288 virtual ~UsbIsochronousTransferFunction();
289
290 virtual bool Prepare() OVERRIDE;
291 virtual void AsyncWorkStart() OVERRIDE;
292
293 private:
294 scoped_ptr<extensions::api::usb::IsochronousTransfer::Params> parameters_;
295 };
296
297 class UsbResetDeviceFunction : public UsbAsyncApiFunction {
298 public:
299 DECLARE_EXTENSION_FUNCTION("usb.resetDevice", USB_RESETDEVICE)
300
301 UsbResetDeviceFunction();
302
303 protected:
304 virtual ~UsbResetDeviceFunction();
305
306 virtual bool Prepare() OVERRIDE;
307 virtual void AsyncWorkStart() OVERRIDE;
308
309 private:
310 scoped_ptr<extensions::api::usb::ResetDevice::Params> parameters_;
311 };
312 } // namespace extensions
313
314 #endif // CHROME_BROWSER_EXTENSIONS_API_USB_USB_API_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/usb/OWNERS ('k') | chrome/browser/extensions/api/usb/usb_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698