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

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

Issue 2422163002: Web MIDI: use midi_service.mojom for media::midi::PortState (Closed)
Patch Set: gn --check fix Created 4 years, 2 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_unittest.cc ('k') | media/midi/midi_manager_usb_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_usb.h" 5 #include "media/midi/midi_manager_usb.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "base/strings/stringprintf.h" 11 #include "base/strings/stringprintf.h"
12 #include "media/midi/midi_scheduler.h" 12 #include "media/midi/midi_scheduler.h"
13 #include "media/midi/usb_midi_descriptor_parser.h" 13 #include "media/midi/usb_midi_descriptor_parser.h"
14 14
15 namespace midi { 15 namespace midi {
16 16
17 using mojom::PortState;
17 using mojom::Result; 18 using mojom::Result;
18 19
19 MidiManagerUsb::MidiManagerUsb(std::unique_ptr<UsbMidiDevice::Factory> factory) 20 MidiManagerUsb::MidiManagerUsb(std::unique_ptr<UsbMidiDevice::Factory> factory)
20 : device_factory_(std::move(factory)) {} 21 : device_factory_(std::move(factory)) {}
21 22
22 MidiManagerUsb::~MidiManagerUsb() { 23 MidiManagerUsb::~MidiManagerUsb() {
23 base::AutoLock auto_lock(scheduler_lock_); 24 base::AutoLock auto_lock(scheduler_lock_);
24 CHECK(!scheduler_); 25 CHECK(!scheduler_);
25 } 26 }
26 27
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 AddPorts(devices_.back(), device_id); 89 AddPorts(devices_.back(), device_id);
89 } 90 }
90 91
91 void MidiManagerUsb::OnDeviceDetached(size_t index) { 92 void MidiManagerUsb::OnDeviceDetached(size_t index) {
92 if (index >= devices_.size()) { 93 if (index >= devices_.size()) {
93 return; 94 return;
94 } 95 }
95 UsbMidiDevice* device = devices_[index]; 96 UsbMidiDevice* device = devices_[index];
96 for (size_t i = 0; i < output_streams_.size(); ++i) { 97 for (size_t i = 0; i < output_streams_.size(); ++i) {
97 if (output_streams_[i]->jack().device == device) { 98 if (output_streams_[i]->jack().device == device) {
98 SetOutputPortState(static_cast<uint32_t>(i), MIDI_PORT_DISCONNECTED); 99 SetOutputPortState(static_cast<uint32_t>(i), PortState::DISCONNECTED);
99 } 100 }
100 } 101 }
101 const std::vector<UsbMidiJack>& input_jacks = input_stream_->jacks(); 102 const std::vector<UsbMidiJack>& input_jacks = input_stream_->jacks();
102 for (size_t i = 0; i < input_jacks.size(); ++i) { 103 for (size_t i = 0; i < input_jacks.size(); ++i) {
103 if (input_jacks[i].device == device) { 104 if (input_jacks[i].device == device) {
104 SetInputPortState(static_cast<uint32_t>(i), MIDI_PORT_DISCONNECTED); 105 SetInputPortState(static_cast<uint32_t>(i), PortState::DISCONNECTED);
105 } 106 }
106 } 107 }
107 } 108 }
108 109
109 void MidiManagerUsb::OnReceivedData(size_t jack_index, 110 void MidiManagerUsb::OnReceivedData(size_t jack_index,
110 const uint8_t* data, 111 const uint8_t* data,
111 size_t size, 112 size_t size,
112 base::TimeTicks time) { 113 base::TimeTicks time) {
113 ReceiveMidiData(static_cast<uint32_t>(jack_index), data, size, time); 114 ReceiveMidiData(static_cast<uint32_t>(jack_index), data, size, time);
114 } 115 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 150
150 for (size_t j = 0; j < jacks.size(); ++j) { 151 for (size_t j = 0; j < jacks.size(); ++j) {
151 // Port ID must be unique in a MIDI manager. This ID setting is 152 // Port ID must be unique in a MIDI manager. This ID setting is
152 // sufficiently unique although there is no user-friendly meaning. 153 // sufficiently unique although there is no user-friendly meaning.
153 // TODO(yhirano): Use a hashed string as ID. 154 // TODO(yhirano): Use a hashed string as ID.
154 std::string id( 155 std::string id(
155 base::StringPrintf("usb:port-%d-%ld", device_id, static_cast<long>(j))); 156 base::StringPrintf("usb:port-%d-%ld", device_id, static_cast<long>(j)));
156 if (jacks[j].direction() == UsbMidiJack::DIRECTION_OUT) { 157 if (jacks[j].direction() == UsbMidiJack::DIRECTION_OUT) {
157 output_streams_.push_back(new UsbMidiOutputStream(jacks[j])); 158 output_streams_.push_back(new UsbMidiOutputStream(jacks[j]));
158 AddOutputPort(MidiPortInfo(id, manufacturer, product_name, version, 159 AddOutputPort(MidiPortInfo(id, manufacturer, product_name, version,
159 MIDI_PORT_OPENED)); 160 PortState::OPENED));
160 } else { 161 } else {
161 DCHECK_EQ(jacks[j].direction(), UsbMidiJack::DIRECTION_IN); 162 DCHECK_EQ(jacks[j].direction(), UsbMidiJack::DIRECTION_IN);
162 input_stream_->Add(jacks[j]); 163 input_stream_->Add(jacks[j]);
163 AddInputPort(MidiPortInfo(id, manufacturer, product_name, version, 164 AddInputPort(MidiPortInfo(id, manufacturer, product_name, version,
164 MIDI_PORT_OPENED)); 165 PortState::OPENED));
165 } 166 }
166 } 167 }
167 return true; 168 return true;
168 } 169 }
169 170
170 } // namespace midi 171 } // namespace midi
OLDNEW
« no previous file with comments | « media/midi/midi_manager_unittest.cc ('k') | media/midi/midi_manager_usb_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698