From 9e626526453f91999bdf3de4c2ec8e55c5d90511 Mon Sep 17 00:00:00 2001 From: Iliyan Malchev Date: Thu, 14 Apr 2011 16:51:21 -0700 Subject: frameworks/base: include system/core header camera.h in Camera.h We define struct CameraInfo in this camera/Camera.h, even though an identical struct camera_info is defined in hardware/camera.h (but not in hardware/camera_defs.h). We may not export struct definitions from the HAL into headers which may find their way into the NDK. This commit also renames FRAME_CALLBACK_FLAG_xxx to CAMERA_FRAME_CALLBACK_xxx. Change-Id: I3e2ddd01d61bf5371ff2fc1a397995e0f1ee11f8 Signed-off-by: Iliyan Malchev --- include/camera/Camera.h | 108 ++++-------------------------------------------- 1 file changed, 7 insertions(+), 101 deletions(-) (limited to 'include/camera/Camera.h') diff --git a/include/camera/Camera.h b/include/camera/Camera.h index 3c6dccc..7106bfa 100644 --- a/include/camera/Camera.h +++ b/include/camera/Camera.h @@ -20,122 +20,28 @@ #include #include #include +#include namespace android { -/* - * A set of bit masks for specifying how the received preview frames are - * handled before the previewCallback() call. - * - * The least significant 3 bits of an "int" value are used for this purpose: - * - * ..... 0 0 0 - * ^ ^ ^ - * | | |---------> determine whether the callback is enabled or not - * | |-----------> determine whether the callback is one-shot or not - * |-------------> determine whether the frame is copied out or not - * - * WARNING: - * When a frame is sent directly without copying, it is the frame receiver's - * responsiblity to make sure that the frame data won't get corrupted by - * subsequent preview frames filled by the camera. This flag is recommended - * only when copying out data brings significant performance price and the - * handling/processing of the received frame data is always faster than - * the preview frame rate so that data corruption won't occur. - * - * For instance, - * 1. 0x00 disables the callback. In this case, copy out and one shot bits - * are ignored. - * 2. 0x01 enables a callback without copying out the received frames. A - * typical use case is the Camcorder application to avoid making costly - * frame copies. - * 3. 0x05 is enabling a callback with frame copied out repeatedly. A typical - * use case is the Camera application. - * 4. 0x07 is enabling a callback with frame copied out only once. A typical use - * case is the Barcode scanner application. - */ -#define FRAME_CALLBACK_FLAG_ENABLE_MASK 0x01 -#define FRAME_CALLBACK_FLAG_ONE_SHOT_MASK 0x02 -#define FRAME_CALLBACK_FLAG_COPY_OUT_MASK 0x04 - -// Typical use cases -#define FRAME_CALLBACK_FLAG_NOOP 0x00 -#define FRAME_CALLBACK_FLAG_CAMCORDER 0x01 -#define FRAME_CALLBACK_FLAG_CAMERA 0x05 -#define FRAME_CALLBACK_FLAG_BARCODE_SCANNER 0x07 - -// msgType in notifyCallback and dataCallback functions -enum { - CAMERA_MSG_ERROR = 0x0001, - CAMERA_MSG_SHUTTER = 0x0002, - CAMERA_MSG_FOCUS = 0x0004, - CAMERA_MSG_ZOOM = 0x0008, - CAMERA_MSG_PREVIEW_FRAME = 0x0010, - CAMERA_MSG_VIDEO_FRAME = 0x0020, - CAMERA_MSG_POSTVIEW_FRAME = 0x0040, - CAMERA_MSG_RAW_IMAGE = 0x0080, - CAMERA_MSG_COMPRESSED_IMAGE = 0x0100, - CAMERA_MSG_RAW_IMAGE_NOTIFY = 0x0200, - CAMERA_MSG_ALL_MSGS = 0xFFFF -}; - -// cmdType in sendCommand functions -enum { - CAMERA_CMD_START_SMOOTH_ZOOM = 1, - CAMERA_CMD_STOP_SMOOTH_ZOOM = 2, - // Set the clockwise rotation of preview display (setPreviewDisplay) in - // degrees. This affects the preview frames and the picture displayed after - // snapshot. This method is useful for portrait mode applications. Note that - // preview display of front-facing cameras is flipped horizontally before - // the rotation, that is, the image is reflected along the central vertical - // axis of the camera sensor. So the users can see themselves as looking - // into a mirror. - // - // This does not affect the order of byte array of CAMERA_MSG_PREVIEW_FRAME, - // CAMERA_MSG_VIDEO_FRAME, CAMERA_MSG_POSTVIEW_FRAME, CAMERA_MSG_RAW_IMAGE, - // or CAMERA_MSG_COMPRESSED_IMAGE. This is not allowed to be set during - // preview. - CAMERA_CMD_SET_DISPLAY_ORIENTATION = 3, - - // cmdType to disable/enable shutter sound. - // In sendCommand passing arg1 = 0 will disable, - // while passing arg1 = 1 will enable the shutter sound. - CAMERA_CMD_ENABLE_SHUTTER_SOUND = 4, - - // cmdType to play recording sound. - CAMERA_CMD_PLAY_RECORDING_SOUND = 5, -}; - -// camera fatal errors -enum { - CAMERA_ERROR_UNKNOWN = 1, - CAMERA_ERROR_SERVER_DIED = 100 -}; - -enum { - CAMERA_FACING_BACK = 0, /* The facing of the camera is opposite to that of the screen. */ - CAMERA_FACING_FRONT = 1 /* The facing of the camera is the same as that of the screen. */ -}; - struct CameraInfo { - /** - * The direction that the camera faces to. It should be - * CAMERA_FACING_BACK or CAMERA_FACING_FRONT. + * 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. + * 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. The * back-facing camera sensor is mounted in landscape. You are looking at * the screen. If the top side of the camera sensor is aligned with the * right edge of the screen in natural orientation, the value should be - * 90. If the top side of a front-facing camera sensor is aligned with - * the right of the screen, the value should be 270. + * 90. If the top side of a front-facing camera sensor is aligned with the + * right of the screen, the value should be 270. */ int orientation; }; -- cgit v1.1