1639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala/* 2639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * Copyright (C) 2015 The Android Open Source Project 3639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * 4639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * Licensed under the Apache License, Version 2.0 (the "License"); 5639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * you may not use this file except in compliance with the License. 6639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * You may obtain a copy of the License at 7639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * 8639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * http://www.apache.org/licenses/LICENSE-2.0 9639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * 10639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * Unless required by applicable law or agreed to in writing, software 11639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * distributed under the License is distributed on an "AS IS" BASIS, 12639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * See the License for the specific language governing permissions and 14639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * limitations under the License. 15639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala */ 16639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala 17639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvalapackage android.hardware.camera2.impl; 18639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala 19639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala/** 20639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * Internal interface for CameraDeviceImpl to CameraCaptureSessionImpl(s) communication 21639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala */ 22639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvalapublic interface CameraCaptureSessionCore { 23639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala 24639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala /** 25639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * Replace this session with another session. 26639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * 27639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * <p>This is an optimization to avoid unconfiguring and then immediately having to 28639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * reconfigure again.</p> 29639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * 30639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * <p>The semantics are identical to {@link #close}, except that unconfiguring will be skipped. 31639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * </p> 32639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * 33639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * <p>After this call completes, the session will not call any further methods on the camera 34639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * device.</p> 35639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * 36639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * @see CameraCaptureSession#close 37639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala */ 38639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala void replaceSessionClose(); 39639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala 40639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala /** 41639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * 42639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * Create an internal state callback, to be invoked on the mDeviceHandler 43639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * 44639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * <p>It has a few behaviors: 45639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * <ul> 46639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * <li>Convert device state changes into session state changes. 47639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * <li>Keep track of async tasks that the session began (idle, abort). 48639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * </ul> 49639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * </p> 50639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * */ 51639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala CameraDeviceImpl.StateCallbackKK getDeviceStateCallback(); 52639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala 53639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala /** 54639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * Whether currently in mid-abort. 55639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * 56639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * <p>This is used by the implementation to set the capture failure 57639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * reason, in lieu of more accurate error codes from the camera service. 58639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * Unsynchronized to avoid deadlocks between simultaneous session->device, 59639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * device->session calls.</p> 60639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala * 61639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala */ 62639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala boolean isAborting(); 63639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala 64639fffee624302ec5b175503d7bd8a441340a629Eino-Ville Talvala} 65