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_usb.h" | 5 #include "media/midi/midi_manager_usb.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 void CompleteStartSession(Result result) override { | 110 void CompleteStartSession(Result result) override { |
111 complete_start_session_ = true; | 111 complete_start_session_ = true; |
112 result_ = result; | 112 result_ = result; |
113 } | 113 } |
114 | 114 |
115 void ReceiveMidiData(uint32 port_index, | 115 void ReceiveMidiData(uint32 port_index, |
116 const uint8* data, | 116 const uint8* data, |
117 size_t size, | 117 size_t size, |
118 double timestamp) override { | 118 double timestamp) override { |
119 logger_->AddLog("MidiManagerClient::ReceiveMidiData "); | 119 logger_->AddLog("MidiManagerClient::ReceiveMidiData "); |
120 logger_->AddLog(base::StringPrintf("port_index = %d data =", port_index)); | 120 logger_->AddLog( |
| 121 base::StringPrintf("usb:port_index = %d data =", port_index)); |
121 for (size_t i = 0; i < size; ++i) | 122 for (size_t i = 0; i < size; ++i) |
122 logger_->AddLog(base::StringPrintf(" 0x%02x", data[i])); | 123 logger_->AddLog(base::StringPrintf(" 0x%02x", data[i])); |
123 logger_->AddLog("\n"); | 124 logger_->AddLog("\n"); |
124 } | 125 } |
125 | 126 |
126 void AccumulateMidiBytesSent(size_t size) override { | 127 void AccumulateMidiBytesSent(size_t size) override { |
127 logger_->AddLog("MidiManagerClient::AccumulateMidiBytesSent "); | 128 logger_->AddLog("MidiManagerClient::AccumulateMidiBytesSent "); |
128 // Windows has no "%zu". | 129 // Windows has no "%zu". |
129 logger_->AddLog(base::StringPrintf("size = %u\n", | 130 logger_->AddLog(base::StringPrintf("size = %u\n", |
130 static_cast<unsigned>(size))); | 131 static_cast<unsigned>(size))); |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 device->SetDeviceVersion("1.02"); | 253 device->SetDeviceVersion("1.02"); |
253 | 254 |
254 Initialize(); | 255 Initialize(); |
255 ScopedVector<UsbMidiDevice> devices; | 256 ScopedVector<UsbMidiDevice> devices; |
256 devices.push_back(device.Pass()); | 257 devices.push_back(device.Pass()); |
257 EXPECT_FALSE(IsInitializationCallbackInvoked()); | 258 EXPECT_FALSE(IsInitializationCallbackInvoked()); |
258 RunCallbackUntilCallbackInvoked(true, &devices); | 259 RunCallbackUntilCallbackInvoked(true, &devices); |
259 EXPECT_EQ(Result::OK, GetInitializationResult()); | 260 EXPECT_EQ(Result::OK, GetInitializationResult()); |
260 | 261 |
261 ASSERT_EQ(1u, input_ports().size()); | 262 ASSERT_EQ(1u, input_ports().size()); |
262 EXPECT_EQ("port-0-2", input_ports()[0].id); | 263 EXPECT_EQ("usb:port-0-2", input_ports()[0].id); |
263 EXPECT_EQ("vendor1", input_ports()[0].manufacturer); | 264 EXPECT_EQ("vendor1", input_ports()[0].manufacturer); |
264 EXPECT_EQ("device1", input_ports()[0].name); | 265 EXPECT_EQ("device1", input_ports()[0].name); |
265 EXPECT_EQ("1.02", input_ports()[0].version); | 266 EXPECT_EQ("1.02", input_ports()[0].version); |
266 | 267 |
267 ASSERT_EQ(2u, output_ports().size()); | 268 ASSERT_EQ(2u, output_ports().size()); |
268 EXPECT_EQ("port-0-0", output_ports()[0].id); | 269 EXPECT_EQ("usb:port-0-0", output_ports()[0].id); |
269 EXPECT_EQ("vendor1", output_ports()[0].manufacturer); | 270 EXPECT_EQ("vendor1", output_ports()[0].manufacturer); |
270 EXPECT_EQ("device1", output_ports()[0].name); | 271 EXPECT_EQ("device1", output_ports()[0].name); |
271 EXPECT_EQ("1.02", output_ports()[0].version); | 272 EXPECT_EQ("1.02", output_ports()[0].version); |
272 EXPECT_EQ("port-0-1", output_ports()[1].id); | 273 EXPECT_EQ("usb:port-0-1", output_ports()[1].id); |
273 EXPECT_EQ("vendor1", output_ports()[1].manufacturer); | 274 EXPECT_EQ("vendor1", output_ports()[1].manufacturer); |
274 EXPECT_EQ("device1", output_ports()[1].name); | 275 EXPECT_EQ("device1", output_ports()[1].name); |
275 EXPECT_EQ("1.02", output_ports()[1].version); | 276 EXPECT_EQ("1.02", output_ports()[1].version); |
276 | 277 |
277 ASSERT_TRUE(manager_->input_stream()); | 278 ASSERT_TRUE(manager_->input_stream()); |
278 std::vector<UsbMidiJack> jacks = manager_->input_stream()->jacks(); | 279 std::vector<UsbMidiJack> jacks = manager_->input_stream()->jacks(); |
279 ASSERT_EQ(2u, manager_->output_streams().size()); | 280 ASSERT_EQ(2u, manager_->output_streams().size()); |
280 EXPECT_EQ(2u, manager_->output_streams()[0]->jack().jack_id); | 281 EXPECT_EQ(2u, manager_->output_streams()[0]->jack().jack_id); |
281 EXPECT_EQ(3u, manager_->output_streams()[1]->jack().jack_id); | 282 EXPECT_EQ(3u, manager_->output_streams()[1]->jack().jack_id); |
282 ASSERT_EQ(1u, jacks.size()); | 283 ASSERT_EQ(1u, jacks.size()); |
(...skipping 30 matching lines...) Expand all Loading... |
313 | 314 |
314 Initialize(); | 315 Initialize(); |
315 ScopedVector<UsbMidiDevice> devices; | 316 ScopedVector<UsbMidiDevice> devices; |
316 devices.push_back(device1.Pass()); | 317 devices.push_back(device1.Pass()); |
317 devices.push_back(device2.Pass()); | 318 devices.push_back(device2.Pass()); |
318 EXPECT_FALSE(IsInitializationCallbackInvoked()); | 319 EXPECT_FALSE(IsInitializationCallbackInvoked()); |
319 RunCallbackUntilCallbackInvoked(true, &devices); | 320 RunCallbackUntilCallbackInvoked(true, &devices); |
320 EXPECT_EQ(Result::OK, GetInitializationResult()); | 321 EXPECT_EQ(Result::OK, GetInitializationResult()); |
321 | 322 |
322 ASSERT_EQ(2u, input_ports().size()); | 323 ASSERT_EQ(2u, input_ports().size()); |
323 EXPECT_EQ("port-0-2", input_ports()[0].id); | 324 EXPECT_EQ("usb:port-0-2", input_ports()[0].id); |
324 EXPECT_EQ("vendor1", input_ports()[0].manufacturer); | 325 EXPECT_EQ("vendor1", input_ports()[0].manufacturer); |
325 EXPECT_EQ("device1", input_ports()[0].name); | 326 EXPECT_EQ("device1", input_ports()[0].name); |
326 EXPECT_EQ("1.02", input_ports()[0].version); | 327 EXPECT_EQ("1.02", input_ports()[0].version); |
327 EXPECT_EQ("port-1-2", input_ports()[1].id); | 328 EXPECT_EQ("usb:port-1-2", input_ports()[1].id); |
328 EXPECT_EQ("vendor2", input_ports()[1].manufacturer); | 329 EXPECT_EQ("vendor2", input_ports()[1].manufacturer); |
329 EXPECT_EQ("device2", input_ports()[1].name); | 330 EXPECT_EQ("device2", input_ports()[1].name); |
330 EXPECT_EQ("98.76", input_ports()[1].version); | 331 EXPECT_EQ("98.76", input_ports()[1].version); |
331 | 332 |
332 ASSERT_EQ(4u, output_ports().size()); | 333 ASSERT_EQ(4u, output_ports().size()); |
333 EXPECT_EQ("port-0-0", output_ports()[0].id); | 334 EXPECT_EQ("usb:port-0-0", output_ports()[0].id); |
334 EXPECT_EQ("vendor1", output_ports()[0].manufacturer); | 335 EXPECT_EQ("vendor1", output_ports()[0].manufacturer); |
335 EXPECT_EQ("device1", output_ports()[0].name); | 336 EXPECT_EQ("device1", output_ports()[0].name); |
336 EXPECT_EQ("1.02", output_ports()[0].version); | 337 EXPECT_EQ("1.02", output_ports()[0].version); |
337 EXPECT_EQ("port-0-1", output_ports()[1].id); | 338 EXPECT_EQ("usb:port-0-1", output_ports()[1].id); |
338 EXPECT_EQ("vendor1", output_ports()[1].manufacturer); | 339 EXPECT_EQ("vendor1", output_ports()[1].manufacturer); |
339 EXPECT_EQ("device1", output_ports()[1].name); | 340 EXPECT_EQ("device1", output_ports()[1].name); |
340 EXPECT_EQ("1.02", output_ports()[1].version); | 341 EXPECT_EQ("1.02", output_ports()[1].version); |
341 EXPECT_EQ("port-1-0", output_ports()[2].id); | 342 EXPECT_EQ("usb:port-1-0", output_ports()[2].id); |
342 EXPECT_EQ("vendor2", output_ports()[2].manufacturer); | 343 EXPECT_EQ("vendor2", output_ports()[2].manufacturer); |
343 EXPECT_EQ("device2", output_ports()[2].name); | 344 EXPECT_EQ("device2", output_ports()[2].name); |
344 EXPECT_EQ("98.76", output_ports()[2].version); | 345 EXPECT_EQ("98.76", output_ports()[2].version); |
345 EXPECT_EQ("port-1-1", output_ports()[3].id); | 346 EXPECT_EQ("usb:port-1-1", output_ports()[3].id); |
346 EXPECT_EQ("vendor2", output_ports()[3].manufacturer); | 347 EXPECT_EQ("vendor2", output_ports()[3].manufacturer); |
347 EXPECT_EQ("device2", output_ports()[3].name); | 348 EXPECT_EQ("device2", output_ports()[3].name); |
348 EXPECT_EQ("98.76", output_ports()[3].version); | 349 EXPECT_EQ("98.76", output_ports()[3].version); |
349 | 350 |
350 ASSERT_TRUE(manager_->input_stream()); | 351 ASSERT_TRUE(manager_->input_stream()); |
351 std::vector<UsbMidiJack> jacks = manager_->input_stream()->jacks(); | 352 std::vector<UsbMidiJack> jacks = manager_->input_stream()->jacks(); |
352 ASSERT_EQ(4u, manager_->output_streams().size()); | 353 ASSERT_EQ(4u, manager_->output_streams().size()); |
353 EXPECT_EQ(2u, manager_->output_streams()[0]->jack().jack_id); | 354 EXPECT_EQ(2u, manager_->output_streams()[0]->jack().jack_id); |
354 EXPECT_EQ(3u, manager_->output_streams()[1]->jack().jack_id); | 355 EXPECT_EQ(3u, manager_->output_streams()[1]->jack().jack_id); |
355 ASSERT_EQ(2u, jacks.size()); | 356 ASSERT_EQ(2u, jacks.size()); |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
505 UsbMidiDevice* device_raw = device.get(); | 506 UsbMidiDevice* device_raw = device.get(); |
506 devices.push_back(device.Pass()); | 507 devices.push_back(device.Pass()); |
507 EXPECT_FALSE(IsInitializationCallbackInvoked()); | 508 EXPECT_FALSE(IsInitializationCallbackInvoked()); |
508 RunCallbackUntilCallbackInvoked(true, &devices); | 509 RunCallbackUntilCallbackInvoked(true, &devices); |
509 EXPECT_EQ(Result::OK, GetInitializationResult()); | 510 EXPECT_EQ(Result::OK, GetInitializationResult()); |
510 | 511 |
511 manager_->ReceiveUsbMidiData(device_raw, 2, data, arraysize(data), | 512 manager_->ReceiveUsbMidiData(device_raw, 2, data, arraysize(data), |
512 base::TimeTicks()); | 513 base::TimeTicks()); |
513 Finalize(); | 514 Finalize(); |
514 | 515 |
515 EXPECT_EQ("UsbMidiDevice::GetDescriptors\n" | 516 EXPECT_EQ( |
516 "MidiManagerClient::ReceiveMidiData port_index = 0 " | 517 "UsbMidiDevice::GetDescriptors\n" |
517 "data = 0x90 0x45 0x7f\n" | 518 "MidiManagerClient::ReceiveMidiData usb:port_index = 0 " |
518 "MidiManagerClient::ReceiveMidiData port_index = 0 " | 519 "data = 0x90 0x45 0x7f\n" |
519 "data = 0xf0 0x00 0x01\n" | 520 "MidiManagerClient::ReceiveMidiData usb:port_index = 0 " |
520 "MidiManagerClient::ReceiveMidiData port_index = 0 data = 0xf7\n", | 521 "data = 0xf0 0x00 0x01\n" |
521 logger_.TakeLog()); | 522 "MidiManagerClient::ReceiveMidiData usb:port_index = 0 data = 0xf7\n", |
| 523 logger_.TakeLog()); |
522 } | 524 } |
523 | 525 |
524 TEST_F(MidiManagerUsbTest, AttachDevice) { | 526 TEST_F(MidiManagerUsbTest, AttachDevice) { |
525 uint8 descriptors[] = { | 527 uint8 descriptors[] = { |
526 0x12, 0x01, 0x10, 0x01, 0x00, 0x00, 0x00, 0x08, 0x86, 0x1a, | 528 0x12, 0x01, 0x10, 0x01, 0x00, 0x00, 0x00, 0x08, 0x86, 0x1a, |
527 0x2d, 0x75, 0x54, 0x02, 0x00, 0x02, 0x00, 0x01, 0x09, 0x02, | 529 0x2d, 0x75, 0x54, 0x02, 0x00, 0x02, 0x00, 0x01, 0x09, 0x02, |
528 0x75, 0x00, 0x02, 0x01, 0x00, 0x80, 0x30, 0x09, 0x04, 0x00, | 530 0x75, 0x00, 0x02, 0x01, 0x00, 0x80, 0x30, 0x09, 0x04, 0x00, |
529 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x09, 0x24, 0x01, 0x00, | 531 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x09, 0x24, 0x01, 0x00, |
530 0x01, 0x09, 0x00, 0x01, 0x01, 0x09, 0x04, 0x01, 0x00, 0x02, | 532 0x01, 0x09, 0x00, 0x01, 0x01, 0x09, 0x04, 0x01, 0x00, 0x02, |
531 0x01, 0x03, 0x00, 0x00, 0x07, 0x24, 0x01, 0x00, 0x01, 0x51, | 533 0x01, 0x03, 0x00, 0x00, 0x07, 0x24, 0x01, 0x00, 0x01, 0x51, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
566 EXPECT_EQ(3u, manager_->output_streams()[1]->jack().jack_id); | 568 EXPECT_EQ(3u, manager_->output_streams()[1]->jack().jack_id); |
567 ASSERT_EQ(1u, jacks.size()); | 569 ASSERT_EQ(1u, jacks.size()); |
568 EXPECT_EQ(2, jacks[0].endpoint_number()); | 570 EXPECT_EQ(2, jacks[0].endpoint_number()); |
569 EXPECT_EQ("UsbMidiDevice::GetDescriptors\n", logger_.TakeLog()); | 571 EXPECT_EQ("UsbMidiDevice::GetDescriptors\n", logger_.TakeLog()); |
570 } | 572 } |
571 | 573 |
572 } // namespace | 574 } // namespace |
573 | 575 |
574 } // namespace midi | 576 } // namespace midi |
575 } // namespace media | 577 } // namespace media |
OLD | NEW |