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

Unified Diff: content/renderer/media/midi_message_filter.h

Issue 861033003: [WIP][NotForLand]: Use Mojo for WebMIDI IPC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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/renderer/media/midi_message_filter.h
diff --git a/content/renderer/media/midi_message_filter.h b/content/renderer/media/midi_message_filter.h
index f7e1a8474a49172d1ab6a8a9a1c481449c9ebc3f..17e66b3309aa6b9184b76a2fa405e04da40073b2 100644
--- a/content/renderer/media/midi_message_filter.h
+++ b/content/renderer/media/midi_message_filter.h
@@ -11,8 +11,11 @@
#include "base/memory/scoped_ptr.h"
#include "content/common/content_export.h"
#include "ipc/message_filter.h"
+#include "media/midi/midi_service.mojom.h"
#include "media/midi/midi_port_info.h"
#include "media/midi/midi_result.h"
+#include "mojo/public/cpp/bindings/interface_request.h"
+#include "mojo/public/cpp/bindings/strong_binding.h"
#include "third_party/WebKit/public/platform/WebMIDIAccessorClient.h"
namespace base {
@@ -21,6 +24,30 @@ class MessageLoopProxy;
namespace content {
+class MidiMessageFilter;
+
+// TODO(bashi): Put this in a separate file.
+class MidiServiceClientImpl : public media::MidiServiceClient {
+ public:
+ explicit MidiServiceClientImpl(
+ MidiMessageFilter* midi_message_filter,
+ mojo::InterfaceRequest<MidiServiceClient> request);
+ ~MidiServiceClientImpl() override;
+
+ void AcknowledgeSentData(uint32_t bytes_sent) override;
+ void AddInputPort(media::MidiPortInfoMojoPtr input_port) override;
+ void AddOutputPort(media::MidiPortInfoMojoPtr output_port) override;
+ void DataReceived(uint32_t port,
+ mojo::Array<uint8_t> data,
+ double timestamp) override;
+
+ private:
+ // TODO(bashi): Remove this reference.
+ scoped_refptr<MidiMessageFilter> midi_message_filter_;
+
+ mojo::StrongBinding<MidiServiceClient> binding_;
+};
+
// MessageFilter that handles MIDI messages.
class CONTENT_EXPORT MidiMessageFilter : public IPC::MessageFilter {
public:
@@ -100,6 +127,11 @@ class CONTENT_EXPORT MidiMessageFilter : public IPC::MessageFilter {
void HandleAckknowledgeSentData(size_t bytes_sent);
+ // MidiService callbacks
+ void DidStartSession(media::MidiResultMojo result);
+
+ media::MidiServicePtr service_;
+
// IPC sender for Send(); must only be accessed on |io_message_loop_|.
IPC::Sender* sender_;
@@ -130,6 +162,8 @@ class CONTENT_EXPORT MidiMessageFilter : public IPC::MessageFilter {
size_t unacknowledged_bytes_sent_;
+ friend class MidiServiceClientImpl;
+
DISALLOW_COPY_AND_ASSIGN(MidiMessageFilter);
};
« no previous file with comments | « content/browser/renderer_host/render_process_host_impl.cc ('k') | content/renderer/media/midi_message_filter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698