diff options
Diffstat (limited to 'src/com/android/devcamera/CameraInterface.java')
-rw-r--r-- | src/com/android/devcamera/CameraInterface.java | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/src/com/android/devcamera/CameraInterface.java b/src/com/android/devcamera/CameraInterface.java new file mode 100644 index 0000000..61c1a63 --- /dev/null +++ b/src/com/android/devcamera/CameraInterface.java @@ -0,0 +1,143 @@ +/* + * 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); + +} |