⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msapi_vd.c

📁 mstar 776 开发的车载dvd
💻 C
📖 第 1 页 / 共 2 页
字号:
            break;

        case VD_STATE_UNSTABLE_1:
            API_VD_DBG(puts("\r\nUNSTABLE_1"));
            --g_VdInfo.ucVideoStableCounter;
            if ( g_VdInfo.ucVideoStableCounter <= 0 )
            {
                g_VdInfo.u16VideoStatus = u16CurSyncStatus; // set flag
                g_VdInfo.u16LastVideoStatus = VD_RESET_ON;
                g_VdInfo.ucVideoStableCounter = 0;
                msAPI_Scaler_SetDisplayWindowStatus(0);

                if ( msAPI_VD_IsSyncLock() )
                {
                    enState = VD_STATE_SET_MODE_SYNC;
                    g_VdInfo.ucVideoSystem = msAPI_VD_GetVideoSystem( g_VdInfo.u16VideoStatus );

                    // Do different thing when different mode!!
                    msAPI_VD_ProgramDiffField(g_VdInfo.ucVideoSystem, &stSystemInfo );
                }
                else
                {
                    enState = VD_STATE_SET_MODE_NO_SYNC;
                }
            }
             break;

        default:

             break;
    }

    return enState;

}


#if ( KEEP_UNUSED_FUNC == 1 )
/******************************************************************************/
///-Get WSS information
///@return
///WSS Information
/******************************************************************************/
U16 msAPI_VD_GetWSS( void )
{
	return MDrv_VD_GetWSS();
}
#endif

//////////////////////////////////////////////////////
//  Std     50/60   Vtotal  FSC HTotal  Color
//-----------------------------------------
//  NTSC     60     525     358 910
//  PAL-M    60     525     358 909     PAL-Switch
//  NTSC-443 60     525     443 1127
//  PAL-60   60     525     443 1127    PAL-Switch
//  xxx      50     625     358
//  PAL-Nc   50     625     358 917     PAL-Switch
//  xxx      50     625     443
//  PAL      50     625     443 1135    PAL-Switch
//  SECAM    50     625     428 1097
///////////////////////////////////////////////////////
/******************************************************************************/
///-Get VD video system
///@param u16VideoStatus  \b IN
///@return
///-SIG_NTSC
///-SIG_PAL
///-SIG_NTSC_443
///-SIG_PAL_M
///-SIG_PAL_NC
///-SIG_NUMS
/******************************************************************************/
U8 msAPI_VD_GetVideoSystem( U16 u16VideoStatus )
{
    U8 u8SignalType;

    // TODO: disable for Saturn2 temporarily
    // MDrv_VD_ColorShift (); <- disable for Saturn2 temporarily

    switch ( u16VideoStatus & VD_FSC_TYPE )
    {
        case VD_FSC_4285:
             MDrv_VD_SetGmcTune (0x06);
             //if ( u16VideoStatus & VD_VSYNC_50HZ ) // SECAM must 50 Hz
             {
                u8SignalType = SIG_SECAM;
                API_VD_STATUS(printf( "[SECAM]" ));
             }
             break;

        case VD_FSC_4433:
             // 4.43361875MHz, PAL or NTSC443 or PAL(60)
             MDrv_VD_SetGmcTune (0x06);
             if ( u16VideoStatus & VD_VSYNC_50HZ ) // 50Hz
             {
             	u8SignalType = SIG_PAL;
             	API_VD_STATUS(printf( "[PAL]" ));
             }
             else // 60Hz
             {
                u8SignalType = SIG_NTSC_443;
                API_VD_STATUS(printf( "[NTSC-443/PAL-60]" ));
             }
             break;

        case VD_FSC_3579:
             // 3.579545MHz, NTSC
             MDrv_VD_SetGmcTune (0x07);
             u8SignalType = SIG_NTSC;
             API_VD_STATUS(printf("[NTSC]"));
             break;

        case VD_FSC_3575:
             // 3.57561149MHz,PAL(M)
             MDrv_VD_SetGmcTune (0x07);
             u8SignalType = SIG_PAL_M;
             API_VD_STATUS(printf("[PAL-M]"));
             break;

        case VD_FSC_3582:
             // 3.58205625MHz,PAL(Nc)
             MDrv_VD_SetGmcTune (0x07);
             u8SignalType = SIG_PAL_NC;
             API_VD_STATUS(printf("[PAL-NC]"));
             break;
    }

    return u8SignalType;
}


