diff options
Diffstat (limited to 'src/com/google/snappy/MyCameraInterface.java')
-rw-r--r-- | src/com/google/snappy/MyCameraInterface.java | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/src/com/google/snappy/MyCameraInterface.java b/src/com/google/snappy/MyCameraInterface.java new file mode 100644 index 0000000..d6a1be7 --- /dev/null +++ b/src/com/google/snappy/MyCameraInterface.java @@ -0,0 +1,128 @@ +package com.google.snappy; + +import android.util.Size; +import android.view.Surface; + +/** + * This is a simple camera interface not specific to API1 or API2. + */ +public interface MyCameraInterface { + /** + * 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); + +} |