1/*
2 * Copyright (C) 2013 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.hardware;
18
19/** @hide */
20interface ICameraServiceListener
21{
22
23    /**
24     * Initial status will be transmitted with onStatusChange immediately
25     * after this listener is added to the service listener list.
26     *
27     * Allowed transitions:
28     *
29     *     (Any)               -> NOT_PRESENT
30     *     NOT_PRESENT         -> PRESENT
31     *     NOT_PRESENT         -> ENUMERATING
32     *     ENUMERATING         -> PRESENT
33     *     PRESENT             -> NOT_AVAILABLE
34     *     NOT_AVAILABLE       -> PRESENT
35     *
36     * A state will never immediately transition back to itself.
37     *
38     * The enums must match the values in
39     * include/hardware/camera_common.h when applicable
40     */
41    // Device physically unplugged
42    const int STATUS_NOT_PRESENT      = 0;
43    // Device physically has been plugged in and the camera can be used exlusively
44    const int STATUS_PRESENT          = 1;
45    // Device physically has been plugged in but it will not be connect-able until enumeration is
46    // complete
47    const int STATUS_ENUMERATING      = 2;
48    // Camera is in use by another app and cannot be used exclusively
49    const int STATUS_NOT_AVAILABLE    = -2;
50
51    // Use to initialize variables only
52    const int STATUS_UNKNOWN          = -1;
53
54    oneway void onStatusChanged(int status, int cameraId);
55
56    /**
57     * The torch mode status of a camera.
58     *
59     * Initial status will be transmitted with onTorchStatusChanged immediately
60     * after this listener is added to the service listener list.
61     *
62     * The enums must match the values in
63     * include/hardware/camera_common.h
64     */
65    // The camera's torch mode has become not available to use via
66    // setTorchMode().
67    const int TORCH_STATUS_NOT_AVAILABLE = 0;
68    // The camera's torch mode is off and available to be turned on via
69    // setTorchMode().
70    const int TORCH_STATUS_AVAILABLE_OFF = 1;
71    // The camera's torch mode is on and available to be turned off via
72    // setTorchMode().
73    const int TORCH_STATUS_AVAILABLE_ON  = 2;
74
75    // Use to initialize variables only
76    const int TORCH_STATUS_UNKNOWN = -1;
77
78    oneway void onTorchStatusChanged(int status, String cameraId);
79}
80