Index: media/midi/midi_manager_usb.cc |
diff --git a/media/midi/midi_manager_usb.cc b/media/midi/midi_manager_usb.cc |
index f2cf866aa0c68b36a8807b071817335369d33d65..fcefdf5a5222891d7bfd1e62a460df67afcdb011 100644 |
--- a/media/midi/midi_manager_usb.cc |
+++ b/media/midi/midi_manager_usb.cc |
@@ -8,6 +8,7 @@ |
#include "base/logging.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/message_loop/message_loop.h" |
+#include "base/strings/stringprintf.h" |
#include "media/midi/usb_midi_descriptor_parser.h" |
#include "media/midi/usb_midi_device.h" |
#include "media/midi/usb_midi_input_stream.h" |
@@ -94,12 +95,24 @@ void MidiManagerUsb::OnEnumerateDevicesDone(bool result, |
if (jacks[j].direction() == UsbMidiJack::DIRECTION_OUT) { |
output_streams_.push_back(new UsbMidiOutputStream(jacks[j])); |
// TODO(yhirano): Set appropriate properties. |
- AddOutputPort(MidiPortInfo()); |
+ // 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.id = base::StringPrintf("port-%ld-%ld", |
+ static_cast<long>(i), |
+ static_cast<long>(j)); |
+ AddOutputPort(port); |
} else { |
DCHECK_EQ(jacks[j].direction(), UsbMidiJack::DIRECTION_IN); |
input_jacks.push_back(jacks[j]); |
// TODO(yhirano): Set appropriate properties. |
- AddInputPort(MidiPortInfo()); |
+ MidiPortInfo port; |
+ port.id = base::StringPrintf("port-%ld-%ld", |
+ static_cast<long>(i), |
+ static_cast<long>(j)); |
+ AddInputPort(port); |
} |
} |
input_stream_.reset(new UsbMidiInputStream(input_jacks, this)); |