Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Unified Diff: content/common/media/media_param_traits.cc

Issue 16025005: Web MIDI API back-end (work-in-progress) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use int64 in ParamTraits Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>"));
+}
+
}

Powered by Google App Engine
This is Rietveld 408576698