| Index: media/midi/midi_manager_usb.cc
|
| diff --git a/media/midi/midi_manager_usb.cc b/media/midi/midi_manager_usb.cc
|
| index cefbc1aac35c7865afb2be47f52701d7e5629f5b..346098c5a851f67d262eb5a6475fefc6d8956825 100644
|
| --- a/media/midi/midi_manager_usb.cc
|
| +++ b/media/midi/midi_manager_usb.cc
|
| @@ -124,7 +124,7 @@ void MidiManagerUsb::OnEnumerateDevicesDone(bool result,
|
|
|
| bool MidiManagerUsb::AddPorts(UsbMidiDevice* device, int device_id) {
|
| UsbMidiDescriptorParser parser;
|
| - std::vector<uint8> descriptor = device->GetDescriptor();
|
| + std::vector<uint8> descriptor = device->GetDescriptors();
|
| const uint8* data = descriptor.size() > 0 ? &descriptor[0] : NULL;
|
| std::vector<UsbMidiJack> jacks;
|
| bool parse_result = parser.Parse(device,
|
| @@ -134,30 +134,25 @@ bool MidiManagerUsb::AddPorts(UsbMidiDevice* device, int device_id) {
|
| if (!parse_result)
|
| return false;
|
|
|
| + std::string manufacturer(device->GetManufacturer());
|
| + std::string product_name(device->GetProductName());
|
| + std::string version(device->GetDeviceVersion());
|
| +
|
| for (size_t j = 0; j < jacks.size(); ++j) {
|
| + // Port ID must be unique in a MIDI manager. This ID setting is
|
| + // sufficiently unique although there is no user-friendly meaning.
|
| + // TODO(yhirano): Use a hashed string as ID.
|
| + std::string id(
|
| + base::StringPrintf("port-%d-%ld", device_id, static_cast<long>(j)));
|
| if (jacks[j].direction() == UsbMidiJack::DIRECTION_OUT) {
|
| output_streams_.push_back(new UsbMidiOutputStream(jacks[j]));
|
| - // TODO(yhirano): Set appropriate properties.
|
| - // TODO(yhiran): Port ID should contain product ID / vendor ID.
|
| - // Port ID must be unique in a MIDI manager. This (and the below) ID
|
| - // setting is sufficiently unique although there is no user-friendly
|
| - // meaning.
|
| - MidiPortInfo port;
|
| - port.state = MIDI_PORT_OPENED;
|
| - port.id = base::StringPrintf("port-%d-%ld",
|
| - device_id,
|
| - static_cast<long>(j));
|
| - AddOutputPort(port);
|
| + AddOutputPort(MidiPortInfo(id, manufacturer, product_name, version,
|
| + MIDI_PORT_OPENED));
|
| } else {
|
| DCHECK_EQ(jacks[j].direction(), UsbMidiJack::DIRECTION_IN);
|
| input_stream_->Add(jacks[j]);
|
| - // TODO(yhirano): Set appropriate properties.
|
| - MidiPortInfo port;
|
| - port.state = MIDI_PORT_OPENED;
|
| - port.id = base::StringPrintf("port-%d-%ld",
|
| - device_id,
|
| - static_cast<long>(j));
|
| - AddInputPort(port);
|
| + AddInputPort(MidiPortInfo(id, manufacturer, product_name, version,
|
| + MIDI_PORT_OPENED));
|
| }
|
| }
|
| return true;
|
|
|