summaryrefslogtreecommitdiffstats
path: root/camera2
diff options
context:
space:
mode:
authorAngus Kong <shkong@google.com>2014-04-25 11:41:23 -0700
committerEd Heyl <edheyl@google.com>2014-06-18 10:24:45 -0700
commitb00b7a67213ee6868eb792b2a63ba0dca888a01f (patch)
tree71503e0d52594676792b41d347ffa22b0a9f91f4 /camera2
parentd3865a20b022f6d54fe7ac052768a7ff0710017f (diff)
downloadandroid_frameworks_ex-b00b7a67213ee6868eb792b2a63ba0dca888a01f.tar.gz
android_frameworks_ex-b00b7a67213ee6868eb792b2a63ba0dca888a01f.tar.bz2
android_frameworks_ex-b00b7a67213ee6868eb792b2a63ba0dca888a01f.zip
Add history info for camera open failure log.
bug:14365703 Change-Id: I4b2259e12121cac5b8165f5c5dbacf9cb3a936a6
Diffstat (limited to 'camera2')
-rw-r--r--camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java32
-rw-r--r--camera2/portability/src/com/android/ex/camera2/portability/CameraManager.java3
2 files changed, 30 insertions, 5 deletions
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
index 9498094..5dc6270 100644
--- a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
+++ b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraManagerImpl.java
@@ -49,6 +49,7 @@ class AndroidCameraManagerImpl implements CameraManager {
private static final Log.Tag TAG = new Log.Tag("AndroidCamMgrImpl");
private static final long CAMERA_OPERATION_TIMEOUT_MS = 2500;
private static final long MAX_MESSAGE_QUEUE_LENGTH = 256;
+ private static final int MAX_HISTORY_SIZE = 400;
private Parameters mParameters;
private boolean mParametersIsDirty;
@@ -237,8 +238,11 @@ class AndroidCameraManagerImpl implements CameraManager {
* The handler on which the actual camera operations happen.
*/
private class CameraHandler extends Handler {
+
private Camera mCamera;
+ private LinkedList<Integer> mMsgHistory;
+
private class CaptureCallbacks {
public final ShutterCallback mShutter;
public final PictureCallback mRaw;
@@ -256,6 +260,20 @@ class AndroidCameraManagerImpl implements CameraManager {
CameraHandler(Looper looper) {
super(looper);
+ mMsgHistory = new LinkedList<Integer>();
+ // We add a -1 at the beginning to mark the very beginning of the
+ // history.
+ mMsgHistory.offerLast(-1);
+ }
+
+ private String generateHistoryString(int cameraId) {
+ String info = new String("HIST");
+ info += "_ID" + cameraId;
+ for (Integer msg : mMsgHistory) {
+ info = info + '_' + msg.toString();
+ }
+ info += "_HEND";
+ return info;
}
private void startFaceDetection() {
@@ -318,6 +336,10 @@ class AndroidCameraManagerImpl implements CameraManager {
*/
@Override
public void handleMessage(final Message msg) {
+ mMsgHistory.offerLast(msg.what);
+ while (mMsgHistory.size() > MAX_HISTORY_SIZE) {
+ mMsgHistory.pollFirst();
+ }
try {
switch (msg.what) {
case OPEN_CAMERA: {
@@ -344,7 +366,7 @@ class AndroidCameraManagerImpl implements CameraManager {
}
} else {
if (openCallback != null) {
- openCallback.onDeviceOpenFailure(cameraId);
+ openCallback.onDeviceOpenFailure(cameraId, generateHistoryString(cameraId));
}
}
break;
@@ -532,8 +554,10 @@ class AndroidCameraManagerImpl implements CameraManager {
} else {
if (mCamera == null) {
if (msg.what == OPEN_CAMERA) {
+ final int cameraId = msg.arg1;
if (msg.obj != null) {
- ((CameraOpenCallback) msg.obj).onDeviceOpenFailure(msg.arg1);
+ ((CameraOpenCallback) msg.obj).onDeviceOpenFailure(
+ msg.arg1, generateHistoryString(cameraId));
}
} else {
Log.w(TAG, "Cannot handle message " + msg.what + ", mCamera is null.");
@@ -1469,11 +1493,11 @@ class AndroidCameraManagerImpl implements CameraManager {
}
@Override
- public void onDeviceOpenFailure(final int cameraId) {
+ public void onDeviceOpenFailure(final int cameraId, final String info) {
mHandler.post(new Runnable() {
@Override
public void run() {
- mCallback.onDeviceOpenFailure(cameraId);
+ mCallback.onDeviceOpenFailure(cameraId, info);
}
});
}
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/CameraManager.java b/camera2/portability/src/com/android/ex/camera2/portability/CameraManager.java
index 27b1aab..6c80766 100644
--- a/camera2/portability/src/com/android/ex/camera2/portability/CameraManager.java
+++ b/camera2/portability/src/com/android/ex/camera2/portability/CameraManager.java
@@ -137,8 +137,9 @@ public interface CameraManager {
* caught.
*
* @param cameraId The camera with the hardware failure.
+ * @param info The extra info regarding this failure.
*/
- public void onDeviceOpenFailure(int cameraId);
+ public void onDeviceOpenFailure(int cameraId, String info);
/**
* Callback when trying to open the camera which is already opened.