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