void release(struct camera_device * device) { CDBG_HIGH("Q%s: E", __func__); QCamera2HardwareInterface *hardware = util_get_Hal_obj(device); if(hardware != NULL){ camera_hardware_t *camHal = (camera_hardware_t *)device->priv; hardware->release(device); camHal->camera_released = true; } }
extern "C" int close_camera_device( hw_device_t *hw_dev) { CDBG_HIGH("Q%s: device =%p E", __func__, hw_dev); int rc = -1; camera_device_t *device = (camera_device_t *)hw_dev; if(device) { camera_hardware_t *camHal = (camera_hardware_t *)device->priv; if(camHal ) { QCamera2HardwareInterface *hardware = util_get_Hal_obj( device); if(!camHal->camera_released) { if(hardware != NULL) { hardware->release(device); } } if(hardware != NULL) delete hardware; free(camHal); } rc = 0; } return rc; }