| 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);
|
| };
|
|
|
|
|