| 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 "modules/webusb/USBDevice.h" | 5 #include "modules/webusb/USBDevice.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/CallbackPromiseAdapter.h" | 7 #include "bindings/core/v8/CallbackPromiseAdapter.h" |
| 8 #include "bindings/core/v8/ScriptPromise.h" | 8 #include "bindings/core/v8/ScriptPromise.h" |
| 9 #include "bindings/core/v8/ScriptPromiseResolver.h" | 9 #include "bindings/core/v8/ScriptPromiseResolver.h" |
| 10 #include "bindings/core/v8/ToV8.h" | 10 #include "bindings/core/v8/ToV8.h" |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 public: | 134 public: |
| 135 using WebType = OwnPtr<WebUSBTransferInfo>; | 135 using WebType = OwnPtr<WebUSBTransferInfo>; |
| 136 | 136 |
| 137 static USBIsochronousInTransferResult* take(ScriptPromiseResolver*, PassOwnP
tr<WebUSBTransferInfo> webTransferInfo) | 137 static USBIsochronousInTransferResult* take(ScriptPromiseResolver*, PassOwnP
tr<WebUSBTransferInfo> webTransferInfo) |
| 138 { | 138 { |
| 139 ASSERT(webTransferInfo->status.size() == webTransferInfo->packetLength.s
ize() && webTransferInfo->packetLength.size() == webTransferInfo->bytesTransferr
ed.size()); | 139 ASSERT(webTransferInfo->status.size() == webTransferInfo->packetLength.s
ize() && webTransferInfo->packetLength.size() == webTransferInfo->bytesTransferr
ed.size()); |
| 140 RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::create(webTransferInfo->
data.data(), webTransferInfo->data.size()); | 140 RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::create(webTransferInfo->
data.data(), webTransferInfo->data.size()); |
| 141 HeapVector<Member<USBIsochronousInTransferPacket>> packets(webTransferIn
fo->status.size()); | 141 HeapVector<Member<USBIsochronousInTransferPacket>> packets(webTransferIn
fo->status.size()); |
| 142 size_t byteOffset = 0; | 142 size_t byteOffset = 0; |
| 143 for (size_t i = 0; i < webTransferInfo->status.size(); ++i) { | 143 for (size_t i = 0; i < webTransferInfo->status.size(); ++i) { |
| 144 packets.append(USBIsochronousInTransferPacket::create(convertTransfe
rStatus(webTransferInfo->status[i]), DOMDataView::create(buffer, byteOffset, web
TransferInfo->bytesTransferred[i]))); | 144 packets[i] = USBIsochronousInTransferPacket::create(convertTransferS
tatus(webTransferInfo->status[i]), DOMDataView::create(buffer, byteOffset, webTr
ansferInfo->bytesTransferred[i])); |
| 145 byteOffset += webTransferInfo->packetLength[i]; | 145 byteOffset += webTransferInfo->packetLength[i]; |
| 146 } | 146 } |
| 147 return USBIsochronousInTransferResult::create(buffer, packets); | 147 return USBIsochronousInTransferResult::create(buffer, packets); |
| 148 } | 148 } |
| 149 }; | 149 }; |
| 150 | 150 |
| 151 class IsochronousOutputTransferResult { | 151 class IsochronousOutputTransferResult { |
| 152 WTF_MAKE_NONCOPYABLE(IsochronousOutputTransferResult); | 152 WTF_MAKE_NONCOPYABLE(IsochronousOutputTransferResult); |
| 153 | 153 |
| 154 public: | 154 public: |
| 155 using WebType = OwnPtr<WebUSBTransferInfo>; | 155 using WebType = OwnPtr<WebUSBTransferInfo>; |
| 156 | 156 |
| 157 static USBIsochronousOutTransferResult* take(ScriptPromiseResolver*, PassOwn
Ptr<WebUSBTransferInfo> webTransferInfo) | 157 static USBIsochronousOutTransferResult* take(ScriptPromiseResolver*, PassOwn
Ptr<WebUSBTransferInfo> webTransferInfo) |
| 158 { | 158 { |
| 159 ASSERT(webTransferInfo->status.size() == webTransferInfo->bytesTransferr
ed.size()); | 159 ASSERT(webTransferInfo->status.size() == webTransferInfo->bytesTransferr
ed.size()); |
| 160 HeapVector<Member<USBIsochronousOutTransferPacket>> packets(webTransferI
nfo->status.size()); | 160 HeapVector<Member<USBIsochronousOutTransferPacket>> packets(webTransferI
nfo->status.size()); |
| 161 for (size_t i = 0; i < webTransferInfo->status.size(); ++i) | 161 for (size_t i = 0; i < webTransferInfo->status.size(); ++i) |
| 162 packets.append(USBIsochronousOutTransferPacket::create(convertTransf
erStatus(webTransferInfo->status[i]), webTransferInfo->bytesTransferred[i])); | 162 packets[i] = USBIsochronousOutTransferPacket::create(convertTransfer
Status(webTransferInfo->status[i]), webTransferInfo->bytesTransferred[i]); |
| 163 return USBIsochronousOutTransferResult::create(packets); | 163 return USBIsochronousOutTransferResult::create(packets); |
| 164 } | 164 } |
| 165 }; | 165 }; |
| 166 | 166 |
| 167 class BufferSource { | 167 class BufferSource { |
| 168 WTF_MAKE_NONCOPYABLE(BufferSource); | 168 WTF_MAKE_NONCOPYABLE(BufferSource); |
| 169 public: | 169 public: |
| 170 BufferSource(const ArrayBufferOrArrayBufferView& buffer) : m_buffer(buffer) | 170 BufferSource(const ArrayBufferOrArrayBufferView& buffer) : m_buffer(buffer) |
| 171 { | 171 { |
| 172 ASSERT(!m_buffer.isNull()); | 172 ASSERT(!m_buffer.isNull()); |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 { | 353 { |
| 354 m_device->close(new WebUSBDeviceCloseCallbacks()); | 354 m_device->close(new WebUSBDeviceCloseCallbacks()); |
| 355 } | 355 } |
| 356 | 356 |
| 357 DEFINE_TRACE(USBDevice) | 357 DEFINE_TRACE(USBDevice) |
| 358 { | 358 { |
| 359 ContextLifecycleObserver::trace(visitor); | 359 ContextLifecycleObserver::trace(visitor); |
| 360 } | 360 } |
| 361 | 361 |
| 362 } // namespace blink | 362 } // namespace blink |
| OLD | NEW |