| OLD | NEW |
| 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/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 | 99 |
| 100 void MidiManagerAndroid::OnAttached(JNIEnv* env, | 100 void MidiManagerAndroid::OnAttached(JNIEnv* env, |
| 101 const JavaParamRef<jobject>& caller, | 101 const JavaParamRef<jobject>& caller, |
| 102 const JavaParamRef<jobject>& raw_device) { | 102 const JavaParamRef<jobject>& raw_device) { |
| 103 AddDevice(base::WrapUnique(new MidiDeviceAndroid(env, raw_device, this))); | 103 AddDevice(base::WrapUnique(new MidiDeviceAndroid(env, raw_device, this))); |
| 104 } | 104 } |
| 105 | 105 |
| 106 void MidiManagerAndroid::OnDetached(JNIEnv* env, | 106 void MidiManagerAndroid::OnDetached(JNIEnv* env, |
| 107 const JavaParamRef<jobject>& caller, | 107 const JavaParamRef<jobject>& caller, |
| 108 const JavaParamRef<jobject>& raw_device) { | 108 const JavaParamRef<jobject>& raw_device) { |
| 109 for (const auto& device : devices_) { | 109 for (auto* device : devices_) { |
| 110 if (device->HasRawDevice(env, raw_device)) { | 110 if (device->HasRawDevice(env, raw_device)) { |
| 111 for (const auto& port : device->input_ports()) { | 111 for (auto* port : device->input_ports()) { |
| 112 DCHECK(input_port_to_index_.end() != input_port_to_index_.find(port)); | 112 DCHECK(input_port_to_index_.end() != input_port_to_index_.find(port)); |
| 113 size_t index = input_port_to_index_[port]; | 113 size_t index = input_port_to_index_[port]; |
| 114 SetInputPortState(index, MIDI_PORT_DISCONNECTED); | 114 SetInputPortState(index, MIDI_PORT_DISCONNECTED); |
| 115 } | 115 } |
| 116 for (const auto& port : device->output_ports()) { | 116 for (auto* port : device->output_ports()) { |
| 117 DCHECK(output_port_to_index_.end() != output_port_to_index_.find(port)); | 117 DCHECK(output_port_to_index_.end() != output_port_to_index_.find(port)); |
| 118 size_t index = output_port_to_index_[port]; | 118 size_t index = output_port_to_index_[port]; |
| 119 SetOutputPortState(index, MIDI_PORT_DISCONNECTED); | 119 SetOutputPortState(index, MIDI_PORT_DISCONNECTED); |
| 120 } | 120 } |
| 121 } | 121 } |
| 122 } | 122 } |
| 123 } | 123 } |
| 124 | 124 |
| 125 void MidiManagerAndroid::AddDevice(std::unique_ptr<MidiDeviceAndroid> device) { | 125 void MidiManagerAndroid::AddDevice(std::unique_ptr<MidiDeviceAndroid> device) { |
| 126 for (auto& port : device->input_ports()) { | 126 for (auto* port : device->input_ports()) { |
| 127 // We implicitly open input ports here, because there are no signal | 127 // We implicitly open input ports here, because there are no signal |
| 128 // from the renderer when to open. | 128 // from the renderer when to open. |
| 129 // TODO(yhirano): Implement open operation in Blink. | 129 // TODO(yhirano): Implement open operation in Blink. |
| 130 MidiPortState state = port->Open() ? MIDI_PORT_OPENED : MIDI_PORT_CONNECTED; | 130 MidiPortState state = port->Open() ? MIDI_PORT_OPENED : MIDI_PORT_CONNECTED; |
| 131 | 131 |
| 132 const size_t index = all_input_ports_.size(); | 132 const size_t index = all_input_ports_.size(); |
| 133 all_input_ports_.push_back(port); | 133 all_input_ports_.push_back(port); |
| 134 // Port ID must be unique in a MIDI manager. This ID setting is | 134 // Port ID must be unique in a MIDI manager. This ID setting is |
| 135 // sufficiently unique although there is no user-friendly meaning. | 135 // sufficiently unique although there is no user-friendly meaning. |
| 136 // TODO(yhirano): Use a hashed string as ID. | 136 // TODO(yhirano): Use a hashed string as ID. |
| 137 const std::string id( | 137 const std::string id( |
| 138 base::StringPrintf("native:port-in-%ld", static_cast<long>(index))); | 138 base::StringPrintf("native:port-in-%ld", static_cast<long>(index))); |
| 139 | 139 |
| 140 input_port_to_index_.insert(std::make_pair(port, index)); | 140 input_port_to_index_.insert(std::make_pair(port, index)); |
| 141 AddInputPort(MidiPortInfo(id, device->GetManufacturer(), | 141 AddInputPort(MidiPortInfo(id, device->GetManufacturer(), |
| 142 device->GetProductName(), | 142 device->GetProductName(), |
| 143 device->GetDeviceVersion(), state)); | 143 device->GetDeviceVersion(), state)); |
| 144 } | 144 } |
| 145 for (const auto& port : device->output_ports()) { | 145 for (auto* port : device->output_ports()) { |
| 146 const size_t index = all_output_ports_.size(); | 146 const size_t index = all_output_ports_.size(); |
| 147 all_output_ports_.push_back(port); | 147 all_output_ports_.push_back(port); |
| 148 | 148 |
| 149 // Port ID must be unique in a MIDI manager. This ID setting is | 149 // Port ID must be unique in a MIDI manager. This ID setting is |
| 150 // sufficiently unique although there is no user-friendly meaning. | 150 // sufficiently unique although there is no user-friendly meaning. |
| 151 // TODO(yhirano): Use a hashed string as ID. | 151 // TODO(yhirano): Use a hashed string as ID. |
| 152 const std::string id( | 152 const std::string id( |
| 153 base::StringPrintf("native:port-out-%ld", static_cast<long>(index))); | 153 base::StringPrintf("native:port-out-%ld", static_cast<long>(index))); |
| 154 | 154 |
| 155 output_port_to_index_.insert(std::make_pair(port, index)); | 155 output_port_to_index_.insert(std::make_pair(port, index)); |
| 156 AddOutputPort( | 156 AddOutputPort( |
| 157 MidiPortInfo(id, device->GetManufacturer(), device->GetProductName(), | 157 MidiPortInfo(id, device->GetManufacturer(), device->GetProductName(), |
| 158 device->GetDeviceVersion(), MIDI_PORT_CONNECTED)); | 158 device->GetDeviceVersion(), MIDI_PORT_CONNECTED)); |
| 159 } | 159 } |
| 160 devices_.push_back(device.release()); | 160 devices_.push_back(device.release()); |
| 161 } | 161 } |
| 162 | 162 |
| 163 bool MidiManagerAndroid::Register(JNIEnv* env) { | 163 bool MidiManagerAndroid::Register(JNIEnv* env) { |
| 164 return RegisterNativesImpl(env); | 164 return RegisterNativesImpl(env); |
| 165 } | 165 } |
| 166 | 166 |
| 167 } // namespace midi | 167 } // namespace midi |
| 168 } // namespace media | 168 } // namespace media |
| OLD | NEW |