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

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

Issue 2404443002: Web MIDI: use midi_service.mojom for media::midi::Result (Closed)
Patch Set: rebase 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
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"
(...skipping 15 matching lines...) Expand all
26 Initialize( 26 Initialize(
27 base::Bind(&MidiManager::CompleteInitialization, base::Unretained(this))); 27 base::Bind(&MidiManager::CompleteInitialization, base::Unretained(this)));
28 } 28 }
29 29
30 void MidiManagerUsb::Finalize() { 30 void MidiManagerUsb::Finalize() {
31 // Destruct MidiScheduler on Chrome_IOThread. 31 // Destruct MidiScheduler on Chrome_IOThread.
32 base::AutoLock auto_lock(scheduler_lock_); 32 base::AutoLock auto_lock(scheduler_lock_);
33 scheduler_.reset(); 33 scheduler_.reset();
34 } 34 }
35 35
36 void MidiManagerUsb::Initialize(base::Callback<void(Result result)> callback) { 36 void MidiManagerUsb::Initialize(
37 base::Callback<void(mojom::Result result)> callback) {
37 initialize_callback_ = callback; 38 initialize_callback_ = callback;
38 39
39 { 40 {
40 base::AutoLock auto_lock(scheduler_lock_); 41 base::AutoLock auto_lock(scheduler_lock_);
41 scheduler_.reset(new MidiScheduler(this)); 42 scheduler_.reset(new MidiScheduler(this));
42 } 43 }
43 44
44 // This is safe because EnumerateDevices cancels the operation on destruction. 45 // This is safe because EnumerateDevices cancels the operation on destruction.
45 device_factory_->EnumerateDevices( 46 device_factory_->EnumerateDevices(
46 this, 47 this,
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 const uint8_t* data, 109 const uint8_t* data,
109 size_t size, 110 size_t size,
110 base::TimeTicks time) { 111 base::TimeTicks time) {
111 ReceiveMidiData(static_cast<uint32_t>(jack_index), data, size, time); 112 ReceiveMidiData(static_cast<uint32_t>(jack_index), data, size, time);
112 } 113 }
113 114
114 115
115 void MidiManagerUsb::OnEnumerateDevicesDone(bool result, 116 void MidiManagerUsb::OnEnumerateDevicesDone(bool result,
116 UsbMidiDevice::Devices* devices) { 117 UsbMidiDevice::Devices* devices) {
117 if (!result) { 118 if (!result) {
118 initialize_callback_.Run(Result::INITIALIZATION_ERROR); 119 initialize_callback_.Run(mojom::Result::INITIALIZATION_ERROR);
119 return; 120 return;
120 } 121 }
121 input_stream_.reset(new UsbMidiInputStream(this)); 122 input_stream_.reset(new UsbMidiInputStream(this));
122 devices->swap(devices_); 123 devices->swap(devices_);
123 for (size_t i = 0; i < devices_.size(); ++i) { 124 for (size_t i = 0; i < devices_.size(); ++i) {
124 if (!AddPorts(devices_[i], static_cast<int>(i))) { 125 if (!AddPorts(devices_[i], static_cast<int>(i))) {
125 initialize_callback_.Run(Result::INITIALIZATION_ERROR); 126 initialize_callback_.Run(mojom::Result::INITIALIZATION_ERROR);
126 return; 127 return;
127 } 128 }
128 } 129 }
129 initialize_callback_.Run(Result::OK); 130 initialize_callback_.Run(mojom::Result::OK);
130 } 131 }
131 132
132 bool MidiManagerUsb::AddPorts(UsbMidiDevice* device, int device_id) { 133 bool MidiManagerUsb::AddPorts(UsbMidiDevice* device, int device_id) {
133 UsbMidiDescriptorParser parser; 134 UsbMidiDescriptorParser parser;
134 std::vector<uint8_t> descriptor = device->GetDescriptors(); 135 std::vector<uint8_t> descriptor = device->GetDescriptors();
135 const uint8_t* data = descriptor.size() > 0 ? &descriptor[0] : NULL; 136 const uint8_t* data = descriptor.size() > 0 ? &descriptor[0] : NULL;
136 std::vector<UsbMidiJack> jacks; 137 std::vector<UsbMidiJack> jacks;
137 bool parse_result = parser.Parse(device, 138 bool parse_result = parser.Parse(device,
138 data, 139 data,
139 descriptor.size(), 140 descriptor.size(),
(...skipping 19 matching lines...) Expand all
159 DCHECK_EQ(jacks[j].direction(), UsbMidiJack::DIRECTION_IN); 160 DCHECK_EQ(jacks[j].direction(), UsbMidiJack::DIRECTION_IN);
160 input_stream_->Add(jacks[j]); 161 input_stream_->Add(jacks[j]);
161 AddInputPort(MidiPortInfo(id, manufacturer, product_name, version, 162 AddInputPort(MidiPortInfo(id, manufacturer, product_name, version,
162 MIDI_PORT_OPENED)); 163 MIDI_PORT_OPENED));
163 } 164 }
164 } 165 }
165 return true; 166 return true;
166 } 167 }
167 168
168 } // namespace midi 169 } // namespace midi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698