OLD | NEW |
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 "base/logging.h" | 7 #include "base/logging.h" |
8 #include "media/base/media_log.h" | 8 #include "media/base/media_log.h" |
9 #include "media/mojo/services/service_factory_impl.h" | 9 #include "media/mojo/services/service_factory_impl.h" |
10 #include "mojo/application/public/cpp/application_connection.h" | 10 #include "mojo/application/public/cpp/application_connection.h" |
11 #include "mojo/application/public/cpp/application_impl.h" | 11 #include "mojo/application/public/cpp/application_impl.h" |
12 | 12 |
13 namespace media { | 13 namespace media { |
14 | 14 |
15 const char kMojoMediaAppUrl[] = "mojo:media"; | 15 const char kMojoMediaAppUrl[] = "mojo:media"; |
16 | 16 |
17 // static | 17 // static |
18 GURL MojoMediaApplication::AppUrl() { | 18 GURL MojoMediaApplication::AppUrl() { |
19 return GURL(kMojoMediaAppUrl); | 19 return GURL(kMojoMediaAppUrl); |
20 } | 20 } |
21 | 21 |
22 // static | 22 // static |
23 scoped_ptr<mojo::ApplicationDelegate> MojoMediaApplication::CreateApp() { | 23 scoped_ptr<mojo::ApplicationDelegate> MojoMediaApplication::CreateApp() { |
24 return scoped_ptr<mojo::ApplicationDelegate>(new MojoMediaApplication()); | 24 return scoped_ptr<mojo::ApplicationDelegate>(new MojoMediaApplication()); |
25 } | 25 } |
26 | 26 |
27 // TODO(xhwang): Hook up MediaLog when possible. | 27 // TODO(xhwang): Hook up MediaLog when possible. |
28 MojoMediaApplication::MojoMediaApplication() : media_log_(new MediaLog()) { | 28 MojoMediaApplication::MojoMediaApplication() |
29 } | 29 : app_impl_(nullptr), media_log_(new MediaLog()) {} |
30 | 30 |
31 MojoMediaApplication::~MojoMediaApplication() { | 31 MojoMediaApplication::~MojoMediaApplication() { |
32 } | 32 } |
33 | 33 |
34 void MojoMediaApplication::Initialize(mojo::ApplicationImpl* app) { | 34 void MojoMediaApplication::Initialize(mojo::ApplicationImpl* app) { |
| 35 app_impl_ = app; |
| 36 |
35 logging::LoggingSettings settings; | 37 logging::LoggingSettings settings; |
36 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; | 38 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; |
37 logging::InitLogging(settings); | 39 logging::InitLogging(settings); |
38 // Display process ID, thread ID and timestamp in logs. | 40 // Display process ID, thread ID and timestamp in logs. |
39 logging::SetLogItems(true, true, true, false); | 41 logging::SetLogItems(true, true, true, false); |
40 } | 42 } |
41 | 43 |
42 bool MojoMediaApplication::ConfigureIncomingConnection( | 44 bool MojoMediaApplication::ConfigureIncomingConnection( |
43 mojo::ApplicationConnection* connection) { | 45 mojo::ApplicationConnection* connection) { |
44 connection->AddService<interfaces::ServiceFactory>(this); | 46 connection->AddService<interfaces::ServiceFactory>(this); |
45 return true; | 47 return true; |
46 } | 48 } |
47 | 49 |
48 void MojoMediaApplication::Create( | 50 void MojoMediaApplication::Create( |
49 mojo::ApplicationConnection* connection, | 51 mojo::ApplicationConnection* connection, |
50 mojo::InterfaceRequest<interfaces::ServiceFactory> request) { | 52 mojo::InterfaceRequest<interfaces::ServiceFactory> request) { |
51 // The created object is owned by the pipe. | 53 // The created object is owned by the pipe. |
52 new ServiceFactoryImpl(request.Pass(), connection->GetServiceProvider(), | 54 new ServiceFactoryImpl(request.Pass(), connection->GetServiceProvider(), |
53 media_log_); | 55 media_log_, |
| 56 app_impl_->app_lifetime_helper()->CreateAppRefCount()); |
54 } | 57 } |
55 | 58 |
56 } // namespace media | 59 } // namespace media |
OLD | NEW |