From ddbdb35d176266b5ab64c30178f5cb76c5b1b4b4 Mon Sep 17 00:00:00 2001 From: Chih-Chung Chang Date: Thu, 10 Jun 2010 13:32:16 +0800 Subject: Change camera interface to support multiple cameras. Change-Id: Ie88fe706d2278acf762eca87780de349434778a4 --- include/camera/Camera.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'include/camera/Camera.h') diff --git a/include/camera/Camera.h b/include/camera/Camera.h index 1beac27..9974f2f 100644 --- a/include/camera/Camera.h +++ b/include/camera/Camera.h @@ -93,6 +93,32 @@ enum { CAMERA_ERROR_SERVER_DIED = 100 }; +enum { + CAMERA_FACING_BACK = 0, + CAMERA_FACING_FRONT = 1 /* The camera faces to the user */ +}; + +struct CameraInfo { + + /** + * The direction that the camera faces to. It should be + * CAMERA_FACING_BACK or CAMERA_FACING_FRONT. + */ + int facing; + + /** + * The orientation of the camera image. The value is the angle that the + * camera image needs to be rotated clockwise so it shows correctly on + * the display in its natural orientation. It should be 0, 90, 180, or 270. + * + * For example, suppose a device has a naturally tall screen, but the camera + * sensor is mounted in landscape. If the top side of the camera sensor is + * aligned with the right edge of the display in natural orientation, the + * value should be 90. + */ + int orientation; +}; + class ICameraService; class ICamera; class Surface; @@ -114,6 +140,8 @@ public: // construct a camera client from an existing remote static sp create(const sp& camera); static int32_t getNumberOfCameras(); + static status_t getCameraInfo(int cameraId, + struct CameraInfo* cameraInfo); static sp connect(int cameraId); ~Camera(); void init(); -- cgit v1.1