예제 #1
0
bool
MtkAtvCam1Device::
onUninit()
{
    MY_LOGD("+");
    //
    //--------------------------------------------------------------------------
    //  (1) Uninitialize Camera Adapter.
    if  ( mpCamAdapter != 0 )
    {
        mpCamAdapter->cancelPicture();
        mpCamAdapter->uninit();
        mpCamAdapter.clear();
    }
    //
    //--------------------------------------------------------------------------
    //  (2) Uninit Base
    Cam1DeviceBase::onUninit();
    //--------------------------------------------------------------------------
    //  (3) Cloase 3A
#if '1'==MTKCAM_HAVE_3A_HAL
    if  ( mp3AHal )
    {
        mp3AHal->destroyInstance();
        mp3AHal = NULL;
    }
#endif  //MTKCAM_HAVE_3A_HAL
    //--------------------------------------------------------------------------
    //  (4) Close Sensor
#if '1'==MTKCAM_HAVE_SENSOR_HAL
    if  ( mpSensorHal )
    {
        mpSensorHal->uninit();
        mpSensorHal->destroyInstance();
        mpSensorHal = NULL;
        MY_LOGD("SensorHal::destroyInstance()");
    }
#endif  //MTKCAM_HAVE_SENSOR_HAL
    //--------------------------------------------------------------------------

    IResManager* pResManager = IResManager::getInstance();
    //
    if  ( pResManager != NULL )
    {
        if(!(pResManager->close("MtkAtvCam1Device")))
        {
            MY_LOGE("pResManager->close fail");
        }
    }

    //
    MY_LOGD("-");
    return  true;
}
예제 #2
0
bool
StereoCam1Device::
onUninit()
{
    MY_LOGD("+");
    AutoCPTLog cptlog(Event_Hal_DefaultCamDevice_uninit);
    Utils::CamProfile  profile(__FUNCTION__, "StereoCam1Device");
    //
    if( !waitThreadInitDone() )
    {
        MY_LOGE("init in thread failed");
    }
    //--------------------------------------------------------------------------
    //  (1) Uninit Base
    {
        CAM_TRACE_NAME("uninit(base)");
        Cam1DeviceBase::onUninit();
        profile.print("Cam1DeviceBase::onUninit() -");
    }
    //--------------------------------------------------------------------------
    //  (2) Close 3A
#if '1'==MTKCAM_HAVE_3A_HAL
    {
        CAM_TRACE_NAME("uninit(3A)");
        CPTLogStr(Event_Hal_DefaultCamDevice_init, CPTFlagSeparator, "3A Hal +");
#ifdef MTK_NATIVE_3D_SUPPORT
        if  ( mpSync3AMgr )
        {
            mpSync3AMgr->uninit();
            mpSync3AMgr = NULL;
        }
#endif
        if  ( mpHal3a_Main )
        {
            mpHal3a_Main->destroyInstance(LOG_TAG);
            mpHal3a_Main = NULL;
        }
        if  ( mpHal3a_Main2 )
        {
            mpHal3a_Main2->destroyInstance(LOG_TAG);
            mpHal3a_Main2 = NULL;
        }
        profile.print("3A Hal -");
        CPTLogStr(Event_Hal_DefaultCamDevice_init, CPTFlagSeparator, "3A Hal -");
    }
#endif  //MTKCAM_HAVE_3A_HAL
    //--------------------------------------------------------------------------
    //  (4) Close Sensor
#if '1'==MTKCAM_HAVE_SENSOR_HAL
    {
        CAM_TRACE_NAME("uninit(sensor)");
        CPTLogStr(Event_Hal_DefaultCamDevice_init, CPTFlagSeparator, "Sensor Hal +");
        //
        if(mpHalSensor)
        {
            MUINT pIndex[2] = { (MUINT)getOpenId_Main(), (MUINT)getOpenId_Main2() };
            mpHalSensor->powerOff(USER_NAME, 2, pIndex);
            mpHalSensor->destroyInstance(USER_NAME);
            mpHalSensor = NULL;
        }
        MY_LOGD("SensorHal::destroyInstance()");
        profile.print("Sensor Hal -");
        CPTLogStr(Event_Hal_DefaultCamDevice_init, CPTFlagSeparator, "Sensor Hal -");
    }
#endif  //MTKCAM_HAVE_SENSOR_HAL
    //--------------------------------------------------------------------------
#if '1'==MTKCAM_HAVE_CAMDRV
    {
        CAM_TRACE_NAME("uninit(resource)");
        CPTLogStr(Event_Hal_DefaultCamDevice_init, CPTFlagSeparator, "Resource +");
    IResManager* pResManager = IResManager::getInstance();
    //
    if  ( pResManager != NULL )
    {
            if(!(pResManager->close(USER_NAME)))
        {
            MY_LOGE("pResManager->close fail");
        }
    }
        profile.print("Resource -");
        CPTLogStr(Event_Hal_DefaultCamDevice_init, CPTFlagSeparator, "Resource -");
    }
#endif  //MTKCAM_HAVE_CAMDRV
    //--------------------------------------------------------------------------
    //
    profile.print("");
    MY_LOGD("-");
    return  true;
}