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

Side by Side Diff: third_party/WebKit/Source/modules/webusb/USBAlternateInterface.cpp

Issue 1850023002: Consume Mojo services directly in Blink's WebUSB implementation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't do assignments in if statements. Created 4 years, 8 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
OLDNEW
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/USBAlternateInterface.h" 5 #include "modules/webusb/USBAlternateInterface.h"
6 6
7 #include "bindings/core/v8/ExceptionState.h" 7 #include "bindings/core/v8/ExceptionState.h"
8 #include "modules/webusb/USBEndpoint.h" 8 #include "modules/webusb/USBEndpoint.h"
9 #include "modules/webusb/USBInterface.h" 9 #include "modules/webusb/USBInterface.h"
10 10
11 namespace blink { 11 namespace blink {
12 12
13 USBAlternateInterface* USBAlternateInterface::create(const USBInterface* interfa ce, size_t alternateIndex) 13 USBAlternateInterface* USBAlternateInterface::create(const USBInterface* interfa ce, size_t alternateIndex)
14 { 14 {
15 return new USBAlternateInterface(interface, alternateIndex); 15 return new USBAlternateInterface(interface, alternateIndex);
16 } 16 }
17 17
18 USBAlternateInterface* USBAlternateInterface::create(const USBInterface* interfa ce, size_t alternateSetting, ExceptionState& exceptionState) 18 USBAlternateInterface* USBAlternateInterface::create(const USBInterface* interfa ce, size_t alternateSetting, ExceptionState& exceptionState)
19 { 19 {
20 for (size_t i = 0; i < interface->info().alternates.size(); ++i) { 20 const auto& alternates = interface->info().alternates;
21 if (interface->info().alternates[i].alternateSetting == alternateSetting ) 21 for (size_t i = 0; i < alternates.size(); ++i) {
22 if (alternates[i]->alternate_setting == alternateSetting)
22 return USBAlternateInterface::create(interface, i); 23 return USBAlternateInterface::create(interface, i);
23 } 24 }
24 exceptionState.throwRangeError("Invalid alternate setting."); 25 exceptionState.throwRangeError("Invalid alternate setting.");
25 return nullptr; 26 return nullptr;
26 } 27 }
27 28
28 USBAlternateInterface::USBAlternateInterface(const USBInterface* interface, size _t alternateIndex) 29 USBAlternateInterface::USBAlternateInterface(const USBInterface* interface, size _t alternateIndex)
29 : m_interface(interface) 30 : m_interface(interface)
30 , m_alternateIndex(alternateIndex) 31 , m_alternateIndex(alternateIndex)
31 { 32 {
32 ASSERT(m_interface); 33 ASSERT(m_interface);
33 ASSERT(m_alternateIndex < m_interface->info().alternates.size()); 34 ASSERT(m_alternateIndex < m_interface->info().alternates.size());
34 } 35 }
35 36
36 const WebUSBDeviceInfo::AlternateInterface& USBAlternateInterface::info() const 37 const device::usb::wtf::AlternateInterfaceInfo& USBAlternateInterface::info() co nst
37 { 38 {
38 const WebUSBDeviceInfo::Interface& interfaceInfo = m_interface->info(); 39 const device::usb::wtf::InterfaceInfo& interfaceInfo = m_interface->info();
39 ASSERT(m_alternateIndex < interfaceInfo.alternates.size()); 40 ASSERT(m_alternateIndex < interfaceInfo.alternates.size());
40 return interfaceInfo.alternates[m_alternateIndex]; 41 return *interfaceInfo.alternates[m_alternateIndex];
41 }
42
43 uint8_t USBAlternateInterface::alternateSetting() const
44 {
45 return info().alternateSetting;
46 }
47
48 uint8_t USBAlternateInterface::interfaceClass() const
49 {
50 return info().classCode;
51 }
52
53 uint8_t USBAlternateInterface::interfaceSubclass() const
54 {
55 return info().subclassCode;
56 }
57
58 uint8_t USBAlternateInterface::interfaceProtocol() const
59 {
60 return info().protocolCode;
61 }
62
63 String USBAlternateInterface::interfaceName() const
64 {
65 return info().interfaceName;
66 } 42 }
67 43
68 HeapVector<Member<USBEndpoint>> USBAlternateInterface::endpoints() const 44 HeapVector<Member<USBEndpoint>> USBAlternateInterface::endpoints() const
69 { 45 {
70 HeapVector<Member<USBEndpoint>> endpoints; 46 HeapVector<Member<USBEndpoint>> endpoints;
71 for (size_t i = 0; i < info().endpoints.size(); ++i) 47 for (size_t i = 0; i < info().endpoints.size(); ++i)
72 endpoints.append(USBEndpoint::create(this, i)); 48 endpoints.append(USBEndpoint::create(this, i));
73 return endpoints; 49 return endpoints;
74 } 50 }
75 51
76 DEFINE_TRACE(USBAlternateInterface) 52 DEFINE_TRACE(USBAlternateInterface)
77 { 53 {
78 visitor->trace(m_interface); 54 visitor->trace(m_interface);
79 } 55 }
80 56
81 } // namespace blink 57 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698