161ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala/* 261ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * Copyright (C) 2012 The Android Open Source Project 361ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * 461ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * Licensed under the Apache License, Version 2.0 (the "License"); 561ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * you may not use this file except in compliance with the License. 661ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * You may obtain a copy of the License at 761ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * 861ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * http://www.apache.org/licenses/LICENSE-2.0 961ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * 1061ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * Unless required by applicable law or agreed to in writing, software 1161ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * distributed under the License is distributed on an "AS IS" BASIS, 1261ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1361ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * See the License for the specific language governing permissions and 1461ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala * limitations under the License. 1561ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala */ 1661ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala 1761ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala#ifndef ANDROID_SERVERS_CAMERA_CAMERA2CLIENT_H 1861ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala#define ANDROID_SERVERS_CAMERA_CAMERA2CLIENT_H 1961ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala 2061ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala#include "CameraService.h" 217b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala#include "common/CameraDeviceBase.h" 227b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala#include "common/Camera2ClientBase.h" 237b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala#include "api1/client2/Parameters.h" 247b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala#include "api1/client2/FrameProcessor.h" 257b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala//#include "api1/client2/StreamingProcessor.h" 267b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala//#include "api1/client2/JpegProcessor.h" 277b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala//#include "api1/client2/ZslProcessorInterface.h" 287b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala//#include "api1/client2/CaptureSequencer.h" 297b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala//#include "api1/client2/CallbackProcessor.h" 3061ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala 3161ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvalanamespace android { 3261ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala 337b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvalanamespace camera2 { 347b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala 357b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvalaclass StreamingProcessor; 367b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvalaclass JpegProcessor; 377b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvalaclass ZslProcessorInterface; 387b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvalaclass CaptureSequencer; 397b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvalaclass CallbackProcessor; 407b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala 417b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala} 427b82efe7a376c882f8f938e1c41b8311a8cdda4aEino-Ville Talvala 4373bbd1f1c493835f191ea2b0b72439292496b40aEino-Ville Talvalaclass IMemory; 4461ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala/** 45b99c5b8eebb35133a08c46b015624bd4c4a6c477Eino-Ville Talvala * Interface between android.hardware.Camera API and Camera HAL device for versions 46b99c5b8eebb35133a08c46b015624bd4c4a6c477Eino-Ville Talvala * CAMERA_DEVICE_API_VERSION_2_0 and 3_0. 4761ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala */ 488ce89d9e2b132bf58a030acec88acf0a998926a1Eino-Ville Talvalaclass Camera2Client : 4944cfcf00b9008c1c04f4c8277c6c06af039fd976Igor Murashkin public Camera2ClientBase<CameraService::Client> 5061ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala{ 5161ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvalapublic: 52ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala /** 53ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala * ICamera interface (see ICamera for details) 54ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala */ 55160d4af9d933fe9461bb213e5876fc5c8c2178c2Eino-Ville Talvala 5661ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual void disconnect(); 5761ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual status_t connect(const sp<ICameraClient>& client); 5861ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual status_t lock(); 5961ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual status_t unlock(); 601ce7c34e67c2cf58dd88c31f36f4bd62e375f7f0Eino-Ville Talvala virtual status_t setPreviewTarget( 618ba01021b573889802e67e029225a96f0dfa471aAndy McFadden const sp<IGraphicBufferProducer>& bufferProducer); 6261ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual void setPreviewCallbackFlag(int flag); 633ee3550a2f529cbf56d87d8503f59a8f45dccf32Eino-Ville Talvala virtual status_t setPreviewCallbackTarget( 643ee3550a2f529cbf56d87d8503f59a8f45dccf32Eino-Ville Talvala const sp<IGraphicBufferProducer>& callbackProducer); 653ee3550a2f529cbf56d87d8503f59a8f45dccf32Eino-Ville Talvala 6661ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual status_t startPreview(); 6761ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual void stopPreview(); 6861ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual bool previewEnabled(); 6961ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual status_t storeMetaDataInBuffers(bool enabled); 7061ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual status_t startRecording(); 7161ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual void stopRecording(); 7261ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual bool recordingEnabled(); 7361ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual void releaseRecordingFrame(const sp<IMemory>& mem); 7461ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual status_t autoFocus(); 7561ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual status_t cancelAutoFocus(); 7661ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual status_t takePicture(int msgType); 7761ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual status_t setParameters(const String8& params); 7861ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual String8 getParameters() const; 7961ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual status_t sendCommand(int32_t cmd, int32_t arg1, int32_t arg2); 8061ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala 81ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala /** 82ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala * Interface used by CameraService 83ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala */ 84160d4af9d933fe9461bb213e5876fc5c8c2178c2Eino-Ville Talvala 8561ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala Camera2Client(const sp<CameraService>& cameraService, 8661ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala const sp<ICameraClient>& cameraClient, 87ceb388d6c03c38b96dc41c0ea4804b749aa077c4Eino-Ville Talvala const String16& clientPackageName, 8861ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala int cameraId, 8961ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala int cameraFacing, 90ecf17e82505fdb60d59e00b6dd59036df93de655Igor Murashkin int clientPid, 91ceb388d6c03c38b96dc41c0ea4804b749aa077c4Eino-Ville Talvala uid_t clientUid, 92b99c5b8eebb35133a08c46b015624bd4c4a6c477Eino-Ville Talvala int servicePid, 93b99c5b8eebb35133a08c46b015624bd4c4a6c477Eino-Ville Talvala int deviceVersion); 94b99c5b8eebb35133a08c46b015624bd4c4a6c477Eino-Ville Talvala 95160d4af9d933fe9461bb213e5876fc5c8c2178c2Eino-Ville Talvala virtual ~Camera2Client(); 9661ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala 97f69c70ded4316ea3ee504ac779bd024433ed4ef7Eino-Ville Talvala status_t initialize(camera_module_t *module); 98f69c70ded4316ea3ee504ac779bd024433ed4ef7Eino-Ville Talvala 9961ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala virtual status_t dump(int fd, const Vector<String16>& args); 10061ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala 101ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala /** 102b99c5b8eebb35133a08c46b015624bd4c4a6c477Eino-Ville Talvala * Interface used by CameraDeviceBase 103ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala */ 104160d4af9d933fe9461bb213e5876fc5c8c2178c2Eino-Ville Talvala 105160d4af9d933fe9461bb213e5876fc5c8c2178c2Eino-Ville Talvala virtual void notifyAutoFocus(uint8_t newState, int triggerId); 106160d4af9d933fe9461bb213e5876fc5c8c2178c2Eino-Ville Talvala virtual void notifyAutoExposure(uint8_t newState, int triggerId); 107160d4af9d933fe9461bb213e5876fc5c8c2178c2Eino-Ville Talvala 108ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala /** 109ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala * Interface used by independent components of Camera2Client. 110ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala */ 111a16733eeb9c40db4793bec408f29b4204e5f23b1Eino-Ville Talvala 112a16733eeb9c40db4793bec408f29b4204e5f23b1Eino-Ville Talvala camera2::SharedParameters& getParameters(); 113a16733eeb9c40db4793bec408f29b4204e5f23b1Eino-Ville Talvala 114da6665cbd06ca58d3357c3002b7366d13e23f152Eino-Ville Talvala int getPreviewStreamId() const; 115da6665cbd06ca58d3357c3002b7366d13e23f152Eino-Ville Talvala int getCaptureStreamId() const; 116da6665cbd06ca58d3357c3002b7366d13e23f152Eino-Ville Talvala int getCallbackStreamId() const; 117da6665cbd06ca58d3357c3002b7366d13e23f152Eino-Ville Talvala int getRecordingStreamId() const; 118da6665cbd06ca58d3357c3002b7366d13e23f152Eino-Ville Talvala int getZslStreamId() const; 119da6665cbd06ca58d3357c3002b7366d13e23f152Eino-Ville Talvala 1204865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala status_t registerFrameListener(int32_t minId, int32_t maxId, 121da6665cbd06ca58d3357c3002b7366d13e23f152Eino-Ville Talvala wp<camera2::FrameProcessor::FilteredListener> listener); 1224865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala status_t removeFrameListener(int32_t minId, int32_t maxId, 1234865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala wp<camera2::FrameProcessor::FilteredListener> listener); 1244865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala 1254865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala status_t stopStream(); 126da6665cbd06ca58d3357c3002b7366d13e23f152Eino-Ville Talvala 127ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala static size_t calculateBufferSize(int width, int height, 128ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala int format, int stride); 129ea0d51b5ed0b474433b02414f9133b835f972569Eino-Ville Talvala 1304865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala static const int32_t kPreviewRequestIdStart = 10000000; 1314865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala static const int32_t kPreviewRequestIdEnd = 20000000; 1324865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala 1334865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala static const int32_t kRecordingRequestIdStart = 20000000; 1344865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala static const int32_t kRecordingRequestIdEnd = 30000000; 1354865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala 1364865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala static const int32_t kCaptureRequestIdStart = 30000000; 1374865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala static const int32_t kCaptureRequestIdEnd = 40000000; 138da6665cbd06ca58d3357c3002b7366d13e23f152Eino-Ville Talvala 1392b07e0207da44d7b3cc63c369fd10c9f12a5e2cdEino-Ville Talvala // Constant strings for ATRACE logging 1402b07e0207da44d7b3cc63c369fd10c9f12a5e2cdEino-Ville Talvala static const char* kAutofocusLabel; 1412b07e0207da44d7b3cc63c369fd10c9f12a5e2cdEino-Ville Talvala static const char* kTakepictureLabel; 1422b07e0207da44d7b3cc63c369fd10c9f12a5e2cdEino-Ville Talvala 14361ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvalaprivate: 1443cca136b73b0f4d058019230eb2070cc23e2bbb0Eino-Ville Talvala /** ICamera interface-related private members */ 1452e19c3c02957208371cdd491e6342ea7ddb440d9Eino-Ville Talvala typedef camera2::Parameters Parameters; 146228a53805808a24cb19fcf13b1f0bdc2ed89bbe1Eino-Ville Talvala 14736cdfb185877a7f573621d19ed2b2e1cac13d62eEino-Ville Talvala status_t setPreviewWindowL(const sp<IBinder>& binder, 148be0573b93e2d6fa133579c885583af9ed16bc29dEino-Ville Talvala sp<ANativeWindow> window); 149228a53805808a24cb19fcf13b1f0bdc2ed89bbe1Eino-Ville Talvala status_t startPreviewL(Parameters ¶ms, bool restart); 150228a53805808a24cb19fcf13b1f0bdc2ed89bbe1Eino-Ville Talvala void stopPreviewL(); 151228a53805808a24cb19fcf13b1f0bdc2ed89bbe1Eino-Ville Talvala status_t startRecordingL(Parameters ¶ms, bool restart); 152228a53805808a24cb19fcf13b1f0bdc2ed89bbe1Eino-Ville Talvala bool recordingEnabledL(); 1538da4cd7d706d9f551bf2d08cd8b61907a10cd38dJames Dong 15436cdfb185877a7f573621d19ed2b2e1cac13d62eEino-Ville Talvala // Individual commands for sendCommand() 15536cdfb185877a7f573621d19ed2b2e1cac13d62eEino-Ville Talvala status_t commandStartSmoothZoomL(); 15636cdfb185877a7f573621d19ed2b2e1cac13d62eEino-Ville Talvala status_t commandStopSmoothZoomL(); 15736cdfb185877a7f573621d19ed2b2e1cac13d62eEino-Ville Talvala status_t commandSetDisplayOrientationL(int degrees); 15836cdfb185877a7f573621d19ed2b2e1cac13d62eEino-Ville Talvala status_t commandEnableShutterSoundL(bool enable); 15936cdfb185877a7f573621d19ed2b2e1cac13d62eEino-Ville Talvala status_t commandPlayRecordingSoundL(); 16036cdfb185877a7f573621d19ed2b2e1cac13d62eEino-Ville Talvala status_t commandStartFaceDetectionL(int type); 161228a53805808a24cb19fcf13b1f0bdc2ed89bbe1Eino-Ville Talvala status_t commandStopFaceDetectionL(Parameters ¶ms); 16236cdfb185877a7f573621d19ed2b2e1cac13d62eEino-Ville Talvala status_t commandEnableFocusMoveMsgL(bool enable); 16336cdfb185877a7f573621d19ed2b2e1cac13d62eEino-Ville Talvala status_t commandPingL(); 16436cdfb185877a7f573621d19ed2b2e1cac13d62eEino-Ville Talvala status_t commandSetVideoBufferCountL(size_t count); 165ac45eb3dfa7347f7b8c98be1111b2a5f9e344c46Eino-Ville Talvala 1662e19c3c02957208371cdd491e6342ea7ddb440d9Eino-Ville Talvala // Current camera device configuration 1672e19c3c02957208371cdd491e6342ea7ddb440d9Eino-Ville Talvala camera2::SharedParameters mParameters; 1688ce89d9e2b132bf58a030acec88acf0a998926a1Eino-Ville Talvala 1693cca136b73b0f4d058019230eb2070cc23e2bbb0Eino-Ville Talvala /** Camera device-related private members */ 1703cca136b73b0f4d058019230eb2070cc23e2bbb0Eino-Ville Talvala 171228a53805808a24cb19fcf13b1f0bdc2ed89bbe1Eino-Ville Talvala void setPreviewCallbackFlagL(Parameters ¶ms, int flag); 1725a4f93eaaab7518fd734fdc9f0f686d632f31a59Eino-Ville Talvala status_t updateRequests(Parameters ¶ms); 173ae500e53efa1d26eb7c13e62d0ecc8d75db2473aIgor Murashkin int mDeviceVersion; 1748ce89d9e2b132bf58a030acec88acf0a998926a1Eino-Ville Talvala 1759cca4c6d976d2d4127286e9eaa54d1b99880c25cEino-Ville Talvala // Used with stream IDs 176d4bcfde6bf3e7b28e36f6ec66e6d9e5adebfa949Eino-Ville Talvala static const int NO_STREAM = -1; 1776db981c45a964f0d9df4c3451f064dff7954d78eEino-Ville Talvala 178dca254aef0c09867e50fe6613c6fad405de72842Igor Murashkin template <typename ProcessorT> 179dca254aef0c09867e50fe6613c6fad405de72842Igor Murashkin status_t updateProcessorStream(sp<ProcessorT> processor, Parameters params); 18082db9e6126812dd2ee74e33e4c475cae2c7e48f6Igor Murashkin template <typename ProcessorT, 18182db9e6126812dd2ee74e33e4c475cae2c7e48f6Igor Murashkin status_t (ProcessorT::*updateStreamF)(const Parameters &)> 18282db9e6126812dd2ee74e33e4c475cae2c7e48f6Igor Murashkin status_t updateProcessorStream(sp<ProcessorT> processor, Parameters params); 183dca254aef0c09867e50fe6613c6fad405de72842Igor Murashkin 184a16733eeb9c40db4793bec408f29b4204e5f23b1Eino-Ville Talvala sp<camera2::FrameProcessor> mFrameProcessor; 1858ce89d9e2b132bf58a030acec88acf0a998926a1Eino-Ville Talvala 18673bbd1f1c493835f191ea2b0b72439292496b40aEino-Ville Talvala /* Preview/Recording related members */ 187be0573b93e2d6fa133579c885583af9ed16bc29dEino-Ville Talvala 1889cca4c6d976d2d4127286e9eaa54d1b99880c25cEino-Ville Talvala sp<IBinder> mPreviewSurface; 18973bbd1f1c493835f191ea2b0b72439292496b40aEino-Ville Talvala sp<camera2::StreamingProcessor> mStreamingProcessor; 1909cca4c6d976d2d4127286e9eaa54d1b99880c25cEino-Ville Talvala 191228a53805808a24cb19fcf13b1f0bdc2ed89bbe1Eino-Ville Talvala /** Preview callback related members */ 192228a53805808a24cb19fcf13b1f0bdc2ed89bbe1Eino-Ville Talvala 193d86a6880fe86bda21a9b53b240996fc410a512a5Eino-Ville Talvala sp<camera2::CallbackProcessor> mCallbackProcessor; 194228a53805808a24cb19fcf13b1f0bdc2ed89bbe1Eino-Ville Talvala 1959cca4c6d976d2d4127286e9eaa54d1b99880c25cEino-Ville Talvala /* Still image capture related members */ 1966db981c45a964f0d9df4c3451f064dff7954d78eEino-Ville Talvala 197da6665cbd06ca58d3357c3002b7366d13e23f152Eino-Ville Talvala sp<camera2::CaptureSequencer> mCaptureSequencer; 198da6665cbd06ca58d3357c3002b7366d13e23f152Eino-Ville Talvala sp<camera2::JpegProcessor> mJpegProcessor; 199ae500e53efa1d26eb7c13e62d0ecc8d75db2473aIgor Murashkin sp<camera2::ZslProcessorInterface> mZslProcessor; 200ae500e53efa1d26eb7c13e62d0ecc8d75db2473aIgor Murashkin sp<Thread> mZslProcessorThread; 2019cca4c6d976d2d4127286e9eaa54d1b99880c25cEino-Ville Talvala 202174181eec57c963a2a17bd156d81c3f18b3ba75cEino-Ville Talvala /** Notification-related members */ 203174181eec57c963a2a17bd156d81c3f18b3ba75cEino-Ville Talvala 204174181eec57c963a2a17bd156d81c3f18b3ba75cEino-Ville Talvala bool mAfInMotion; 205174181eec57c963a2a17bd156d81c3f18b3ba75cEino-Ville Talvala 2069cca4c6d976d2d4127286e9eaa54d1b99880c25cEino-Ville Talvala /** Utility members */ 2079cca4c6d976d2d4127286e9eaa54d1b99880c25cEino-Ville Talvala 2084865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala // Wait until the camera device has received the latest control settings 2094865c526e681366481b0ab242ffa1ead57bb02ccEino-Ville Talvala status_t syncWithDevice(); 21061ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala}; 21161ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala 21261ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala}; // namespace android 21361ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala 21461ab9f93315ea817cd1ac110e2a95da4dab6b4d1Eino-Ville Talvala#endif 215