ICameraService.aidl revision f51fca277eb5b86bd0b2e3fc90ecb2b63089de29
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 17package android.hardware; 18 19import android.hardware.ICamera; 20import android.hardware.ICameraClient; 21import android.hardware.camera2.ICameraDeviceUser; 22import android.hardware.camera2.ICameraDeviceCallbacks; 23import android.hardware.camera2.params.VendorTagDescriptor; 24import android.hardware.camera2.impl.CameraMetadataNative; 25import android.hardware.ICameraServiceListener; 26import android.hardware.CameraInfo; 27import android.hardware.CameraStatus; 28 29/** 30 * Binder interface for the native camera service running in mediaserver. 31 * 32 * @hide 33 */ 34interface ICameraService 35{ 36 /** 37 * All camera service and device Binder calls may return a 38 * ServiceSpecificException with the following error codes 39 */ 40 const int ERROR_PERMISSION_DENIED = 1; 41 const int ERROR_ALREADY_EXISTS = 2; 42 const int ERROR_ILLEGAL_ARGUMENT = 3; 43 const int ERROR_DISCONNECTED = 4; 44 const int ERROR_TIMED_OUT = 5; 45 const int ERROR_DISABLED = 6; 46 const int ERROR_CAMERA_IN_USE = 7; 47 const int ERROR_MAX_CAMERAS_IN_USE = 8; 48 const int ERROR_DEPRECATED_HAL = 9; 49 const int ERROR_INVALID_OPERATION = 10; 50 51 /** 52 * Types for getNumberOfCameras 53 */ 54 const int CAMERA_TYPE_BACKWARD_COMPATIBLE = 0; 55 const int CAMERA_TYPE_ALL = 1; 56 57 /** 58 * Return the number of camera devices available in the system 59 */ 60 int getNumberOfCameras(int type); 61 62 /** 63 * Fetch basic camera information for a camera device 64 */ 65 CameraInfo getCameraInfo(int cameraId); 66 67 /** 68 * Default UID/PID values for non-privileged callers of 69 * connect(), connectDevice(), and connectLegacy() 70 */ 71 const int USE_CALLING_UID = -1; 72 const int USE_CALLING_PID = -1; 73 74 /** 75 * Open a camera device through the old camera API 76 */ 77 ICamera connect(ICameraClient client, 78 int cameraId, 79 String opPackageName, 80 int clientUid, int clientPid); 81 82 /** 83 * Open a camera device through the new camera API 84 * Only supported for device HAL versions >= 3.2 85 */ 86 ICameraDeviceUser connectDevice(ICameraDeviceCallbacks callbacks, 87 String cameraId, 88 String opPackageName, 89 int clientUid); 90 91 /** 92 * halVersion constant for connectLegacy 93 */ 94 const int CAMERA_HAL_API_VERSION_UNSPECIFIED = -1; 95 96 /** 97 * Open a camera device in legacy mode, if supported by the camera module HAL. 98 */ 99 ICamera connectLegacy(ICameraClient client, 100 int cameraId, 101 int halVersion, 102 String opPackageName, 103 int clientUid); 104 105 /** 106 * Add listener for changes to camera device and flashlight state. 107 * 108 * Also returns the set of currently-known camera IDs and state of each device. 109 * Adding a listener will trigger the torch status listener to fire for all 110 * devices that have a flash unit 111 */ 112 CameraStatus[] addListener(ICameraServiceListener listener); 113 114 /** 115 * Remove listener for changes to camera device and flashlight state. 116 */ 117 void removeListener(ICameraServiceListener listener); 118 119 /** 120 * Read the static camera metadata for a camera device. 121 * Only supported for device HAL versions >= 3.2 122 */ 123 CameraMetadataNative getCameraCharacteristics(String cameraId); 124 125 /** 126 * Read in the vendor tag descriptors from the camera module HAL. 127 * Intended to be used by the native code of CameraMetadataNative to correctly 128 * interpret camera metadata with vendor tags. 129 */ 130 VendorTagDescriptor getCameraVendorTagDescriptor(); 131 132 /** 133 * Read the legacy camera1 parameters into a String 134 */ 135 String getLegacyParameters(int cameraId); 136 137 /** 138 * apiVersion constants for supportsCameraApi 139 */ 140 const int API_VERSION_1 = 1; 141 const int API_VERSION_2 = 2; 142 143 // Determines if a particular API version is supported directly 144 boolean supportsCameraApi(String cameraId, int apiVersion); 145 146 void setTorchMode(String cameraId, boolean enabled, IBinder clientBinder); 147 148 /** 149 * Notify the camera service of a system event. Should only be called from system_server. 150 * 151 * Callers require the android.permission.CAMERA_SEND_SYSTEM_EVENTS permission. 152 */ 153 const int EVENT_NONE = 0; 154 const int EVENT_USER_SWITCHED = 1; 155 oneway void notifySystemEvent(int eventId, in int[] args); 156} 157