Example #1
0
int forceReadNoLock(CAMERA_DATA_TYPE_ENUM nvRamId, int sensorDev)
{
    int err;
    int u4SensorID;
    err = getSensorID((CAMERA_DUAL_CAMERA_SENSOR_ENUM)sensorDev, u4SensorID);
    if(err!=0)
        return err;
    void* buf;
    err = getMem(nvRamId, (CAMERA_DUAL_CAMERA_SENSOR_ENUM)sensorDev, buf);
    if(err!=0)
        return err;
    int nvSize;
    err = getNvSize(nvRamId, nvSize);
    if(err!=0)
        return err;
    NvramDrvBase* nvDrv;
    nvDrv = NvramDrvBase::createInstance();
    err  = nvDrv->readNvram (
            (CAMERA_DUAL_CAMERA_SENSOR_ENUM)sensorDev, u4SensorID, nvRamId,
            buf, nvSize    );
    nvDrv->destroyInstance();
    return err;
}
Example #2
0
MRESULT
NvramDrvMgrCtx::
uninit()
{
    if  ( m_pNvramDrv )
    {
        m_pNvramDrv->destroyInstance();
        m_pNvramDrv = NULL;
    }

    m_u4SensorID = 0;
    m_eSensorEnum = DUAL_CAMERA_NONE_SENSOR;

    return  S_NVRAM_OK;
}
int OemCamDrv::readOem(CAMERA_DUAL_CAMERA_SENSOR_ENUM a_eSensorType,
                          unsigned long u4SensorID,
                          CAMERA_DATA_TYPE_ENUM nvRamId,
	                      void *a_pNvramData,
	                      unsigned long a_u4NvramDataSize,
	                      int a_version)
{

    logI("readOem ln=%d sensorDev=%d id=%d",__LINE__, a_eSensorType, nvRamId);
    Mutex::Autolock _l(gLock);
    readCommonOem();
    if(gIsOemExist==0)
    {
        int err;
        NvramDrvBase* nvDrv;
    	nvDrv = NvramDrvBase::createInstance();
    	err  = nvDrv->readDefaultData (
    			(CAMERA_DUAL_CAMERA_SENSOR_ENUM)a_eSensorType, u4SensorID, nvRamId,
    			a_pNvramData	);
    	nvDrv->destroyInstance();
    	return 0;
    }
logI("readOem ln=%d",__LINE__);
    //=====================================
    if(nvRamId == CAMERA_OEM_COMMON)
    {
        memcpy(a_pNvramData, &gCamCommon, sizeof(OEM_CAMERA_COMMON));
        return 0;
    }
logI("readOem ln=%d",__LINE__);

    char fname[e_MaxPathSize+20];

    strcpy(fname, gOemItemDres[nvRamId].path);

    if(gOemItemDres[nvRamId].sensorDevRelation==e_SensorRelation)
    {
        if(a_eSensorType == DUAL_CAMERA_MAIN_SENSOR)
            strcat(fname, "_main");
        else if(a_eSensorType == DUAL_CAMERA_SUB_SENSOR)
            strcat(fname, "_sub");
        else //if(a_eSensorType == DUAL_CAMERA_MAIN2_SENSOR)
            strcat(fname, "_main2");

    }



    int id=0;
     getSensorID(a_eSensorType, id);

logI("readOem getSensorID ln=%d id=%d",__LINE__,id);


    if(gOemItemDres[nvRamId].componentRelation == e_SensorRelation)
    {
        if(a_eSensorType == DUAL_CAMERA_MAIN_SENSOR)
        {
            int i;
            int oemId=0;
            char s[20];
            for(i=0;i<10;i++)
            {
                if( id ==  gCamCommon.OemMainSensorId[i])
                {
                    oemId=i;
                    break;
                }
            }
            sprintf(s,"_%d",oemId);
            strcat(fname, s);
        }
        else if(a_eSensorType == DUAL_CAMERA_SUB_SENSOR)
        {
            int i;
            int oemId=0;
            char s[20];
            for(i=0;i<10;i++)
            {
                if( id ==  gCamCommon.OemSubSensorId[i])
                {
                    oemId=i;
                    break;
                }
            }
            sprintf(s,"_%d",oemId);
            strcat(fname, s);
        }
    }

logI("readOem ln=%d nvRamId=%d fname=%s",__LINE__,nvRamId, fname);

    FILE* fp;
    fp = fopen(fname, "rb");
    if(fp==0)
    {
        int err;
        NvramDrvBase* nvDrv;
    	nvDrv = NvramDrvBase::createInstance();
    	err  = nvDrv->readDefaultData (
    			(CAMERA_DUAL_CAMERA_SENSOR_ENUM)a_eSensorType, u4SensorID, nvRamId,
    			a_pNvramData	);
    	nvDrv->destroyInstance();
        return 0;
    }
logI("readOem ln=%d",__LINE__);

    fread(a_pNvramData, 1, a_u4NvramDataSize, fp);
    fclose(fp);
logI("readOem ln=%d",__LINE__);
    return 0;
}