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

Side by Side Diff: device/usb/usb_descriptors.cc

Issue 1468423003: Construct USB descriptors over explicit values. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update Android code. Created 4 years, 10 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 | « device/usb/usb_descriptors.h ('k') | device/usb/usb_device_android.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "device/usb/usb_descriptors.h" 5 #include "device/usb/usb_descriptors.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 base::Bind(callback, base::Passed(&index_map))); 79 base::Bind(callback, base::Passed(&index_map)));
80 for (const auto& map_entry : iterator_map) { 80 for (const auto& map_entry : iterator_map) {
81 ReadStringDescriptor( 81 ReadStringDescriptor(
82 device_handle, map_entry.first, language_id, 82 device_handle, map_entry.first, language_id,
83 base::Bind(&StoreStringDescriptor, map_entry.second, barrier)); 83 base::Bind(&StoreStringDescriptor, map_entry.second, barrier));
84 } 84 }
85 } 85 }
86 86
87 } // namespace 87 } // namespace
88 88
89 UsbEndpointDescriptor::UsbEndpointDescriptor() 89 UsbEndpointDescriptor::UsbEndpointDescriptor(
90 : address(0), 90 uint8_t address,
91 direction(USB_DIRECTION_INBOUND), 91 UsbEndpointDirection direction,
92 maximum_packet_size(0), 92 uint16_t maximum_packet_size,
93 synchronization_type(USB_SYNCHRONIZATION_NONE), 93 UsbSynchronizationType synchronization_type,
94 transfer_type(USB_TRANSFER_CONTROL), 94 UsbTransferType transfer_type,
95 usage_type(USB_USAGE_DATA), 95 UsbUsageType usage_type,
96 polling_interval(0) { 96 uint16_t polling_interval)
97 } 97 : address(address),
98 direction(direction),
99 maximum_packet_size(maximum_packet_size),
100 synchronization_type(synchronization_type),
101 transfer_type(transfer_type),
102 usage_type(usage_type),
103 polling_interval(polling_interval) {}
98 104
99 UsbEndpointDescriptor::~UsbEndpointDescriptor() { 105 UsbEndpointDescriptor::~UsbEndpointDescriptor() = default;
100 }
101 106
102 UsbInterfaceDescriptor::UsbInterfaceDescriptor() 107 UsbInterfaceDescriptor::UsbInterfaceDescriptor(uint8_t interface_number,
103 : interface_number(0), 108 uint8_t alternate_setting,
104 alternate_setting(0), 109 uint8_t interface_class,
105 interface_class(0), 110 uint8_t interface_subclass,
106 interface_subclass(0), 111 uint8_t interface_protocol)
107 interface_protocol(0) { 112 : interface_number(interface_number),
108 } 113 alternate_setting(alternate_setting),
114 interface_class(interface_class),
115 interface_subclass(interface_subclass),
116 interface_protocol(interface_protocol) {}
109 117
110 UsbInterfaceDescriptor::~UsbInterfaceDescriptor() { 118 UsbInterfaceDescriptor::~UsbInterfaceDescriptor() = default;
111 }
112 119
113 UsbConfigDescriptor::UsbConfigDescriptor() 120 UsbConfigDescriptor::UsbConfigDescriptor(uint8_t configuration_value,
114 : configuration_value(0), 121 bool self_powered,
115 self_powered(false), 122 bool remote_wakeup,
116 remote_wakeup(false), 123 uint16_t maximum_power)
117 maximum_power(0) { 124 : configuration_value(configuration_value),
118 } 125 self_powered(self_powered),
126 remote_wakeup(remote_wakeup),
127 maximum_power(maximum_power) {}
119 128
120 UsbConfigDescriptor::~UsbConfigDescriptor() { 129 UsbConfigDescriptor::~UsbConfigDescriptor() = default;
121 }
122 130
123 bool ParseUsbStringDescriptor(const std::vector<uint8_t>& descriptor, 131 bool ParseUsbStringDescriptor(const std::vector<uint8_t>& descriptor,
124 base::string16* output) { 132 base::string16* output) {
125 if (descriptor.size() < 2 || descriptor[1] != kStringDescriptorType) 133 if (descriptor.size() < 2 || descriptor[1] != kStringDescriptorType)
126 return false; 134 return false;
127 135
128 // Let the device return a buffer larger than the actual string but prefer the 136 // Let the device return a buffer larger than the actual string but prefer the
129 // length reported inside the descriptor. 137 // length reported inside the descriptor.
130 size_t length = descriptor[0]; 138 size_t length = descriptor[0];
131 length = std::min(length, descriptor.size()); 139 length = std::min(length, descriptor.size());
(...skipping 17 matching lines...) Expand all
149 callback.Run(std::move(index_map)); 157 callback.Run(std::move(index_map));
150 return; 158 return;
151 } 159 }
152 160
153 ReadStringDescriptor(device_handle, 0, 0, 161 ReadStringDescriptor(device_handle, 0, 0,
154 base::Bind(&OnReadLanguageIds, device_handle, 162 base::Bind(&OnReadLanguageIds, device_handle,
155 base::Passed(&index_map), callback)); 163 base::Passed(&index_map), callback));
156 } 164 }
157 165
158 } // namespace device 166 } // namespace device
OLDNEW
« no previous file with comments | « device/usb/usb_descriptors.h ('k') | device/usb/usb_device_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698