14491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin/* 24491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * Copyright (C) 2013 The Android Open Source Project 34491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * 44491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * Licensed under the Apache License, Version 2.0 (the "License"); 54491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * you may not use this file except in compliance with the License. 64491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * You may obtain a copy of the License at 74491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * 84491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * http://www.apache.org/licenses/LICENSE-2.0 94491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * 104491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * Unless required by applicable law or agreed to in writing, software 114491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * distributed under the License is distributed on an "AS IS" BASIS, 124491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * See the License for the specific language governing permissions and 144491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * limitations under the License. 154491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin */ 164491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin 174491d684f47fcf1e05652f910587a930be8a4135Igor Murashkinpackage android.hardware; 184491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin 194491d684f47fcf1e05652f910587a930be8a4135Igor Murashkinimport android.hardware.ICamera; 204491d684f47fcf1e05652f910587a930be8a4135Igor Murashkinimport android.hardware.ICameraClient; 214491d684f47fcf1e05652f910587a930be8a4135Igor Murashkinimport android.hardware.IProCameraUser; 224491d684f47fcf1e05652f910587a930be8a4135Igor Murashkinimport android.hardware.IProCameraCallbacks; 232f1a2e423e0fbb64467d6fcfa4e82c6384f31210Eino-Ville Talvalaimport android.hardware.camera2.ICameraDeviceUser; 242f1a2e423e0fbb64467d6fcfa4e82c6384f31210Eino-Ville Talvalaimport android.hardware.camera2.ICameraDeviceCallbacks; 252001188be30649198972a3199a4322d6f7f5f93dZhijun Heimport android.hardware.camera2.impl.CameraMetadataNative; 2666ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunkimport android.hardware.camera2.utils.BinderHolder; 274491d684f47fcf1e05652f910587a930be8a4135Igor Murashkinimport android.hardware.ICameraServiceListener; 284491d684f47fcf1e05652f910587a930be8a4135Igor Murashkinimport android.hardware.CameraInfo; 294491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin 304491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin/** @hide */ 314491d684f47fcf1e05652f910587a930be8a4135Igor Murashkininterface ICameraService 324491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin{ 334491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin /** 344491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin * Keep up-to-date with frameworks/av/include/camera/ICameraService.h 354491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin */ 364491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin int getNumberOfCameras(); 374491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin 384491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin // rest of 'int' return values in this file are actually status_t 394491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin 404491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin int getCameraInfo(int cameraId, out CameraInfo info); 414491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin 4266ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk int connect(ICameraClient client, int cameraId, 434491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin String clientPackageName, 4466ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk int clientUid, 4566ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk // Container for an ICamera object 4666ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk out BinderHolder device); 474491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin 4866ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk int connectPro(IProCameraCallbacks callbacks, int cameraId, 494491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin String clientPackageName, 5066ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk int clientUid, 5166ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk // Container for an IProCameraUser object 5266ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk out BinderHolder device); 534491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin 5466ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk int connectDevice(ICameraDeviceCallbacks callbacks, int cameraId, 5570725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin String clientPackageName, 5666ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk int clientUid, 5766ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk // Container for an ICameraDeviceUser object 5866ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk out BinderHolder device); 5970725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin 604491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin int addListener(ICameraServiceListener listener); 614491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin int removeListener(ICameraServiceListener listener); 622001188be30649198972a3199a4322d6f7f5f93dZhijun He 632001188be30649198972a3199a4322d6f7f5f93dZhijun He int getCameraCharacteristics(int cameraId, out CameraMetadataNative info); 6485c4388de1fea3d45783f07895c2b113c4cc1ba5Ruben Brunk 6585c4388de1fea3d45783f07895c2b113c4cc1ba5Ruben Brunk /** 6685c4388de1fea3d45783f07895c2b113c4cc1ba5Ruben Brunk * The java stubs for this method are not intended to be used. Please use 6785c4388de1fea3d45783f07895c2b113c4cc1ba5Ruben Brunk * the native stub in frameworks/av/include/camera/ICameraService.h instead. 6885c4388de1fea3d45783f07895c2b113c4cc1ba5Ruben Brunk * The BinderHolder output is being used as a placeholder, and will not be 6985c4388de1fea3d45783f07895c2b113c4cc1ba5Ruben Brunk * well-formatted in the generated java method. 7085c4388de1fea3d45783f07895c2b113c4cc1ba5Ruben Brunk */ 7185c4388de1fea3d45783f07895c2b113c4cc1ba5Ruben Brunk int getCameraVendorTagDescriptor(out BinderHolder desc); 724961bc88d7bab869a5296789d26fcfa31ad5f644Igor Murashkin 734961bc88d7bab869a5296789d26fcfa31ad5f644Igor Murashkin // Writes the camera1 parameters into a single-element array. 744961bc88d7bab869a5296789d26fcfa31ad5f644Igor Murashkin int getLegacyParameters(int cameraId, out String[] parameters); 754961bc88d7bab869a5296789d26fcfa31ad5f644Igor Murashkin // Determines if a particular API version is supported; see ICameraService.h for version defines 764961bc88d7bab869a5296789d26fcfa31ad5f644Igor Murashkin int supportsCameraApi(int cameraId, int apiVersion); 774c913801141163362dd5bb7c9784c83f69c11054Zhijun He 784c913801141163362dd5bb7c9784c83f69c11054Zhijun He int connectLegacy(ICameraClient client, int cameraId, 794c913801141163362dd5bb7c9784c83f69c11054Zhijun He int halVersion, 804c913801141163362dd5bb7c9784c83f69c11054Zhijun He String clientPackageName, 814c913801141163362dd5bb7c9784c83f69c11054Zhijun He int clientUid, 824c913801141163362dd5bb7c9784c83f69c11054Zhijun He // Container for an ICamera object 834c913801141163362dd5bb7c9784c83f69c11054Zhijun He out BinderHolder device); 844491d684f47fcf1e05652f910587a930be8a4135Igor Murashkin} 85