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

Side by Side Diff: media/midi/midi_manager_android.cc

Issue 2895573002: Reland of Remove ScopedVector from all other codes in media/ (Closed)
Patch Set: Fix the compile fails in build target "jpeg_decode_accelerator_unittest" Created 3 years, 7 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 | « media/midi/midi_manager_android.h ('k') | media/midi/midi_manager_unittest.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 "media/midi/midi_manager_android.h" 5 #include "media/midi/midi_manager_android.h"
6 6
7 #include "base/android/build_info.h" 7 #include "base/android/build_info.h"
8 #include "base/android/context_utils.h" 8 #include "base/android/context_utils.h"
9 #include "base/feature_list.h" 9 #include "base/feature_list.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 148
149 void MidiManagerAndroid::OnAttached(JNIEnv* env, 149 void MidiManagerAndroid::OnAttached(JNIEnv* env,
150 const JavaParamRef<jobject>& caller, 150 const JavaParamRef<jobject>& caller,
151 const JavaParamRef<jobject>& raw_device) { 151 const JavaParamRef<jobject>& raw_device) {
152 AddDevice(base::MakeUnique<MidiDeviceAndroid>(env, raw_device, this)); 152 AddDevice(base::MakeUnique<MidiDeviceAndroid>(env, raw_device, this));
153 } 153 }
154 154
155 void MidiManagerAndroid::OnDetached(JNIEnv* env, 155 void MidiManagerAndroid::OnDetached(JNIEnv* env,
156 const JavaParamRef<jobject>& caller, 156 const JavaParamRef<jobject>& caller,
157 const JavaParamRef<jobject>& raw_device) { 157 const JavaParamRef<jobject>& raw_device) {
158 for (auto* device : devices_) { 158 for (auto& device : devices_) {
159 if (device->HasRawDevice(env, raw_device)) { 159 if (device->HasRawDevice(env, raw_device)) {
160 for (auto* port : device->input_ports()) { 160 for (auto& port : device->input_ports()) {
161 DCHECK(input_port_to_index_.end() != input_port_to_index_.find(port)); 161 DCHECK(input_port_to_index_.end() !=
162 size_t index = input_port_to_index_[port]; 162 input_port_to_index_.find(port.get()));
163 size_t index = input_port_to_index_[port.get()];
163 SetInputPortState(index, PortState::DISCONNECTED); 164 SetInputPortState(index, PortState::DISCONNECTED);
164 } 165 }
165 for (auto* port : device->output_ports()) { 166 for (auto& port : device->output_ports()) {
166 DCHECK(output_port_to_index_.end() != output_port_to_index_.find(port)); 167 DCHECK(output_port_to_index_.end() !=
167 size_t index = output_port_to_index_[port]; 168 output_port_to_index_.find(port.get()));
169 size_t index = output_port_to_index_[port.get()];
168 SetOutputPortState(index, PortState::DISCONNECTED); 170 SetOutputPortState(index, PortState::DISCONNECTED);
169 } 171 }
170 } 172 }
171 } 173 }
172 } 174 }
173 175
174 void MidiManagerAndroid::AddDevice(std::unique_ptr<MidiDeviceAndroid> device) { 176 void MidiManagerAndroid::AddDevice(std::unique_ptr<MidiDeviceAndroid> device) {
175 for (auto* port : device->input_ports()) { 177 for (auto& port : device->input_ports()) {
176 // We implicitly open input ports here, because there are no signal 178 // We implicitly open input ports here, because there are no signal
177 // from the renderer when to open. 179 // from the renderer when to open.
178 // TODO(yhirano): Implement open operation in Blink. 180 // TODO(yhirano): Implement open operation in Blink.
179 PortState state = port->Open() ? PortState::OPENED : PortState::CONNECTED; 181 PortState state = port->Open() ? PortState::OPENED : PortState::CONNECTED;
180 182
181 const size_t index = all_input_ports_.size(); 183 const size_t index = all_input_ports_.size();
182 all_input_ports_.push_back(port); 184 all_input_ports_.push_back(port.get());
183 // Port ID must be unique in a MIDI manager. This ID setting is 185 // Port ID must be unique in a MIDI manager. This ID setting is
184 // sufficiently unique although there is no user-friendly meaning. 186 // sufficiently unique although there is no user-friendly meaning.
185 // TODO(yhirano): Use a hashed string as ID. 187 // TODO(yhirano): Use a hashed string as ID.
186 const std::string id( 188 const std::string id(
187 base::StringPrintf("native:port-in-%ld", static_cast<long>(index))); 189 base::StringPrintf("native:port-in-%ld", static_cast<long>(index)));
188 190
189 input_port_to_index_.insert(std::make_pair(port, index)); 191 input_port_to_index_.insert(std::make_pair(port.get(), index));
190 AddInputPort(MidiPortInfo(id, device->GetManufacturer(), 192 AddInputPort(MidiPortInfo(id, device->GetManufacturer(),
191 device->GetProductName(), 193 device->GetProductName(),
192 device->GetDeviceVersion(), state)); 194 device->GetDeviceVersion(), state));
193 } 195 }
194 for (auto* port : device->output_ports()) { 196 for (auto& port : device->output_ports()) {
195 const size_t index = all_output_ports_.size(); 197 const size_t index = all_output_ports_.size();
196 all_output_ports_.push_back(port); 198 all_output_ports_.push_back(port.get());
197 199
198 // Port ID must be unique in a MIDI manager. This ID setting is 200 // Port ID must be unique in a MIDI manager. This ID setting is
199 // sufficiently unique although there is no user-friendly meaning. 201 // sufficiently unique although there is no user-friendly meaning.
200 // TODO(yhirano): Use a hashed string as ID. 202 // TODO(yhirano): Use a hashed string as ID.
201 const std::string id( 203 const std::string id(
202 base::StringPrintf("native:port-out-%ld", static_cast<long>(index))); 204 base::StringPrintf("native:port-out-%ld", static_cast<long>(index)));
203 205
204 output_port_to_index_.insert(std::make_pair(port, index)); 206 output_port_to_index_.insert(std::make_pair(port.get(), index));
205 AddOutputPort( 207 AddOutputPort(
206 MidiPortInfo(id, device->GetManufacturer(), device->GetProductName(), 208 MidiPortInfo(id, device->GetManufacturer(), device->GetProductName(),
207 device->GetDeviceVersion(), PortState::CONNECTED)); 209 device->GetDeviceVersion(), PortState::CONNECTED));
208 } 210 }
209 devices_.push_back(device.release()); 211 devices_.push_back(std::move(device));
210 } 212 }
211 213
212 bool MidiManagerAndroid::Register(JNIEnv* env) { 214 bool MidiManagerAndroid::Register(JNIEnv* env) {
213 return RegisterNativesImpl(env); 215 return RegisterNativesImpl(env);
214 } 216 }
215 217
216 } // namespace midi 218 } // namespace midi
OLDNEW
« no previous file with comments | « media/midi/midi_manager_android.h ('k') | media/midi/midi_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698