| /* |
| * Copyright (C) 2016 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package com.android.devcamera; |
| |
| import android.util.Size; |
| import android.view.Surface; |
| |
| /** |
| * This is a simple camera interface not specific to API1 or API2. |
| */ |
| public interface CameraInterface { |
| /** |
| * Return preview size to use pass thru from camera API. |
| */ |
| Size getPreviewSize(); |
| |
| /** |
| * Open the camera. Call startPreview() to actually see something. |
| */ |
| void openCamera(); |
| |
| /** |
| * Start preview to a surface. Also need to call openCamera(). |
| * @param surface |
| */ |
| void startPreview(Surface surface); |
| |
| /** |
| * Close the camera. |
| */ |
| void closeCamera(); |
| |
| /** |
| * Take a picture and return data with provided callback. |
| * Preview must be started. |
| */ |
| void takePicture(); |
| |
| /** |
| * Set whether we are continuously taking pictures, or not. |
| */ |
| void setBurst(boolean go); |
| |
| /** |
| * Take a picture and return data with provided callback. |
| * Preview must be started. |
| */ |
| void setCallback(MyCameraCallback callback); |
| |
| /** |
| * Is a raw stream available. |
| */ |
| boolean isRawAvailable(); |
| |
| /** |
| * Is a reprocessing available. |
| */ |
| boolean isReprocessingAvailable(); |
| |
| /** |
| * Triggers an AF scan. Leaves camera in AUTO. |
| */ |
| void triggerAFScan(); |
| |
| /** |
| * Runs CAF (continuous picture). |
| */ |
| void setCAF(); |
| |
| /** |
| * Camera picture callbacks. |
| */ |
| interface MyCameraCallback { |
| /** |
| * What text to display on the Edge and NR mode buttons. |
| */ |
| void setNoiseEdgeText(String s1, String s2); |
| |
| /** |
| * What text to display on the Edge and NR mode buttons (reprocessing flow). |
| */ |
| void setNoiseEdgeTextForReprocessing(String s1, String s2); |
| |
| /** |
| * Full size JPEG is available. |
| * @param jpegData |
| * @param x |
| * @param y |
| */ |
| void jpegAvailable(byte[] jpegData, int x, int y); |
| |
| /** |
| * Metadata from an image frame. |
| * |
| * @param info Info string we print just under viewfinder. |
| * |
| * fps, mLastIso, af, ae, awb |
| * @param faces Face coordinates. |
| * @param normExposure Exposure value normalized from 0 to 1. |
| * @param normLensPos Lens position value normalized from 0 to 1. |
| * @param fps |
| * @param iso |
| * @param afState |
| * @param aeState |
| * @param awbState |
| * |
| */ |
| void frameDataAvailable(NormalizedFace[] faces, float normExposure, float normLensPos, float fps, int iso, int afState, int aeState, int awbState); |
| |
| /** |
| * Misc performance data. |
| */ |
| void performanceDataAvailable(Integer timeToFirstFrame, Integer halWaitTime, Float droppedFrameCount); |
| |
| /** |
| * Called when camera2 FULL not available. |
| */ |
| void noCamera2Full(); |
| |
| /** |
| * Used to set the preview SurfaceView background color from black to transparent. |
| */ |
| void receivedFirstFrame(); |
| } |
| |
| void setCaptureFlow(Boolean yuv1, Boolean yuv2, Boolean raw10, Boolean nr, Boolean edge, Boolean face); |
| |
| void setReprocessingFlow(Boolean nr, Boolean edge); |
| |
| } |