Home | History | Annotate | Download | only in hardware
      1 /*
      2  * Copyright (C) 2013 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package android.hardware;
     18 
     19 import android.hardware.ICamera;
     20 import android.hardware.ICameraClient;
     21 import android.hardware.camera2.ICameraDeviceUser;
     22 import android.hardware.camera2.ICameraDeviceCallbacks;
     23 import android.hardware.camera2.impl.CameraMetadataNative;
     24 import android.hardware.camera2.utils.BinderHolder;
     25 import android.hardware.ICameraServiceListener;
     26 import android.hardware.CameraInfo;
     27 
     28 /**
     29  * Binder interface for the native camera service running in mediaserver.
     30  *
     31  * @hide
     32  */
     33 interface ICameraService
     34 {
     35     /**
     36      * Keep up-to-date with frameworks/av/include/camera/ICameraService.h
     37      */
     38     int getNumberOfCameras(int type);
     39 
     40     // rest of 'int' return values in this file are actually status_t
     41 
     42     int getCameraInfo(int cameraId, out CameraInfo info);
     43 
     44     int connect(ICameraClient client, int cameraId,
     45                     String opPackageName,
     46                     int clientUid,
     47                     // Container for an ICamera object
     48                     out BinderHolder device);
     49 
     50     int connectDevice(ICameraDeviceCallbacks callbacks, int cameraId,
     51                               String opPackageName,
     52                               int clientUid,
     53                               // Container for an ICameraDeviceUser object
     54                               out BinderHolder device);
     55 
     56     int addListener(ICameraServiceListener listener);
     57     int removeListener(ICameraServiceListener listener);
     58 
     59     int getCameraCharacteristics(int cameraId, out CameraMetadataNative info);
     60 
     61     /**
     62      * The java stubs for this method are not intended to be used.  Please use
     63      * the native stub in frameworks/av/include/camera/ICameraService.h instead.
     64      * The BinderHolder output is being used as a placeholder, and will not be
     65      * well-formatted in the generated java method.
     66      */
     67     int getCameraVendorTagDescriptor(out BinderHolder desc);
     68 
     69     // Writes the camera1 parameters into a single-element array.
     70     int getLegacyParameters(int cameraId, out String[] parameters);
     71     // Determines if a particular API version is supported; see ICameraService.h for version defines
     72     int supportsCameraApi(int cameraId, int apiVersion);
     73 
     74     int connectLegacy(ICameraClient client, int cameraId,
     75                     int halVersion,
     76                     String opPackageName,
     77                     int clientUid,
     78                     // Container for an ICamera object
     79                     out BinderHolder device);
     80 
     81     int setTorchMode(String CameraId, boolean enabled, IBinder clientBinder);
     82 
     83     /**
     84      * Notify the camera service of a system event.  Should only be called from system_server.
     85      *
     86      * Callers require the android.permission.CAMERA_SEND_SYSTEM_EVENTS permission.
     87      */
     88     oneway void notifySystemEvent(int eventId, in int[] args);
     89 }
     90