| 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 |