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

Side by Side Diff: media/mojo/services/mojo_media_application.cc

Issue 1697233002: Reland of land "media: Refactor MojoMediaClient" with fix. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 unified diff | Download patch
« no previous file with comments | « media/mojo/services/mojo_media_application.h ('k') | media/mojo/services/mojo_media_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/mojo/services/mojo_media_application.h" 5 #include "media/mojo/services/mojo_media_application.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "media/base/media_log.h" 9 #include "media/base/media_log.h"
10 #include "media/mojo/services/mojo_media_client.h" 10 #include "media/mojo/services/mojo_media_client.h"
11 #include "media/mojo/services/service_factory_impl.h" 11 #include "media/mojo/services/service_factory_impl.h"
12 #include "mojo/shell/public/cpp/connection.h" 12 #include "mojo/shell/public/cpp/connection.h"
13 #include "mojo/shell/public/cpp/shell.h" 13 #include "mojo/shell/public/cpp/shell.h"
14 14
15 #if defined(OS_ANDROID)
16 #include "media/mojo/services/android_mojo_media_client.h"
17 #else
18 #include "media/mojo/services/default_mojo_media_client.h"
19 #endif
20
15 namespace media { 21 namespace media {
16 22
23 #if defined(OS_ANDROID)
24 using DefaultClient = AndroidMojoMediaClient;
25 #else
26 using DefaultClient = DefaultMojoMediaClient;
27 #endif
28
17 // static 29 // static
18 scoped_ptr<mojo::ShellClient> MojoMediaApplication::CreateApp() { 30 scoped_ptr<mojo::ShellClient> MojoMediaApplication::CreateApp() {
19 return scoped_ptr<mojo::ShellClient>( 31 return scoped_ptr<mojo::ShellClient>(
20 new MojoMediaApplication(MojoMediaClient::Create())); 32 new MojoMediaApplication(make_scoped_ptr(new DefaultClient())));
33 }
34
35 // static
36 scoped_ptr<mojo::ShellClient> MojoMediaApplication::CreateAppWithClient(
37 const CreateMojoMediaClientCB& create_mojo_media_client_cb) {
38 scoped_ptr<MojoMediaClient> mojo_media_client =
39 create_mojo_media_client_cb.Run();
40 if (!mojo_media_client)
41 return nullptr;
42
43 return scoped_ptr<mojo::ShellClient>(
44 new MojoMediaApplication(std::move(mojo_media_client)));
21 } 45 }
22 46
23 // TODO(xhwang): Hook up MediaLog when possible. 47 // TODO(xhwang): Hook up MediaLog when possible.
24 MojoMediaApplication::MojoMediaApplication( 48 MojoMediaApplication::MojoMediaApplication(
25 scoped_ptr<MojoMediaClient> mojo_media_client) 49 scoped_ptr<MojoMediaClient> mojo_media_client)
26 : mojo_media_client_(std::move(mojo_media_client)), 50 : mojo_media_client_(std::move(mojo_media_client)),
27 shell_(nullptr), 51 shell_(nullptr),
28 media_log_(new MediaLog()) {} 52 media_log_(new MediaLog()) {
53 DCHECK(mojo_media_client_);
54 }
29 55
30 MojoMediaApplication::~MojoMediaApplication() {} 56 MojoMediaApplication::~MojoMediaApplication() {}
31 57
32 void MojoMediaApplication::Initialize(mojo::Shell* shell, 58 void MojoMediaApplication::Initialize(mojo::Shell* shell,
33 const std::string& url, 59 const std::string& /* url */,
34 uint32_t id) { 60 uint32_t /* id */) {
35 shell_ = shell; 61 shell_ = shell;
36 mojo_media_client_->Initialize(); 62 mojo_media_client_->Initialize();
37 } 63 }
38 64
39 bool MojoMediaApplication::AcceptConnection(mojo::Connection* connection) { 65 bool MojoMediaApplication::AcceptConnection(mojo::Connection* connection) {
40 connection->AddInterface<interfaces::ServiceFactory>(this); 66 connection->AddInterface<interfaces::ServiceFactory>(this);
41 return true; 67 return true;
42 } 68 }
43 69
44 void MojoMediaApplication::Create( 70 void MojoMediaApplication::Create(
45 mojo::Connection* connection, 71 mojo::Connection* connection,
46 mojo::InterfaceRequest<interfaces::ServiceFactory> request) { 72 mojo::InterfaceRequest<interfaces::ServiceFactory> request) {
47 // The created object is owned by the pipe. 73 // The created object is owned by the pipe.
48 new ServiceFactoryImpl(std::move(request), connection->GetRemoteInterfaces(), 74 new ServiceFactoryImpl(std::move(request), connection->GetRemoteInterfaces(),
49 media_log_, shell_->CreateAppRefCount(), 75 media_log_, shell_->CreateAppRefCount(),
50 mojo_media_client_.get()); 76 mojo_media_client_.get());
51 } 77 }
52 78
53 } // namespace media 79 } // namespace media
OLDNEW
« no previous file with comments | « media/mojo/services/mojo_media_application.h ('k') | media/mojo/services/mojo_media_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698