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