Home | History | Annotate | Download | only in libcamera
      1 #ifndef CAMERA_IFC_H
      2 #define CAMERA_IFC_H
      3 
      4 #define FEATURE_CAMERA_V7
      5 #define FEATURE_NATIVELINUX
      6 #define FEATURE_CAMERA_ENCODE_PROPERTIES
      7 
      8 typedef enum {
      9     QDSP_MODULE_KERNEL,
     10     QDSP_MODULE_AFETASK,
     11     QDSP_MODULE_AUDPLAY0TASK,
     12     QDSP_MODULE_AUDPLAY1TASK,
     13     QDSP_MODULE_AUDPPTASK,
     14     QDSP_MODULE_VIDEOTASK,
     15     QDSP_MODULE_VIDEO_AAC_VOC,
     16     QDSP_MODULE_PCM_DEC,
     17     QDSP_MODULE_AUDIO_DEC_MP3,
     18     QDSP_MODULE_AUDIO_DEC_AAC,
     19     QDSP_MODULE_AUDIO_DEC_WMA,
     20     QDSP_MODULE_HOSTPCM,
     21     QDSP_MODULE_DTMF,
     22     QDSP_MODULE_AUDRECTASK,
     23     QDSP_MODULE_AUDPREPROCTASK,
     24     QDSP_MODULE_SBC_ENC,
     25     QDSP_MODULE_VOC,
     26     QDSP_MODULE_VOC_PCM,
     27     QDSP_MODULE_VOCENCTASK,
     28     QDSP_MODULE_VOCDECTASK,
     29     QDSP_MODULE_VOICEPROCTASK,
     30     QDSP_MODULE_VIDEOENCTASK,
     31     QDSP_MODULE_VFETASK,
     32     QDSP_MODULE_WAV_ENC,
     33     QDSP_MODULE_AACLC_ENC,
     34     QDSP_MODULE_VIDEO_AMR,
     35     QDSP_MODULE_VOC_AMR,
     36     QDSP_MODULE_VOC_EVRC,
     37     QDSP_MODULE_VOC_13K,
     38     QDSP_MODULE_VOC_FGV,
     39     QDSP_MODULE_DIAGTASK,
     40     QDSP_MODULE_JPEGTASK,
     41     QDSP_MODULE_LPMTASK,
     42     QDSP_MODULE_QCAMTASK,
     43     QDSP_MODULE_MODMATHTASK,
     44     QDSP_MODULE_AUDPLAY2TASK,
     45     QDSP_MODULE_AUDPLAY3TASK,
     46     QDSP_MODULE_AUDPLAY4TASK,
     47     QDSP_MODULE_GRAPHICSTASK,
     48     QDSP_MODULE_MIDI,
     49     QDSP_MODULE_GAUDIO,
     50     QDSP_MODULE_VDEC_LP_MODE,
     51     QDSP_MODULE_MAX,
     52 
     53     /* DO NOT USE: Force this enum to be a 32bit type to improve speed */
     54     QDSP_MODULE_32BIT_DUMMY = 0x10000
     55 } qdsp_module_type;
     56 
     57 typedef enum
     58 {
     59     CAMERA_SUCCESS = 0,
     60     CAMERA_INVALID_STATE,
     61     CAMERA_INVALID_PARM,
     62     CAMERA_INVALID_FORMAT,
     63     CAMERA_NO_SENSOR,
     64     CAMERA_NO_MEMORY,
     65     CAMERA_NOT_SUPPORTED,
     66     CAMERA_FAILED,
     67     CAMERA_INVALID_STAND_ALONE_FORMAT,
     68     CAMERA_MALLOC_FAILED_STAND_ALONE,
     69     CAMERA_RET_CODE_MAX
     70 } camera_ret_code_type;
     71 
     72 typedef enum
     73 {
     74     /* YCbCr, each pixel is two bytes. Two pixels form a unit.
     75      * MSB is Y, LSB is CB for the first pixel and CR for the second pixel. */
     76     CAMERA_YCBCR,
     77 #ifdef FEATURE_CAMERA_V7
     78     CAMERA_YCBCR_4_2_0,
     79     CAMERA_YCBCR_4_2_2,
     80     CAMERA_H1V1,
     81     CAMERA_H2V1,
     82     CAMERA_H1V2,
     83     CAMERA_H2V2,
     84     CAMERA_BAYER_8BIT,
     85     CAMERA_BAYER_10BIT,
     86 #endif /* FEATURE_CAMERA_V7 */
     87     /* RGB565, each pixel is two bytes.
     88      * MS 5-bit is red, the next 6-bit is green. LS 5-bit is blue. */
     89     CAMERA_RGB565,
     90     /* RGB666, each pixel is four bytes.
     91      * MS 14 bits are zeros, the next 6-bit is red, then 6-bit of green.
     92      * LS 5-bit is blue. */
     93     CAMERA_RGB666,
     94     /* RGB444, each pixel is 2 bytes. The MS 4 bits are zeros, the next
     95      * 4 bits are red, the next 4 bits are green. The LS 4 bits are blue. */
     96     CAMERA_RGB444,
     97     /* Bayer, each pixel is 1 bytes. 2x2 pixels form a unit.
     98      * First line: first byte is blue, second byte is green.
     99      * Second line: first byte is green, second byte is red. */
    100     CAMERA_BAYER_BGGR,
    101     /* Bayer, each pixel is 1 bytes. 2x2 pixels form a unit.
    102      * First line: first byte is green, second byte is blue.
    103      * Second line: first byte is red, second byte is green. */
    104     CAMERA_BAYER_GBRG,
    105     /* Bayer, each pixel is 1 bytes. 2x2 pixels form a unit.
    106      * First line: first byte is green, second byte is red.
    107      * Second line: first byte is blue, second byte is green. */
    108     CAMERA_BAYER_GRBG,
    109     /* Bayer, each pixel is 1 bytes. 2x2 pixels form a unit.
    110      * First line: first byte is red, second byte is green.
    111      * Second line: first byte is green, second byte is blue. */
    112     CAMERA_BAYER_RGGB,
    113     /* RGB888, each pixel is 3 bytes. R is 8 bits, G is 8 bits,
    114      * B is 8 bits*/
    115     CAMERA_RGB888
    116 } camera_format_type;
    117 
    118 typedef struct
    119 {
    120     /* Format of the frame */
    121     camera_format_type format;
    122 
    123     /* For pre-V7, Width and height of the picture.
    124      * For V7:
    125      *   Snapshot:     thumbnail dimension
    126      *   Raw Snapshot: not applicable
    127      *   Preview:      not applicable
    128      */
    129     uint16_t dx;
    130     uint16_t dy;
    131     /* For pre_V7: For BAYER format, RAW data before scaling.
    132      * For V7:
    133      *   Snapshot:     Main image dimension
    134      *   Raw snapshot: raw image dimension
    135      *   Preview:      preview image dimension
    136      */
    137     uint16_t captured_dx;
    138     uint16_t captured_dy;
    139     /* it indicates the degree of clockwise rotation that should be
    140      * applied to obtain the exact view of the captured image. */
    141     uint16_t rotation;
    142 
    143 #ifdef FEATURE_CAMERA_V7
    144     /* Preview:      not applicable
    145      * Raw shapshot: not applicable
    146      * Snapshot:     thumbnail image buffer
    147      */
    148     uint8_t *thumbnail_image;
    149 #endif /* FEATURE_CAMERA_V7 */
    150 
    151     /* For pre-V7:
    152      *   Image buffer ptr
    153      * For V7:
    154      *   Preview: preview image buffer ptr
    155      *   Raw snapshot: Raw image buffer ptr
    156      *   Shapshot:     Main image buffer ptr
    157      */
    158     uint8_t  *buffer;
    159 
    160 #ifdef FEATURE_NATIVELINUX
    161     uint8_t   *Y_Addr;
    162     uint8_t   *CbCr_Addr;
    163     uint32_t *buf_Virt_Addr;
    164     uint32_t header_size;
    165 
    166     /*
    167      * For JPEG encoding
    168      */
    169     uint32_t buffer_phy_addr;
    170     uint32_t thumbnail_phy_addr;
    171 
    172     uint32_t pmem_id;
    173 #endif
    174 } camera_frame_type;
    175 
    176 typedef enum
    177 {
    178     CAMERA_DEVICE_MEM,
    179     CAMERA_DEVICE_EFS,
    180     CAMERA_DEVICE_MAX
    181 } camera_device_type;
    182 
    183 typedef enum
    184 {
    185     CAMERA_RAW,
    186     CAMERA_JPEG,
    187     CAMERA_PNG,
    188     CAMERA_YCBCR_ENCODE,
    189     CAMERA_ENCODE_TYPE_MAX
    190 } camera_encode_type;
    191 
    192 typedef struct {
    193     uint32_t  buf_len;/* Length of each buffer */
    194     uint32_t  used_len;
    195     uint8_t   *buffer;
    196 } camera_encode_mem_type;
    197 
    198 #define MAX_JPEG_ENCODE_BUF_NUM 1
    199 #define MAX_JPEG_ENCODE_BUF_LEN (1024*16)
    200 
    201 typedef struct {
    202     camera_device_type     device;
    203 #ifndef FEATURE_CAMERA_ENCODE_PROPERTIES
    204     int32_t                quality;
    205     camera_encode_type     format;
    206 #endif /* nFEATURE_CAMERA_ENCODE_PROPERTIES */
    207     int32_t                encBuf_num;
    208     camera_encode_mem_type encBuf[MAX_JPEG_ENCODE_BUF_NUM];
    209 } camera_handle_mem_type;
    210 
    211 typedef union
    212 {
    213     camera_device_type      device;
    214     camera_handle_mem_type  mem;
    215 } camera_handle_type;
    216 
    217 typedef enum
    218 {
    219     CAMERA_RSP_CB_SUCCESS,    /* Function is accepted         */
    220     CAMERA_EXIT_CB_DONE,      /* Function is executed         */
    221     CAMERA_EXIT_CB_FAILED,    /* Execution failed or rejected */
    222     CAMERA_EXIT_CB_DSP_IDLE,  /* DSP is in idle state         */
    223     CAMERA_EXIT_CB_DSP_ABORT, /* Abort due to DSP failure     */
    224     CAMERA_EXIT_CB_ABORT,     /* Function aborted             */
    225     CAMERA_EXIT_CB_ERROR,     /* Failed due to resource       */
    226     CAMERA_EVT_CB_FRAME,      /* Preview or video frame ready */
    227     CAMERA_EVT_CB_PICTURE,    /* Picture frame ready for multi-shot */
    228     CAMERA_STATUS_CB,         /* Status updated               */
    229     CAMERA_EXIT_CB_FILE_SIZE_EXCEEDED, /* Specified file size not achieved,
    230                                           encoded file written & returned anyway */
    231     CAMERA_EXIT_CB_BUFFER,    /* A buffer is returned         */
    232     CAMERA_EVT_CB_SNAPSHOT_DONE,/*  Snapshot updated               */
    233     CAMERA_CB_MAX
    234 } camera_cb_type;
    235 
    236 typedef enum
    237 {
    238     CAMERA_FUNC_START,
    239     CAMERA_FUNC_STOP,
    240     CAMERA_FUNC_SET_DIMENSIONS,
    241     CAMERA_FUNC_START_PREVIEW,
    242     CAMERA_FUNC_TAKE_PICTURE,
    243     CAMERA_FUNC_ENCODE_PICTURE,
    244     CAMERA_FUNC_COLOR_CONVERT,
    245     CAMERA_FUNC_START_RECORD,
    246     CAMERA_FUNC_START_FOCUS,
    247     CAMERA_FUNC_SET_OVERLAY,
    248     CAMERA_FUNC_CLR_OVERLAY,
    249     CAMERA_FUNC_SET_ICON_ARRAY,
    250     CAMERA_FUNC_CLR_ICON_ARRAY,
    251     CAMERA_FUNC_SET_POSITION,
    252     CAMERA_FUNC_SET_EXIF_TAG,
    253     CAMERA_FUNC_SET_PARM,
    254 #ifdef FEATURE_QVPHONE
    255     CAMERA_FUNC_ENABLE_QVP,
    256     CAMERA_FUNC_DISABLE_QVP,
    257     CAMERA_FUNC_START_QVP_ENCODE,
    258     CAMERA_FUNC_STOP_QVP_ENCODE,
    259     CAMERA_FUNC_QVP_RESET,
    260 #endif /* FEATURE_QVPHONE */
    261     CAMERA_FUNC_RELEASE_ENCODE_BUFFER,
    262     CAMERA_FUNC_MAX,
    263 
    264     /*==========================================================================
    265      * The followings are for internal use only
    266      ==========================================================================*/
    267 #ifdef FEATURE_CAMERA_MULTI_SENSOR
    268     CAMERA_FUNC_SELECT_SENSOR,
    269 #endif /* FEATURE_CAMERA_MULTI_SENSOR */
    270     CAMERA_FUNC_STOP_PREVIEW,
    271     CAMERA_FUNC_RELEASE_PICTURE,
    272     CAMERA_FUNC_PAUSE_RECORD,
    273     CAMERA_FUNC_RESUME_RECORD,
    274     CAMERA_FUNC_STOP_RECORD,
    275     CAMERA_FUNC_STOP_FOCUS,
    276     CAMERA_FUNC_ENABLE_FRAME_CALLBACK,
    277     CAMERA_FUNC_DISABLE_FRAME_CALLBACK,
    278     CAMERA_FUNC_RELEASE_FRAME,
    279 #ifdef FEATURE_VIDEO_ENCODE
    280     CAMERA_FUNC_VIDEO_ENGINE_CB,
    281     CAMERA_FUNC_VIDEO_HANDSHAKE,
    282 #endif /* FEATURE_VIDEO_ENCODE */
    283     CAMERA_FUNC_BLT,
    284     CAMERA_FUNC_GET_INFO,
    285     CAMERA_FUNC_GET_PARM,
    286     CAMERA_FUNC_SET_REFLECT,
    287 #ifdef FEATURE_CAMERA_V7
    288     CAMERA_FUNC_INIT_RECORD,
    289     CAMERA_FUNC_OFFLINE_SNAPSHOT,
    290 #endif /* FEATURE_CAMERA_V7 */
    291     CAMERA_FUNC_TAKE_MULTIPLE_PICTURES,
    292     CAMERA_FUNC_PRVW_HISTOGRAM,
    293     CAMERA_FUNC_SET_ZOOM,
    294     CAMERA_FUNC_MAX1,
    295 
    296 } camera_func_type;
    297 
    298 typedef void (*camera_cb_f_type)(camera_cb_type cb,
    299                                  const void *client_data,
    300                                  camera_func_type func,
    301                                  int32_t parm4);
    302 
    303 typedef struct {
    304     int32_t                  quality;
    305     camera_encode_type     format;
    306     int32_t                  file_size;
    307 } camera_encode_properties_type;
    308 
    309 typedef enum
    310 {
    311     /* read only operation states: camera_state_type */
    312     CAMERA_PARM_STATE,
    313     /* read only active command in execution: camera_func_type */
    314     CAMERA_PARM_ACTIVE_CMD,
    315     /* zoom */
    316     CAMERA_PARM_ZOOM,
    317     /* This affects only when encoding. It has to be set only in
    318      * preview mode */
    319     CAMERA_PARM_ENCODE_ROTATION, /* 0, 90, 180, 270 degrees */
    320     /* Sensor can be rotated from forward direction to reversed direction or
    321      * vise versa. When in normal position, line 1 is on the top. When in
    322      * reverse position, line 1 is now at the bottom, not on the top, so the image
    323      * need to be reversed, 0 = normal, 1 = reverse */
    324     CAMERA_PARM_SENSOR_POSITION, /* use camera_sp_type */
    325     /* contrast */
    326     CAMERA_PARM_CONTRAST,
    327     /* brightness */
    328     CAMERA_PARM_BRIGHTNESS,
    329     /* sharpness */
    330     CAMERA_PARM_SHARPNESS,
    331     CAMERA_PARM_EXPOSURE,        /* use camera_exposure_type */
    332     CAMERA_PARM_WB,              /* use camera_wb_type */
    333     CAMERA_PARM_EFFECT,          /* use camera_effect_type */
    334     CAMERA_PARM_AUDIO_FMT,       /* use video_fmt_stream_audio_type */
    335     CAMERA_PARM_FPS,             /* frames per second, unsigned integer number */
    336     CAMERA_PARM_FLASH,           /* Flash control, see camera_flash_type */
    337     CAMERA_PARM_RED_EYE_REDUCTION, /* boolean */
    338     CAMERA_PARM_NIGHTSHOT_MODE,  /* Night shot mode, snapshot at reduced FPS */
    339     CAMERA_PARM_REFLECT,         /* Use camera_reflect_type */
    340     CAMERA_PARM_PREVIEW_MODE,    /* Use camera_preview_mode_type */
    341     CAMERA_PARM_ANTIBANDING,     /* Use camera_anti_banding_type */
    342 ///  CAMERA_PARM_THUMBNAIL_WIDTH, /* Width of thumbnail */
    343 ///  CAMERA_PARM_THUMBNAIL_HEIGHT, /* Height of thumbnail */
    344 ///  CAMERA_PARM_THUMBNAIL_QUALITY, /* Quality of thumbnail */
    345     CAMERA_PARM_FOCUS_STEP,
    346     CAMERA_PARM_FOCUS_RECT, /* Suresh Gara & Saikumar*/
    347     CAMERA_PARM_AF_MODE,
    348 #ifdef FEATURE_CAMERA_V7
    349     /* Name change to CAMERA_PARM_EXPOSURE_METERING, remove this later */
    350     CAMERA_PARM_AUTO_EXPOSURE_MODE, /* Use camera_auto_exposure_mode_type */
    351 #endif /* FEATURE_CAMERA_V7 */
    352 #ifdef FEATURE_CAMERA_INCALL
    353     CAMERA_PARM_INCALL,          /* In call and vocoder type */
    354 #endif /* FEATURE_CAMERA_INCALL */
    355 #ifdef FEATURE_VIDEO_ENCODE_FADING
    356     CAMERA_PARM_FADING,
    357 #endif /* FEATURE_VIDEO_ENCODE_FADING */
    358     CAMERA_PARM_ISO,
    359 #ifdef FEATURE_CAMERA_V7
    360     /* Use to control the exposure compensation */
    361     CAMERA_PARM_EXPOSURE_COMPENSATION,
    362     CAMERA_PARM_PREVIEW_FPS,
    363     CAMERA_PARM_EXPOSURE_METERING,
    364     CAMERA_PARM_APERTURE,
    365     CAMERA_PARM_SHUTTER_SPEED,
    366     CAMERA_PARM_FLASH_STATE,
    367 #endif /* FEATURE_CAMERA_V7 */
    368     CAMERA_PARM_HUE,
    369     CAMERA_PARM_SATURATION,
    370     CAMERA_PARM_LUMA_ADAPTATION,
    371 #ifdef FEATURE_VIDENC_TRANSITION_EFFECTS
    372     CAMERA_PARM_TRANSITION,
    373     CAMERA_PARM_TRANSITION_ALPHA,
    374     CAMERA_PARM_TRANSITION_CURTAIN,
    375     CAMERA_PARM_TRANSITION_OFF,
    376 #endif /* FEATURE_VIDENC_TRANSITION_EFFECTS */
    377 #ifdef FEATURE_CAMERA_V770
    378     CAMERA_PARM_FRAME_TIMESTAMP,
    379     CAMERA_PARM_STROBE_FLASH,
    380 #endif //FEATURE_CAMERA_V770
    381     CAMERA_PARM_HISTOGRAM,
    382 #ifdef FEATURE_CAMERA_BESTSHOT_MODE
    383     CAMERA_PARM_BESTSHOT_MODE,
    384 #endif /* FEATURE_CAMERA_BESTSHOT_MODE */
    385 #ifdef FEATURE_VIDEO_ENCODE
    386     CAMERA_PARM_SPACE_LIMIT,
    387 #ifdef FEATURE_CAMCORDER_DIS
    388     CAMERA_PARM_DIS,
    389 #endif /* FEATURE_CAMCORDER_DIS */
    390 #endif
    391 #ifdef FEATURE_CAMERA_V7
    392     CAMERA_PARM_FPS_LIST,
    393 #endif
    394   CAMERA_PARM_MAX
    395 } camera_parm_type;
    396 
    397 typedef struct
    398 {
    399     uint32_t timestamp;  /* seconds since 1/6/1980          */
    400     double   latitude;   /* degrees, WGS ellipsoid */
    401     double   longitude;  /* degrees                */
    402     int16_t  altitude;   /* meters                          */
    403 } camera_position_type;
    404 
    405 typedef enum
    406 {
    407     CAMERA_AUTO_FOCUS,
    408   CAMERA_MANUAL_FOCUS
    409 } camera_focus_e_type;
    410 
    411 typedef enum
    412 {
    413     JPEGENC_DSP_FAIL,
    414     JPEGENC_DSP_SUCCESS,
    415     JPEGENC_DSP_BAD_CMD,
    416     JPEGENC_IMG_DONE,
    417     JPEGENC_IMG_ABORT,
    418     JPEGENC_IMG_FAIL,
    419     JPEGENC_FILE_SIZE_FAIL,
    420     JPEGENC_FILLED_BUFFER
    421 } JPEGENC_msgType;
    422 
    423 typedef enum
    424 {
    425 #ifdef FEATURE_EFS
    426     JPEGENC_EFS,
    427 #endif /* FEATURE_EFS */
    428     JPEGENC_MEM
    429 } JPEGENC_outputType;
    430 
    431 typedef struct
    432 {
    433     int32_t               clientId;
    434     /* Client ID */
    435     JPEGENC_msgType     status;
    436     uint32_t             dcBitCnt;
    437     /* bit count for DC, used by filesize control */
    438     uint32_t              header_size;
    439     /* Actual size of JPEG header */
    440     JPEGENC_outputType  mode;
    441     /*camera_encode_mem_type*/ void *outPtr;
    442     /* These two are valid only when    */
    443     uint32_t              size;
    444     /*  output mode is JPEGENC_MEM      */
    445 } JPEGENC_CBrtnType;
    446 
    447 /* White balancing type, used for CAMERA_PARM_WHITE_BALANCING */
    448 typedef enum
    449 {
    450     CAMERA_WB_MIN_MINUS_1,
    451     CAMERA_WB_AUTO = 1,  /* This list must match aeecamera.h */
    452     CAMERA_WB_CUSTOM,
    453     CAMERA_WB_INCANDESCENT,
    454     CAMERA_WB_FLUORESCENT,
    455     CAMERA_WB_DAYLIGHT,
    456     CAMERA_WB_CLOUDY_DAYLIGHT,
    457     CAMERA_WB_TWILIGHT,
    458     CAMERA_WB_SHADE,
    459     CAMERA_WB_MAX_PLUS_1
    460 } camera_wb_type;
    461 
    462 
    463 /* Effect type, used for CAMERA_PARM_EFFECT */
    464 typedef enum
    465 {
    466     CAMERA_EFFECT_MIN_MINUS_1,
    467     CAMERA_EFFECT_OFF = 1,  /* This list must match aeecamera.h */
    468     CAMERA_EFFECT_MONO,
    469     CAMERA_EFFECT_NEGATIVE,
    470     CAMERA_EFFECT_SOLARIZE,
    471     CAMERA_EFFECT_PASTEL,
    472     CAMERA_EFFECT_MOSAIC,
    473     CAMERA_EFFECT_RESIZE,
    474     CAMERA_EFFECT_SEPIA,
    475     CAMERA_EFFECT_POSTERIZE,
    476     CAMERA_EFFECT_WHITEBOARD,
    477     CAMERA_EFFECT_BLACKBOARD,
    478     CAMERA_EFFECT_AQUA,
    479     CAMERA_EFFECT_MAX_PLUS_1
    480 } camera_effect_type;
    481 
    482 /* Brightness type, used for CAMERA_PARM_BRIGHTNESS */
    483 typedef enum
    484 {
    485     CAMERA_BRIGHTNESS_MIN = 0,
    486     CAMERA_BRIGHTNESS_0 = 0,
    487     CAMERA_BRIGHTNESS_1 = 1,
    488     CAMERA_BRIGHTNESS_2 = 2,
    489     CAMERA_BRIGHTNESS_3 = 3,
    490     CAMERA_BRIGHTNESS_4 = 4,
    491     CAMERA_BRIGHTNESS_5 = 5,
    492     CAMERA_BRIGHTNESS_DEFAULT = 5,
    493     CAMERA_BRIGHTNESS_6 = 6,
    494     CAMERA_BRIGHTNESS_7 = 7,
    495     CAMERA_BRIGHTNESS_8 = 8,
    496     CAMERA_BRIGHTNESS_9 = 9,
    497     CAMERA_BRIGHTNESS_10 = 10,
    498     CAMERA_BRIGHTNESS_MAX = 10
    499 } camera_brightness_type;
    500 
    501 typedef enum
    502 {
    503     CAMERA_ANTIBANDING_OFF,
    504     CAMERA_ANTIBANDING_60HZ,
    505     CAMERA_ANTIBANDING_50HZ,
    506     CAMERA_ANTIBANDING_AUTO,
    507     CAMERA_MAX_ANTIBANDING,
    508 } camera_antibanding_type;
    509 
    510 /* Enum Type for different ISO Mode supported */
    511 typedef enum
    512 {
    513   CAMERA_ISO_AUTO = 0,
    514   CAMERA_ISO_HIGH,
    515   CAMERA_ISO_DEBLUR,
    516   CAMERA_ISO_100,
    517   CAMERA_ISO_200,
    518   CAMERA_ISO_400,
    519   CAMERA_ISO_800,
    520   CAMERA_ISO_MAX
    521 } camera_iso_mode_type;
    522 
    523 typedef enum
    524 {
    525     CAMERA_PREVIEW_MODE_SNAPSHOT,
    526     CAMERA_PREVIEW_MODE_MOVIE,
    527     CAMERA_MAX_PREVIEW_MODE
    528 } camera_preview_mode_type;
    529 
    530 
    531 typedef enum
    532 {
    533     CAMERA_ERROR_NO_MEMORY,
    534     CAMERA_ERROR_EFS_FAIL,                /* Low-level operation failed */
    535     CAMERA_ERROR_EFS_FILE_OPEN,           /* File already opened */
    536     CAMERA_ERROR_EFS_FILE_NOT_OPEN,       /* File not opened */
    537     CAMERA_ERROR_EFS_FILE_ALREADY_EXISTS, /* File already exists */
    538     CAMERA_ERROR_EFS_NONEXISTENT_DIR,     /* User directory doesn't exist */
    539     CAMERA_ERROR_EFS_NONEXISTENT_FILE,    /* User directory doesn't exist */
    540     CAMERA_ERROR_EFS_BAD_FILE_NAME,       /* Client specified invalid file/directory name*/
    541     CAMERA_ERROR_EFS_BAD_FILE_HANDLE,     /* Client specified invalid file/directory name*/
    542     CAMERA_ERROR_EFS_SPACE_EXHAUSTED,     /* Out of file system space */
    543     CAMERA_ERROR_EFS_OPEN_TABLE_FULL,     /* Out of open-file table slots                */
    544     CAMERA_ERROR_EFS_OTHER_ERROR,         /* Other error                                 */
    545     CAMERA_ERROR_CONFIG,
    546     CAMERA_ERROR_EXIF_ENCODE,
    547     CAMERA_ERROR_VIDEO_ENGINE,
    548     CAMERA_ERROR_IPL,
    549     CAMERA_ERROR_INVALID_FORMAT,
    550     CAMERA_ERROR_MAX
    551 } camera_error_type;
    552 
    553 #endif//CAMERA_IFC_H
    554