Index: content/common/media/media_param_traits.cc |
diff --git a/content/common/media/media_param_traits.cc b/content/common/media/media_param_traits.cc |
index f833ea02a5b29371ddc1ad9d67351fcd4599cf88..ce1ea625283794e0dc7c2844c9ea17f890a24601 100644 |
--- a/content/common/media/media_param_traits.cc |
+++ b/content/common/media/media_param_traits.cc |
@@ -7,10 +7,13 @@ |
#include "base/stringprintf.h" |
#include "media/audio/audio_parameters.h" |
#include "media/base/limits.h" |
+#include "media/midi/midi_port_info.h" |
#include "media/video/capture/video_capture_types.h" |
using media::AudioParameters; |
using media::ChannelLayout; |
+using media::MIDIPortInfo; |
+using media::MIDIPortInfoList; |
using media::VideoCaptureParams; |
using media::VideoCaptureSessionId; |
@@ -92,4 +95,50 @@ void ParamTraits<VideoCaptureParams>::Log(const VideoCaptureParams& p, |
l->append(base::StringPrintf("<VideoCaptureParams>")); |
} |
+// MIDI |
+ |
+void ParamTraits<MIDIPortInfoList>::Write(Message* m, |
+ const MIDIPortInfoList& p) { |
+ int64 n = p.size(); |
+ m->WriteInt64(n); |
+ |
+ for (size_t i = 0; i < n; ++i) { |
+ m->WriteString(p[i].id_); |
+ m->WriteString(p[i].manufacturer_); |
+ m->WriteString(p[i].name_); |
+ m->WriteString(p[i].version_); |
+ } |
+} |
+ |
+bool ParamTraits<MIDIPortInfoList>::Read(const Message* m, |
+ PickleIterator* iter, |
+ MIDIPortInfoList* r) { |
+ int64 n; |
+ if (!m->ReadInt64(iter, &n) || n < 0) |
+ return false; |
+ |
+ r->reserve(n); |
+ for (int i = 0; i < n; ++i) { |
+ std::string id; |
+ std::string manufacturer; |
+ std::string name; |
+ std::string version; |
+ |
+ if (!m->ReadString(iter, &id) || |
+ !m->ReadString(iter, &manufacturer) || |
+ !m->ReadString(iter, &name) || |
+ !m->ReadString(iter, &version)) |
+ return false; |
+ |
+ r->push_back(MIDIPortInfo(id, manufacturer, name, version)); |
+ } |
+ |
+ return true; |
+} |
+ |
+void ParamTraits<MIDIPortInfoList>::Log(const MIDIPortInfoList& p, |
+ std::string* l) { |
+ l->append(base::StringPrintf("<MIDIPortInfoList>")); |
+} |
+ |
} |