//*************************************************************************
//Function name:      msAPI_VD_ChkStatusLoop
//Passing parameter:  none
//Return parameter:   U16: Status represented bits from VD
//Description:        Get stable VD status
//*************************************************************************
U16 msAPI_VD_ChkStatusLoop( void )
{
    U16 wCurrentStatus = VD_RESET_ON;
    U16 u8VdHsyncLockedCount;

    u8VdHsyncLockedCount = MDrv_VD_GetHsyncCountAndVdStatus1stCheck (&wCurrentStatus);
    API_VD_DBG(printf(" vdLoop1=%d", u8VdHsyncLockedCount));
    if( u8VdHsyncLockedCount>14 )
    {
        u8VdHsyncLockedCount = MDrv_VD_GetHsyncCountAndVdStatus2ndCheck ();
        API_VD_DBG(printf(" vdLoop2=%d", u8VdHsyncLockedCount));
        if( u8VdHsyncLockedCount<8 )
            wCurrentStatus = VD_RESET_ON;
    }
    else
        wCurrentStatus = VD_RESET_ON;

    return wCurrentStatus;
}

//*************************************************************************
//Function name:      msAPI_VD_GetHWHSYNC
//Passing parameter:  none
//Return parameter:   U16: Status represented bits from VD
//Description:        Get stable VD status
//*************************************************************************
U16 msAPI_VD_GetHWHSYNC( void )
{
    return MDrv_VD_Scan_HsyncCheck();
}

U8 msAPI_VD_CheckIsTVSys( void )
{
    return MDrv_VD_CheckTVSys();
}

/******************************************************************************/
/// -Program Field information for different signal type.
/// @param enSignalType
/// -SIG_NTSC
/// -SIG_PAL
/// -SIG_SECAM
/// -SIG_NTSC_443
/// -SIG_PAL_M
/// -SIG_PAL_NC
/// -SIG_NUMS
/// @param *penMsSysInfo
/// -enInputSourceType
/// -enInputPortType
/******************************************************************************/
void msAPI_VD_ProgramDiffField ( EN_VD_SIGNALTYPE enSignalType, MS_SYS_INFO *penMsSysInfo )
{
    MDrv_VD_ProgramDiffField(enSignalType, penMsSysInfo);
}

/******************************************************************************/
/// -Initial the VD's parameter
/******************************************************************************/
void msAPI_VD_Parameter_Initial(void)
{
    MDrv_VD_Parameter_Initial();
}

/******************************************************************************/
/// -Set video out by input port type
/******************************************************************************/
void msAPI_EnableOutputVideo(MS_SYS_INFO *penMsSysInfo)
{
    // video
    MDrv_VD_ProgMultiInput(penMsSysInfo);
}


/******************************************************************************/
/// Adjust blacklevel
/// @param u16Blacklevel \b IN: blacklevel value
/// -Range: 0 - 0x1FF
/******************************************************************************/
void msAPI_VD_SetBlacklevel( U16 u16Blacklevel )
{
	MDrv_VD_SetBlacklevel( u16Blacklevel );
}
/******************************************************************************/
/// Set register directory
///
/******************************************************************************/
void msAPI_VD_SetRegister(U16 reg_offset, U8 value, U8 bit_mask)
{

	MDrv_WriteByteMask(reg_offset, value, bit_mask);

}

#undef MSAPI_VD_C

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -