summaryrefslogtreecommitdiff
path: root/src/com/android/devcamera/CameraInterface.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/devcamera/CameraInterface.java')
-rw-r--r--src/com/android/devcamera/CameraInterface.java143
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);
+
+}