summaryrefslogtreecommitdiffstats
path: root/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java')
-rw-r--r--camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java55
1 files changed, 50 insertions, 5 deletions
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
index 0cd8ede..7388519 100644
--- a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
+++ b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCameraAgentImpl.java
@@ -48,6 +48,7 @@ class AndroidCameraAgentImpl implements CameraAgent {
private Parameters mParameters;
private boolean mParametersIsDirty;
+ private CameraDeviceInfo.Characteristics mCharacteristics;
private AndroidCameraCapabilities mCapabilities;
private final CameraHandler mCameraHandler;
@@ -140,8 +141,13 @@ class AndroidCameraAgentImpl implements CameraAgent {
}
@Override
- public Camera.CameraInfo[] getCameraInfos() {
- return mCameraInfos;
+ public Characteristics getCharacteristics(int cameraId) {
+ Camera.CameraInfo info = mCameraInfos[cameraId];
+ if (info != null) {
+ return new AndroidCharacteristics(info);
+ } else {
+ return null;
+ }
}
@Override
@@ -158,6 +164,34 @@ class AndroidCameraAgentImpl implements CameraAgent {
public int getFirstFrontCameraId() {
return mFirstFrontCameraId;
}
+
+ private static class AndroidCharacteristics implements Characteristics {
+ private Camera.CameraInfo mCameraInfo;
+
+ AndroidCharacteristics(Camera.CameraInfo cameraInfo) {
+ mCameraInfo = cameraInfo;
+ }
+
+ @Override
+ public boolean isFacingBack() {
+ return mCameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK;
+ }
+
+ @Override
+ public boolean isFacingFront() {
+ return mCameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT;
+ }
+
+ @Override
+ public int getSensorOrientation() {
+ return mCameraInfo.orientation;
+ }
+
+ @Override
+ public boolean canDisableShutterSound() {
+ return mCameraInfo.canDisableShutterSound;
+ }
+ }
}
/**
@@ -265,15 +299,17 @@ class AndroidCameraAgentImpl implements CameraAgent {
mCameraId = cameraId;
mParametersIsDirty = true;
- // Get a instance of Camera.Parameters for later use.
+ // Get an instance of Camera.Parameters for later use.
mParamsToSet = mCamera.getParameters();
+ mCharacteristics =
+ AndroidCameraDeviceInfo.create().getCharacteristics(cameraId);
mCapabilities = new AndroidCameraCapabilities(mParamsToSet);
mCameraState.setState(CameraStateHolder.CAMERA_IDLE);
if (openCallback != null) {
openCallback.onCameraOpened(
new AndroidCameraProxyImpl(cameraId, mCamera,
- mCapabilities));
+ mCharacteristics, mCapabilities));
}
} else {
if (openCallback != null) {
@@ -311,7 +347,8 @@ class AndroidCameraAgentImpl implements CameraAgent {
mCameraState.setState(CameraStateHolder.CAMERA_IDLE);
if (cbForward != null) {
cbForward.onCameraOpened(
- new AndroidCameraProxyImpl(cameraId, mCamera, mCapabilities));
+ new AndroidCameraProxyImpl(cameraId, mCamera, mCharacteristics,
+ mCapabilities));
}
break;
}
@@ -614,12 +651,15 @@ class AndroidCameraAgentImpl implements CameraAgent {
private final int mCameraId;
/* TODO: remove this Camera instance. */
private final Camera mCamera;
+ private final CameraDeviceInfo.Characteristics mCharacteristics;
private final AndroidCameraCapabilities mCapabilities;
private AndroidCameraProxyImpl(int cameraId, Camera camera,
+ CameraDeviceInfo.Characteristics characteristics,
AndroidCameraCapabilities capabilities) {
mCamera = camera;
mCameraId = cameraId;
+ mCharacteristics = characteristics;
mCapabilities = capabilities;
}
@@ -634,6 +674,11 @@ class AndroidCameraAgentImpl implements CameraAgent {
}
@Override
+ public CameraDeviceInfo.Characteristics getCharacteristics() {
+ return mCharacteristics;
+ }
+
+ @Override
public CameraCapabilities getCapabilities() {
return new AndroidCameraCapabilities(mCapabilities);
}