| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include "content/renderer/usb/web_usb_device_impl.h" | 5 #include "content/renderer/usb/web_usb_device_impl.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 scoped_callbacks->onSuccess(adoptWebPtr(info.release())); | 171 scoped_callbacks->onSuccess(adoptWebPtr(info.release())); |
| 172 } | 172 } |
| 173 | 173 |
| 174 void OnIsochronousTransferIn( | 174 void OnIsochronousTransferIn( |
| 175 ScopedWebCallbacks<blink::WebUSBDeviceTransferCallbacks> callbacks, | 175 ScopedWebCallbacks<blink::WebUSBDeviceTransferCallbacks> callbacks, |
| 176 mojo::Array<uint8_t> data, | 176 mojo::Array<uint8_t> data, |
| 177 mojo::Array<device::usb::IsochronousPacketPtr> packets) { | 177 mojo::Array<device::usb::IsochronousPacketPtr> packets) { |
| 178 auto scoped_callbacks = callbacks.PassCallbacks(); | 178 auto scoped_callbacks = callbacks.PassCallbacks(); |
| 179 scoped_ptr<blink::WebUSBTransferInfo> info(new blink::WebUSBTransferInfo()); | 179 scoped_ptr<blink::WebUSBTransferInfo> info(new blink::WebUSBTransferInfo()); |
| 180 info->data.assign(data); | 180 info->data.assign(data); |
| 181 info->status = |
| 182 blink::WebVector<blink::WebUSBTransferInfo::Status>(packets.size()); |
| 183 info->packetLength = blink::WebVector<uint32_t>(packets.size()); |
| 184 info->bytesTransferred = blink::WebVector<uint32_t>(packets.size()); |
| 181 for (size_t i = 0; i < packets.size(); ++i) { | 185 for (size_t i = 0; i < packets.size(); ++i) { |
| 182 switch (packets[i]->status) { | 186 switch (packets[i]->status) { |
| 183 case device::usb::TransferStatus::COMPLETED: | 187 case device::usb::TransferStatus::COMPLETED: |
| 184 info->status[i] = blink::WebUSBTransferInfo::Status::Ok; | 188 info->status[i] = blink::WebUSBTransferInfo::Status::Ok; |
| 185 break; | 189 break; |
| 186 case device::usb::TransferStatus::STALLED: | 190 case device::usb::TransferStatus::STALLED: |
| 187 info->status[i] = blink::WebUSBTransferInfo::Status::Stall; | 191 info->status[i] = blink::WebUSBTransferInfo::Status::Stall; |
| 188 break; | 192 break; |
| 189 case device::usb::TransferStatus::BABBLE: | 193 case device::usb::TransferStatus::BABBLE: |
| 190 info->status[i] = blink::WebUSBTransferInfo::Status::Babble; | 194 info->status[i] = blink::WebUSBTransferInfo::Status::Babble; |
| 191 break; | 195 break; |
| 192 default: | 196 default: |
| 193 RejectWithTransferError(std::move(scoped_callbacks)); | 197 RejectWithTransferError(std::move(scoped_callbacks)); |
| 194 return; | 198 return; |
| 195 } | 199 } |
| 196 info->packetLength[i] = packets[i]->length; | 200 info->packetLength[i] = packets[i]->length; |
| 197 info->bytesTransferred[i] = packets[i]->transferred_length; | 201 info->bytesTransferred[i] = packets[i]->transferred_length; |
| 198 } | 202 } |
| 199 scoped_callbacks->onSuccess(adoptWebPtr(info.release())); | 203 scoped_callbacks->onSuccess(adoptWebPtr(info.release())); |
| 200 } | 204 } |
| 201 | 205 |
| 202 void OnIsochronousTransferOut( | 206 void OnIsochronousTransferOut( |
| 203 ScopedWebCallbacks<blink::WebUSBDeviceTransferCallbacks> callbacks, | 207 ScopedWebCallbacks<blink::WebUSBDeviceTransferCallbacks> callbacks, |
| 204 mojo::Array<device::usb::IsochronousPacketPtr> packets) { | 208 mojo::Array<device::usb::IsochronousPacketPtr> packets) { |
| 205 auto scoped_callbacks = callbacks.PassCallbacks(); | 209 auto scoped_callbacks = callbacks.PassCallbacks(); |
| 206 scoped_ptr<blink::WebUSBTransferInfo> info(new blink::WebUSBTransferInfo()); | 210 scoped_ptr<blink::WebUSBTransferInfo> info(new blink::WebUSBTransferInfo()); |
| 211 info->status = |
| 212 blink::WebVector<blink::WebUSBTransferInfo::Status>(packets.size()); |
| 213 info->bytesTransferred = blink::WebVector<uint32_t>(packets.size()); |
| 207 for (size_t i = 0; i < packets.size(); ++i) { | 214 for (size_t i = 0; i < packets.size(); ++i) { |
| 208 switch (packets[i]->status) { | 215 switch (packets[i]->status) { |
| 209 case device::usb::TransferStatus::COMPLETED: | 216 case device::usb::TransferStatus::COMPLETED: |
| 210 info->status[i] = blink::WebUSBTransferInfo::Status::Ok; | 217 info->status[i] = blink::WebUSBTransferInfo::Status::Ok; |
| 211 break; | 218 break; |
| 212 case device::usb::TransferStatus::STALLED: | 219 case device::usb::TransferStatus::STALLED: |
| 213 info->status[i] = blink::WebUSBTransferInfo::Status::Stall; | 220 info->status[i] = blink::WebUSBTransferInfo::Status::Stall; |
| 214 break; | 221 break; |
| 215 default: | 222 default: |
| 216 RejectWithTransferError(std::move(scoped_callbacks)); | 223 RejectWithTransferError(std::move(scoped_callbacks)); |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 401 } | 408 } |
| 402 | 409 |
| 403 void WebUSBDeviceImpl::reset(blink::WebUSBDeviceResetCallbacks* callbacks) { | 410 void WebUSBDeviceImpl::reset(blink::WebUSBDeviceResetCallbacks* callbacks) { |
| 404 auto scoped_callbacks = MakeScopedUSBCallbacks(callbacks); | 411 auto scoped_callbacks = MakeScopedUSBCallbacks(callbacks); |
| 405 device_->Reset(base::Bind(&HandlePassFailDeviceOperation, | 412 device_->Reset(base::Bind(&HandlePassFailDeviceOperation, |
| 406 base::Passed(&scoped_callbacks), | 413 base::Passed(&scoped_callbacks), |
| 407 kDeviceResetFailed)); | 414 kDeviceResetFailed)); |
| 408 } | 415 } |
| 409 | 416 |
| 410 } // namespace content | 417 } // namespace content |
| OLD | NEW |