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 |