| Index: services/camera/src/org/chromium/services/camera/CameraApp.java
|
| diff --git a/services/camera/src/org/chromium/services/camera/CameraApp.java b/services/camera/src/org/chromium/services/camera/CameraApp.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..76fabd52827296d24952af14f3b4a69567e17141
|
| --- /dev/null
|
| +++ b/services/camera/src/org/chromium/services/camera/CameraApp.java
|
| @@ -0,0 +1,61 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +package org.chromium.services.camera;
|
| +
|
| +import android.content.Context;
|
| +
|
| +import org.chromium.mojo.application.ApplicationConnection;
|
| +import org.chromium.mojo.application.ApplicationDelegate;
|
| +import org.chromium.mojo.application.ApplicationRunner;
|
| +import org.chromium.mojo.application.ServiceFactoryBinder;
|
| +import org.chromium.mojo.bindings.InterfaceRequest;
|
| +import org.chromium.mojo.system.Core;
|
| +import org.chromium.mojo.system.MessagePipeHandle;
|
| +import org.chromium.mojom.mojo.CameraService;
|
| +import org.chromium.mojom.mojo.Shell;
|
| +
|
| +class CameraApp implements ApplicationDelegate {
|
| + private CameraServiceImpl mCameraServiceImpl;
|
| +
|
| + public CameraApp(Context context, Core core) {
|
| + mCameraServiceImpl = new CameraServiceImpl(context, core);
|
| + }
|
| +
|
| + public void initialize(Shell shell, String[] args, String url) {
|
| + }
|
| +
|
| + @Override
|
| + public boolean configureIncomingConnection(final ApplicationConnection connection) {
|
| + connection.addService(new ServiceFactoryBinder<CameraService>() {
|
| + @Override
|
| + public void bind(InterfaceRequest<CameraService> request) {
|
| + if (mCameraServiceImpl.cameraInUse()) {
|
| + /* another application is using the camera */
|
| + /* TODO: support multiplexing the camera stream to multiple applications */
|
| + request.close();
|
| + return;
|
| + }
|
| + mCameraServiceImpl.openCamera();
|
| + CameraService.MANAGER.bind(mCameraServiceImpl, request);
|
| + }
|
| +
|
| + @Override
|
| + public String getInterfaceName() {
|
| + return CameraService.MANAGER.getName();
|
| + }
|
| + });
|
| + return true;
|
| + }
|
| +
|
| + @Override
|
| + public void quit() {
|
| + mCameraServiceImpl.cleanup();
|
| + }
|
| +
|
| + public static void mojoMain(Context context, Core core,
|
| + MessagePipeHandle applicationRequestHandle) {
|
| + ApplicationRunner.run(new CameraApp(context, core), core, applicationRequestHandle);
|
| + }
|
| +}
|
|
|