1cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher/*
2cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher * Copyright (C) 2014 The Android Open Source Project
3cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher *
4cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher * Licensed under the Apache License, Version 2.0 (the "License"),
5cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher * you may not use this file except in compliance with the License.
6cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher * You may obtain a copy of the License at
7cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher *
8cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher *      http://www.apache.org/licenses/LICENSE-2.0
9cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher *
10cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher * Unless required by applicable law or agreed to in writing, software
11cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher * distributed under the License is distributed on an "AS IS" BASIS,
12cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher * See the License for the specific language governing permissions and
14cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher * limitations under the License.
15cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher */
16cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher
17cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucherpackage com.android.ex.camera2.portability;
18cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher
19cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucherclass CameraActions {
20cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    // Camera initialization/finalization
21cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int OPEN_CAMERA = 1;
22cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int RELEASE =     2;
23cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int RECONNECT =   3;
24cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int UNLOCK =      4;
25cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int LOCK =        5;
26cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    // Preview
27cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int SET_PREVIEW_TEXTURE_ASYNC =        101;
28cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int START_PREVIEW_ASYNC =              102;
29cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int STOP_PREVIEW =                     103;
30cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int SET_PREVIEW_CALLBACK_WITH_BUFFER = 104;
31cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int ADD_CALLBACK_BUFFER =              105;
32cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int SET_PREVIEW_DISPLAY_ASYNC =        106;
33cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int SET_PREVIEW_CALLBACK =             107;
34cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int SET_ONE_SHOT_PREVIEW_CALLBACK =    108;
35cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    // Parameters
36cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int SET_PARAMETERS =     201;
37cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int GET_PARAMETERS =     202;
38cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int REFRESH_PARAMETERS = 203;
398097973089420749dcd1ab4974a629c2466b31ccAngus Kong    public static final int APPLY_SETTINGS =     204;
40cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    // Focus, Zoom
41cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int AUTO_FOCUS =                   301;
42cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int CANCEL_AUTO_FOCUS =            302;
43cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int SET_AUTO_FOCUS_MOVE_CALLBACK = 303;
44cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int SET_ZOOM_CHANGE_LISTENER =     304;
456a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin    public static final int CANCEL_AUTO_FOCUS_FINISH =     305;
46cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    // Face detection
47cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int SET_FACE_DETECTION_LISTENER = 461;
48cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int START_FACE_DETECTION =        462;
49cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int STOP_FACE_DETECTION =         463;
50cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    // Presentation
51cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int ENABLE_SHUTTER_SOUND =    501;
52cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int SET_DISPLAY_ORIENTATION = 502;
5325ee73acd2dbd6f60deef5306994fbf3a7997936Senpo Hu    public static final int SET_JPEG_ORIENTATION = 503;
54cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    // Capture
55cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher    public static final int CAPTURE_PHOTO = 601;
566a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin
576a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin    public static String stringify(int action) {
586a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin        switch (action) {
596a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case OPEN_CAMERA:
606a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "OPEN_CAMERA";
616a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case RELEASE:
626a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "RELEASE";
636a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case RECONNECT:
646a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "RECONNECT";
656a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case UNLOCK:
666a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "UNLOCK";
676a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case LOCK:
686a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "LOCK";
696a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case SET_PREVIEW_TEXTURE_ASYNC:
706a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "SET_PREVIEW_TEXTURE_ASYNC";
716a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case START_PREVIEW_ASYNC:
726a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "START_PREVIEW_ASYNC";
736a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case STOP_PREVIEW:
746a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "STOP_PREVIEW";
756a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case SET_PREVIEW_CALLBACK_WITH_BUFFER:
766a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "SET_PREVIEW_CALLBACK_WITH_BUFFER";
776a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case ADD_CALLBACK_BUFFER:
786a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "ADD_CALLBACK_BUFFER";
796a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case SET_PREVIEW_DISPLAY_ASYNC:
806a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "SET_PREVIEW_DISPLAY_ASYNC";
816a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case SET_PREVIEW_CALLBACK:
826a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "SET_PREVIEW_CALLBACK";
836a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case SET_ONE_SHOT_PREVIEW_CALLBACK:
846a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "SET_ONE_SHOT_PREVIEW_CALLBACK";
856a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case SET_PARAMETERS:
866a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "SET_PARAMETERS";
876a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case GET_PARAMETERS:
886a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "GET_PARAMETERS";
896a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case REFRESH_PARAMETERS:
906a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "REFRESH_PARAMETERS";
916a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case APPLY_SETTINGS:
926a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "APPLY_SETTINGS";
936a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case AUTO_FOCUS:
946a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "AUTO_FOCUS";
956a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case CANCEL_AUTO_FOCUS:
966a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "CANCEL_AUTO_FOCUS";
976a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case SET_AUTO_FOCUS_MOVE_CALLBACK:
986a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "SET_AUTO_FOCUS_MOVE_CALLBACK";
996a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case SET_ZOOM_CHANGE_LISTENER:
1006a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "SET_ZOOM_CHANGE_LISTENER";
1016a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case CANCEL_AUTO_FOCUS_FINISH:
1026a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "CANCEL_AUTO_FOCUS_FINISH";
1036a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case SET_FACE_DETECTION_LISTENER:
1046a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "SET_FACE_DETECTION_LISTENER";
1056a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case START_FACE_DETECTION:
1066a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "START_FACE_DETECTION";
1076a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case STOP_FACE_DETECTION:
1086a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "STOP_FACE_DETECTION";
1096a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case ENABLE_SHUTTER_SOUND:
1106a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "ENABLE_SHUTTER_SOUND";
1116a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case SET_DISPLAY_ORIENTATION:
1126a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "SET_DISPLAY_ORIENTATION";
1136a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            case CAPTURE_PHOTO:
1146a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "CAPTURE_PHOTO";
1156a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin            default:
1166a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin                return "UNKNOWN(" + action + ")";
1176a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin        }
1186a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin    }
1196a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin
1206a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin    private CameraActions() {
1216a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin        throw new AssertionError();
1226a9babad6eb8ac3e79a5e036d878ed7408e79f26Igor Murashkin    }
123cef46862d6937bc98bf1a6b087c5daa22b5239f3Sol Boucher}
124