| Index: media/mojo/services/mojo_media_application.cc
|
| diff --git a/media/mojo/services/mojo_media_application.cc b/media/mojo/services/mojo_media_application.cc
|
| index 2eb87a5404d7be568532d0917e0b80e848beb4f5..5b9b375a7803feb337395341c9923d20473bb922 100644
|
| --- a/media/mojo/services/mojo_media_application.cc
|
| +++ b/media/mojo/services/mojo_media_application.cc
|
| @@ -2,20 +2,26 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/command_line.h"
|
| #include "base/logging.h"
|
| +#include "base/strings/utf_string_conversions.h"
|
| +#include "media/mojo/interfaces/content_decryption_module_factory.mojom.h"
|
| +#include "media/mojo/interfaces/media_renderer.mojom.h"
|
| +#include "media/mojo/services/mojo_cdm_factory_service.h"
|
| +#include "media/mojo/services/mojo_cdm_service_context.h"
|
| #include "media/mojo/services/mojo_renderer_service.h"
|
| #include "mojo/application/public/cpp/application_connection.h"
|
| #include "mojo/application/public/cpp/application_delegate.h"
|
| -#include "mojo/application/public/cpp/application_impl.h"
|
| #include "mojo/application/public/cpp/application_runner.h"
|
| -#include "mojo/application/public/cpp/interface_factory_impl.h"
|
| +#include "mojo/application/public/cpp/interface_factory.h"
|
| #include "third_party/mojo/src/mojo/public/c/system/main.h"
|
|
|
| namespace media {
|
|
|
| class MojoMediaApplication
|
| : public mojo::ApplicationDelegate,
|
| - public mojo::InterfaceFactory<mojo::MediaRenderer> {
|
| + public mojo::InterfaceFactory<mojo::MediaRenderer>,
|
| + public mojo::InterfaceFactory<mojo::ContentDecryptionModuleFactory> {
|
| public:
|
| // mojo::ApplicationDelegate implementation.
|
| void Initialize(mojo::ApplicationImpl* app) override {
|
| @@ -27,17 +33,29 @@ class MojoMediaApplication
|
| }
|
|
|
| bool ConfigureIncomingConnection(
|
| - mojo::ApplicationConnection* connection) override {
|
| - connection->AddService(this);
|
| + mojo::ApplicationConnection* connection) final {
|
| + connection->AddService<mojo::ContentDecryptionModuleFactory>(this);
|
| + connection->AddService<mojo::MediaRenderer>(this);
|
| return true;
|
| }
|
|
|
| + // mojo::InterfaceFactory<mojo::ContentDecryptionModuleFactory>
|
| + // implementation.
|
| + void Create(mojo::ApplicationConnection* connection,
|
| + mojo::InterfaceRequest<mojo::ContentDecryptionModuleFactory>
|
| + request) final {
|
| + new MojoCdmFactoryService(&cdm_service_context_, request.Pass());
|
| + }
|
| +
|
| // mojo::InterfaceFactory<mojo::MediaRenderer> implementation.
|
| void Create(mojo::ApplicationConnection* connection,
|
| mojo::InterfaceRequest<mojo::MediaRenderer> request) override {
|
| // The created object is owned by the pipe.
|
| - new MojoRendererService(request.Pass());
|
| + new MojoRendererService(&cdm_service_context_, request.Pass());
|
| }
|
| +
|
| + private:
|
| + MojoCdmServiceContext cdm_service_context_;
|
| };
|
|
|
| } // namespace media
|
|
|