#include "ExynosExif.h"
#include "exynos_v4l2.h"
+#define ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1))
namespace android {
#define GAIA_FW_BETA 1
+/* FIXME: This is for test. We remove this after test */
+#define USE_DIGITAL_ZOOM
//! struct for Camera sensor information
/*!
int previewColorFormat;
int videoW;
int videoH;
- int prefVideoPreviewW;
- int prefVideoPreviewH;
int videoColorFormat;
int pictureW;
int pictureH;
ExynosCameraInfoS5K4E5();
};
+struct ExynosCameraInfoS5K3H7 : public ExynosCameraInfo
+{
+public:
+ ExynosCameraInfoS5K3H7();
+};
+
//! ExynosCamera
/*!
* \ingroup Exynos
FLASH_MODE_TORCH = (1 << 4), //!< \n
};
- //! Flash mode
+ //! Focus mode
enum {
FOCUS_MODE_AUTO = (1 << 0), //!< \n
FOCUS_MODE_INFINITY = (1 << 1), //!< \n
//! Gets the supported video frame sizes that can be used by MediaRecorder.
bool getSupportedVideoSizes(int *w, int *h);
- //! Gets the preferred Preview size for the video recording.
- bool getPreferredPreivewSizeForVideo(int *w, int *h);
-
//! Gets the supported white balance.
int getSupportedWhiteBalance(void);
//! Sets metering areas.(Using ExynosRect2)
bool setMeteringAreas(int num, ExynosRect2 *rect2s, int *weights);
+ //! Cancel metering areas.
+ bool cancelMeteringAreas();
+
//! Sets the image format for pictures.
bool setPictureFormat(int colorFormat);
devInfo m_gscVideoDev;
devInfo m_gscPictureDev;
+#ifdef USE_DIGITAL_ZOOM
+ devInfo m_gscBayerDev;
+ devInfo *m_bayerDev;
+#endif
+
devInfo *m_previewDev;
devInfo *m_videoDev;
devInfo *m_pictureDev;
char m_cameraName[32];
bool m_internalISP;
bool m_touchAFMode;
+ bool m_isTouchMetering;
+
+ bool m_focusIdle;
// media controller variable
struct media_device *m_media;
struct media_entity *m_ispSensorEntity;
struct media_entity *m_ispFrontEntity;
struct media_entity *m_ispBackEntity;
+ struct media_entity *m_ispBayerEntity;
struct media_entity *m_ispScalercEntity;
struct media_entity *m_ispScalerpEntity;
struct media_entity *m_isp3dnrEntity;
// Additional API.
///////////////////////////////////////////////////
public:
+ //! Focus mode
+ enum {
+ FOCUS_MODE_CONTINUOUS_PICTURE_MACRO = (1 << 8), //!< \n
+ };
+
//! Metering
enum {
METERING_MODE_AVERAGE = (1 << 0), //!< \n
FOCUS_MODE_FACEDETECT_DEFAULT,
FOCUS_MODE_INFINITY,
FOCUS_MODE_FIXED,
- FOCUS_MODE_CONTINOUS,
- FOCUS_MODE_CONTINOUS_PICTURE,
- FOCUS_MODE_CONTINOUS_VIDEO,
+ FOCUS_MODE_CONTINUOUS,
+ FOCUS_MODE_CONTINUOUS_PICTURE,
+ FOCUS_MODE_CONTINUOUS_PICTURE_MACRO,
+ FOCUS_MODE_CONTINUOUS_VIDEO,
FOCUS_MODE_TOUCH,
FOCUS_MODE_MAX,
FOCUS_MODE_DEFAULT = (1 << 8),
#define V4L2_CID_CAMERA_BUSFREQ_LOCK (V4L2_CID_PRIVATE_BASE+125)
#define V4L2_CID_CAMERA_BUSFREQ_UNLOCK (V4L2_CID_PRIVATE_BASE+126)
+#define V4L2_CID_CAMERA_FACE_ZOOM (V4L2_CID_PRIVATE_BASE + 132)
+enum v4l2_face_zoom {
+ FACE_ZOOM_STOP = 0,
+ FACE_ZOOM_START
+};
+
/* control for post processing block in ISP */
#define V4L2_CID_CAMERA_SET_ODC (V4L2_CID_PRIVATE_BASE+127)
enum set_odc_mode {