Exemplo n.º 1
0
 void WriteTuning(srlztn::OutStream& oStrm, const CTuning& t) {t.Serialize(oStrm);}
SCF_STATE CAM_SM::CAMERA_LoadingIQSettings_OpModeSetup(s_scf_event const *e) {
	switch (e->sig) {
		case SCF_STATE_ENTRY_SIG:
		{
			ENTRY;
#ifdef CAMERA_ENABLE_OMX_3A_EXTENSION
			// Don't need to reconfigure the ISP dampers
#else // CAMERA_ENABLE_OMX_3A_EXTENSION
			// Reconfigure the ISP dampers
			CTuning* pTuning = pOpModeMgr->GetOpModeTuning();
			t_isp_dampers_error_code dErr = ISP_DAMPERS_OK;
			dErr = pIspDampers->SetMappings(pTuning);
			if(dErr!=ISP_DAMPERS_OK) {
				DBGT_ERROR("Failed to set ISP dampers mappings: err=%d (%s)\n", dErr, CIspDampers::ErrorCode2String(dErr));
				OstTraceFiltStatic1(TRACE_ERROR, "Failed to set ISP dampers mappings: err=%d", (&mENSComponent), dErr);
				DBC_ASSERT(0);
				return 0;
			}
			dErr = pIspDampers->Configure( pTuning, IQSET_OPMODE_SETUP);

                     /*restoring damper configuration written during loaded state*/
                     Camera* Cam = (Camera*)&mENSComponent.getProcessingComponent();
                     for (t_uint8 i  = 0; i < 8; i++)
                     {
                            if (Cam->isDamperConfigReqd[i].bIndexToBeConfigured == OMX_TRUE)
                            {
                                   Cam->configureDamper(Cam->isDamperConfigReqd[i].nIndex);
                            }
                     }

			if(dErr!=ISP_DAMPERS_OK) {
				DBGT_ERROR("Failed to configure ISP dampers: err=%d (%s)\n", dErr, CIspDampers::ErrorCode2String(dErr));
				OstTraceFiltStatic1(TRACE_ERROR, "Failed to configure ISP dampers: err=%d", (&mENSComponent), dErr);
				DBC_ASSERT(0);
				return 0;
			}

			// Configure the Picture Settings
			t_picture_setting_error_code psErr = PICTURE_SETTING_OK;
			psErr = pPictureSettings->Configure(pTuning);
			if(psErr!=PICTURE_SETTING_OK) {
				DBGT_ERROR("Failed to configure Picture Settings: err=%d\n", psErr);
				OstTraceFiltStatic1(TRACE_ERROR, "Failed to configure Picture Settings: err=%d", (&mENSComponent), psErr);
				DBC_ASSERT(0);
				return 0;
			}
#endif // CAMERA_ENABLE_OMX_3A_EXTENSION

			pResourceSharerManager->mRSPing.Ping(0);
			return 0;
		}
		case Q_PONG_SIG:
		{
#ifdef CAMERA_ENABLE_OMX_3A_EXTENSION
			// Don't need to apply tuning data (it is come from upper layer)
			pIspctlCom->queuePE(DeviceParameters_u32_DeviceId_Byte0, 0);
#else // CAMERA_ENABLE_OMX_3A_EXTENSION
			// Fetch the Op Mode ISP settings
			CTuning* pTuning = pOpModeMgr->GetOpModeTuning();
			t_tuning_param peList[ISPCTL_SIZE_TAB_PE] = {{0,0,0}};
			t_tuning_error_code tErr = TUNING_OK;
			t_sint32 nbPe = ISPCTL_SIZE_TAB_PE;
			tErr = pTuning->GetParamList( IQSET_OPMODE_SETUP, IQSET_USER_ISP, peList, &nbPe);
			if(tErr != TUNING_OK) {
				DBGT_ERROR("CAMERA_LoadingIQSettings_OpModeSetup: failed to visit Op Mode tuning object: err=%d (%s)\n",tErr, CTuning::ErrorCode2String(tErr));
				OstTraceFiltStatic1(TRACE_ERROR, "CAMERA_LoadingIQSettings_OpModeSetup: failed to visit Op Mode tuning object: err=%d", (&mENSComponent),tErr);
				DBC_ASSERT(0);
				return 0;
			}
			// Apply the Op Mode ISP settings
			for (t_uint16 i=0;i<nbPe;i++) {
				pIspctlCom->queuePE((t_uint16)peList[i].addr, peList[i].value );
			}
#endif // CAMERA_ENABLE_OMX_3A_EXTENSION
			pIspctlCom->processQueue();
			return 0;
		}
		case SCF_STATE_EXIT_SIG:   EXIT; return 0;
		case EVT_ISPCTL_LIST_INFO_SIG:
		{
			MSG0("CAMERA_LoadingIQSettings_OpModeSetup-EVT_ISPCTL_LIST_INFO_SIG\n");
			OstTraceFiltStatic0(TRACE_DEBUG, "CAMERA_LoadingIQSettings_OpModeSetup-EVT_ISPCTL_LIST_INFO_SIG", (&mENSComponent));
			if (e->type.ispctlInfo.info_id != ISP_WRITELIST_DONE) break;
			SCF_TRANSIT_TO(&CAM_SM::CAMERA_LoadingIQSettings_ZoomPreRun);
			return 0;
		}
		default: break;
	}
	return SCF_STATE_PTR(&CAM_SM::CAMERA_LoadingIQSettings);
}
Exemplo n.º 3
0
	void WriteTuning(std::ostream& oStrm, const CTuning& t) {t.Serialize(oStrm);}