Пример #1
0
OMX_ERRORTYPE VideoSource::SetConfig(
        OMX_INDEXTYPE nParamIndex,
        OMX_PTR pStructure)
{
    OMX_ERRORTYPE ret = OMX_ErrorNone;

    switch ((int)nParamIndex) {
		case OMX_IndexConfigCommonWhiteBalance:
			{
				OMX_CONFIG_WHITEBALCONTROLTYPE *pWhiteBalControl;
				pWhiteBalControl = (OMX_CONFIG_WHITEBALCONTROLTYPE*)pStructure;
				OMX_CHECK_STRUCT(pWhiteBalControl, OMX_CONFIG_WHITEBALCONTROLTYPE, ret);
				fsl_osal_memcpy(&WhiteBalControl, pWhiteBalControl, sizeof(OMX_CONFIG_WHITEBALCONTROLTYPE));
				SetWhiteBalance();
			}
            break;
        case OMX_IndexConfigCommonDigitalZoom:
             {
                OMX_CONFIG_SCALEFACTORTYPE *pScaleFactor;
                pScaleFactor = (OMX_CONFIG_SCALEFACTORTYPE*)pStructure;
                OMX_CHECK_STRUCT(pScaleFactor, OMX_CONFIG_SCALEFACTORTYPE, ret);
				fsl_osal_memcpy(&ScaleFactor, pScaleFactor, sizeof(OMX_CONFIG_SCALEFACTORTYPE));
				SetDigitalZoom();
            }
            break;
        case OMX_IndexConfigCommonExposureValue:
             {
                OMX_CONFIG_EXPOSUREVALUETYPE *pExposureValue;
                pExposureValue = (OMX_CONFIG_EXPOSUREVALUETYPE*)pStructure;
                OMX_CHECK_STRUCT(pExposureValue, OMX_CONFIG_EXPOSUREVALUETYPE, ret);
				fsl_osal_memcpy(&ExposureValue, pExposureValue, sizeof(OMX_CONFIG_EXPOSUREVALUETYPE));
				SetExposureValue();
            }
            break;
        case OMX_IndexConfigCapturing:
             {
                OMX_CONFIG_BOOLEANTYPE *pCapturing;
				OMX_TIME_CONFIG_TIMESTAMPTYPE StartTime;
				OMX_INIT_STRUCT(&StartTime, OMX_TIME_CONFIG_TIMESTAMPTYPE);
				StartTime.nTimestamp = 0;

				pCapturing = (OMX_CONFIG_BOOLEANTYPE*)pStructure;
				OMX_CHECK_STRUCT(pCapturing, OMX_CONFIG_BOOLEANTYPE, ret);
				fsl_osal_memcpy(&Capturing, pCapturing, sizeof(OMX_CONFIG_BOOLEANTYPE));

				if (Capturing.bEnabled == OMX_TRUE)
					ClockSetConfig(OMX_IndexConfigTimeClientStartTime, &StartTime);
			 }
			 break;
		case OMX_IndexAutoPauseAfterCapture:
			 {
				 OMX_CONFIG_BOOLEANTYPE *pAutoPauseAfterCapture;
				 pAutoPauseAfterCapture = (OMX_CONFIG_BOOLEANTYPE*)pStructure;
				 OMX_CHECK_STRUCT(pAutoPauseAfterCapture, OMX_CONFIG_BOOLEANTYPE, ret);
				 fsl_osal_memcpy(&AutoPauseAfterCapture, pAutoPauseAfterCapture, sizeof(OMX_CONFIG_BOOLEANTYPE));
			 }
			 break;
		case OMX_IndexConfigCommonRotate:
			 {
				 OMX_CONFIG_ROTATIONTYPE *pRotation;
				 pRotation = (OMX_CONFIG_ROTATIONTYPE*)pStructure;
				 OMX_CHECK_STRUCT(pRotation, OMX_CONFIG_ROTATIONTYPE, ret);
				 fsl_osal_memcpy(&Rotation, pRotation, sizeof(OMX_CONFIG_ROTATIONTYPE));
				 SetRotation();
			 }
			 break;
		case OMX_IndexConfigEOS:
			 {
				 OMX_CONFIG_BOOLEANTYPE *pEOS;
				 pEOS = (OMX_CONFIG_BOOLEANTYPE*)pStructure;
				 OMX_CHECK_STRUCT(pEOS, OMX_CONFIG_BOOLEANTYPE, ret);
				 fsl_osal_memcpy(&EOS, pEOS, sizeof(OMX_CONFIG_BOOLEANTYPE));
			 }
			 break;
		default:
			 ret = OMX_ErrorUnsupportedIndex;
			 break;
    }

    return ret;
}
Пример #2
0
bool PS3::SetWhiteBalanceGreen( int value ) {
	return SetWhiteBalance( 1, value );	// 1: Green
}
Пример #3
0
bool PS3::SetWhiteBalanceBlue( int value ) {
	return SetWhiteBalance( 2, value );	// 2: Blue
}
Пример #4
0
bool PS3::SetWhiteBalanceRed( int value ) {
	return SetWhiteBalance( 0, value );	// 0: Red
}