int mm_app_open(uint8_t cam_id) { int rc = MM_CAMERA_OK; mm_camera_app_obj_t *pme = NULL; int i; mm_camera_event_type_t evt; pme = mm_app_get_cam_obj(cam_id); CDBG("%s:BEGIN\n", __func__); if(pme != NULL) { CDBG("%s:cam already open.nop\n",__func__); goto end; } my_cam_app.cam_open = cam_id; my_cam_app.obj[cam_id] = (mm_camera_app_obj_t *)malloc(sizeof(mm_camera_app_obj_t)); pme = my_cam_app.obj[cam_id]; pme->mem_cam = (mm_camear_mem_vtbl_t *)malloc(sizeof(mm_camear_mem_vtbl_t)); memset(pme->mem_cam,0,sizeof(mm_camear_mem_vtbl_t)); pme->mem_cam->user_data = pme; pme->cam = my_cam_app.hal_lib.mm_camera_open(cam_id,pme->mem_cam); if(pme->cam == NULL) { CDBG("%s:dev open error=%d\n", __func__, rc); memset(pme,0, sizeof(pme)); return -1; } CDBG("Open Camera id = %d handle = %d",cam_id,pme->cam->camera_handle); pme->ch_id = cam_id; pme->open_flag = true; mm_app_set_dim_def(&pme->dim); for (i = 0; i < MM_CAMERA_EVT_TYPE_MAX; i++) { evt = (mm_camera_event_type_t) i; pme->cam->ops->register_event_notify(pme->cam->camera_handle,notify_evt_cb,pme,evt); } pme->cam_state = CAMERA_STATE_OPEN; pme->cam_mode = CAMERA_MODE; pme->fullSizeSnapshot = 0; pme->ch_id = pme->cam->ops->ch_acquire(pme->cam->camera_handle); CDBG("Channel Acquired Successfully %d",pme->ch_id); end: CDBG("%s:END, rc=%d\n", __func__, rc); return rc; }
int mm_app_open(int8_t cam_id, mm_camera_op_mode_type_t op_mode) { int rc = MM_CAMERA_OK; mm_camera_app_obj_t *pme = mm_app_get_cam_obj(cam_id); CDBG("%s:BEGIN\n", __func__); if(pme->cam) { CDBG("%s:cam already open.nop\n",__func__); goto end; } pme->cam = &my_cam_app.cam[cam_id]; pme->my_id = cam_id; pme->op_mode = op_mode; if(MM_CAMERA_OK != (rc = pme->cam->ops->open(pme->cam, op_mode))) { CDBG("%s:dev open error=%d\n", __func__, rc); memset(pme,0, sizeof(*pme)); return -1; } pme->open_flag = TRUE; mm_app_set_dim_def(&pme->dim); end: CDBG("%s:END, rc=%d\n", __func__, rc); return rc; }