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

📄 osdproc003.c

📁 RTD2662板卡源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
 

    OSDPosition(6 * 12-39, 4 * 18, 10, 0, 0x03);
    if (GET_AUDIO_MUTE()) // Mute on 
       COsdLoad1BitFont(FntMute, 0x7A, 6, tFntVolumeCharWidth);
    else
       COsdLoad1BitFont(FntVolume, 0x7A, 6, tFntVolumeCharWidth);  
                                              
    // Display Volume/Mute icon
    Gotoxy(0, 1, BYTE_DISPLAY);
    OutputChar(0x7A);
    OutputChar(0x7B);
    OutputChar(0x7C);
    Gotoxy(0, 2, BYTE_DISPLAY);
    OutputChar(0x7D);
    OutputChar(0x7E);
    OutputChar(0x7F);
    COsdFxDrawWindow(0,16,                               //WORD usXStart,WORD usYStart,  
                        54,52,       //WORD usXEnd,WORD usYEnd,  
                        tMainWindowStyle);                  //BYTE *pStyle)

    COsdFxEnableOsd();
    bOSDTimeOut  = 0;
 //   ucAudioState = 1;
    if (GET_AUDIO_MUTE()) // Mute on  
    {
       	CTimerCancelTimerEvent(COsdDispOsdTimerEvent);
    }
    else             
    {
       CTimerReactiveTimerEvent(SEC(5), COsdDispOsdTimerEvent);
    } 

    bOSDTimeOut  = 0;
    bOSDOnScreen = 1;
}

//-----------------------------------------------------------------------
#if(_VIDEO_TV_SUPPORT)
#if(_SHOW_TV_NO_SIGNAL)
#define _H_POS_MAX         ((DWORD)((Panel[ucPanelSelect]->DHWidth - _DIALOG_WIDTH)/4 - 12))
#define _V_POS_MAX         ((DWORD)((Panel[ucPanelSelect]->DVHeight - _DIALOG_HEIGHT)/4 - 6))
#define _H_DOUBLE_POS_MAX  ((DWORD)((Panel[ucPanelSelect]->DHWidth - _OSD_DOUBLE_WIDTH(_DIALOG_WIDTH))/4 - 12))
#define _V_DOUBLE_POS_MAX  ((DWORD)((Panel[ucPanelSelect]->DVHeight - _OSD_DOUBLE_HEIGHT(_DIALOG_HEIGHT))/4 - 6))

void OSDMove(WORD usOsdActWidth, WORD usOsdActHeight, WORD ucHPos, WORD ucVPos, BYTE ucPar)
{              
    usOsdActWidth  = _OSD_HPOSITION_OFFSET + 
                    (DWORD)(Panel[ucPanelSelect]->DHStartPos / 4) + ucHPos;

    usOsdActHeight = _OSD_VPOSITION_OFFSET + 
                    (DWORD)(Panel[ucPanelSelect]->DVStartPos / 4) + ucVPos;


    CScalerSetBit(_OSD_SCRAMBLE_93, 0xf8, 0x02);

    pData[0] = CScalerGetBit(_OVERLAY_CTRL_6C, _BIT0);

    pData[0] = (pData[0] == 0x00) ? 0xc0 : 0xe0;
    pData[1] = 0x00;
    CScalerWrite(_OSD_ADDR_MSB_90, 2, pData, _AUTOINC);

	pData[0] = usOsdActHeight >> 1;
	pData[1] = (UINT8) (usOsdActWidth >> 2);
	pData[2] = ((UINT8) (usOsdActWidth & 0x0003) << 6) |	((usOsdActHeight & 0x01) << 5) | ucPar;
	CScalerWrite(_OSD_DATA_PORT_92, 3, pData, _NON_AUTOINC);
 
    CTimerWaitForEvent(_EVENT_DEN_STOP);
    CTimerWaitForEvent(_EVENT_DEN_STOP);
    CScalerSetBit(_OSD_SCRAMBLE_93, 0xf8, 0x05);
}
//---------------------------------------------------------------------------
void DispIcon(BYTE x, BYTE y, BYTE ucIconBaseAddr)
{
    Gotoxy(x,y,BYTE_DISPLAY);
    
    pData[0] = ucIconBaseAddr;
    pData[1] = ucIconBaseAddr + 1;
    pData[2] = ucIconBaseAddr + 2;
    CScalerWrite(_OSD_DATA_PORT_92,3,pData,_NON_AUTOINC);
    
    Gotoxy(x,y + 1,BYTE_DISPLAY);
    pData[0] = ucIconBaseAddr + 3;
    pData[1] = ucIconBaseAddr + 4;
    pData[2] = ucIconBaseAddr + 5;
    CScalerWrite(_OSD_DATA_PORT_92,3,pData,_NON_AUTOINC);
}
//-----------------------------------------------------------------------
#define _ON_SCREEN_STATE    1
#define _MOVE_STATE         2
void CCheckTVSignal(void)
{
    static WORD ucPosX  = 0;
    static WORD ucPosY  = 0;
    static BYTE ucCount = 0;
    static BYTE ucDir   = 0;

    ucCount++;
    if (ucCount > 50)
        ucCount = 0;
    else
        return;

    if (_GET_INPUT_SOURCE() != _SOURCE_VIDEO_TV || bOSDOnScreen == 1 || ucOsdState != _MI_MENU_NONE)
        return;

    if (bTVNoSignal)
    {         
        switch(ucSignalOSDState)
        {
        case 0:
            LoadCHIFont(_LF_OTHER);
            CShowNoSignal();
            CTimerCancelTimerEvent(COsdDispOsdTimerEvent);
            ucSignalOSDState = _ON_SCREEN_STATE;
            break;

        case _ON_SCREEN_STATE:
            if (GET_OSD_SIZE())
            {
                ucPosX = _H_DOUBLE_POS_MAX/2;
                ucPosY = _V_DOUBLE_POS_MAX/2;
            }
            else
            {
                ucPosX = _H_POS_MAX/2;
                ucPosY = _V_POS_MAX/2;
            }
            ucDir  = _BIT1;
            ucDir  |= _BIT5;
            ucSignalOSDState = _MOVE_STATE;
            break;

        case _MOVE_STATE:
            if (GET_OSD_SIZE())
            {
                if (ucPosX >= _H_DOUBLE_POS_MAX)   ucDir = (ucDir & 0xf0) | _BIT0; // --
                if (ucPosY >= _V_DOUBLE_POS_MAX)   ucDir = (ucDir & 0x0f) | _BIT4; // --
            }
            else
            {
                if (ucPosX >= _H_POS_MAX)   ucDir = (ucDir & 0xf0) | _BIT0; // --
                if (ucPosY >= _V_POS_MAX)   ucDir = (ucDir & 0x0f) | _BIT4; // --
            }
            if (ucPosX == 0)            ucDir = (ucDir & 0xf0) | _BIT1; // ++           
            if (ucPosY == 0)            ucDir = (ucDir & 0x0f) | _BIT5; // ++
            
            if (ucDir & _BIT0)          ucPosX--;
            if (ucDir & _BIT1)          ucPosX++;
            if (ucPosY < 2)             ucPosY = 2;
            if (ucDir & _BIT4)          ucPosY-=2;
            if (ucDir & _BIT5)          ucPosY+=2;

            if (GET_OSD_SIZE())
                OSDMove(_OSD_DOUBLE_WIDTH(_DIALOG_WIDTH), _OSD_DOUBLE_HEIGHT(_DIALOG_HEIGHT), ucPosX, ucPosY, 0x03);
            else
                OSDMove(_DIALOG_WIDTH, _DIALOG_HEIGHT, ucPosX, ucPosY, 0x03);
	        break;
        }
    }
    else
    {
        if (ucSignalOSDState)
            COsdFxDisableOsd();
    }
}
#endif // #if(_SHOW_TV_NO_SIGNAL)
#endif // #if(_VIDEO_TV_SUPPORT)

//$$ Added by AndyLiu20080619
/*
#if(_LOGO_ENABLE)
BYTE code tLogoOsdMap[] =
{ 
    10,         // Row Count
    LOBYTE(0x300),HIBYTE(0x300),
	36,   // Row 1 char count
	36,   // Row 2 char count
	36,   // Row 3 char count
	36,   // Row 4 char count
	36,   // Row 5 char count
	36,   // Row 6 char count
	36,   // Row 7 char count
	36,   // Row 8 char count
	36,   // Row 9 char count
	36,   // Row 10 char count

};
//----------------------------------------------------------------
BYTE code tLogo[] =
{
    
  
//Charcter command Byte 1
  0x50,0x0B,   //Row : 0
  0x00,0x01,0x02,0x00,_bb_,33,_nn_,   // 1_02_0                                 
  0x50,0x2F,   //Row : 1
  0x00,0x03,0x04,0x05,0x00,0x06,0x07,0x79,0x08,0x00,_bb_,27,_nn_,   // 1_12_13_1 5_16_1NONE8_1                           
  0x50,0x53,   //Row : 2
  0x00,0x00,0x09,0x0A,0x00,0x00,0x0B,0x79,0x08,0x00,_bb_,27,_nn_,   //  2_23_2  6_2NONE8_1                           
  0x50,0x77,   //Row : 3
  0x00,_bb_,6,0x0B,0x79,0x08,0x00,_bb_,27,_nn_,   //      6_2NONE8_1                           
  0x50,0x9B,   //Row : 4
  0x0C,0x0D,0x0E,0x0F,0x00,0x00,0x0B,0x79,0x08,0x10,0x11,0x12,0x13,0x14,0x15,0x00,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x00,0x00,_nn_,   //0_41_42_43_4  6_2NONE8_19_410_411_412_413_414_4 16_417_418_419_420_421_422_423_424_424_426_427_428_429_430_431_432_433_4  
  0x50,0xBF,   //Row : 5
  0x00,0x00,0x27,0x28,0x00,0x00,0x0B,0x79,0x08,0x29,0x2A,0x2B,0x2C,0x00,0x00,0x00,0x2D,0x2E,0x2F,0x00,0x00,0x30,0x31,0x00,_bb_,4,0x79,0x32,0x33,0x00,0x34,0x35,0x36,0x00,0x00,_nn_,   //  2_53_5  6_2NONE8_19_510_511_512_5   16_517_518_5  21_522_5    NONE28_529_5 31_532_533_5  
  0x50,0xE3,   //Row : 6
  0x00,0x00,0x37,0x28,0x00,0x00,0x0B,0x79,0x38,0x39,0x3A,0x3B,0x00,_bb_,4,0x3C,0x3D,0x3E,0x3F,0x40,0x41,0x42,0x00,_bb_,4,0x79,0x43,0x00,0x00,0x00,0x44,0x45,0x00,0x00,_nn_,   //  2_63_5  6_2NONE8_69_610_611_6    16_617_618_619_620_621_622_6    NONE28_6   32_633_6  
  0x51,0x07,   //Row : 7
  0x00,0x00,0x37,0x28,0x00,0x00,0x0B,0x79,0x46,0x47,0x48,0x49,0x4A,0x00,0x00,0x00,0x4B,0x4C,0x4D,0x4E,0x00,0x4F,0x42,0x00,_bb_,4,0x79,0x50,0x00,0x00,0x00,0x44,0x79,0x00,0x00,_nn_,   //  2_63_5  6_2NONE8_79_710_711_712_7   16_717_718_719_7 21_722_6    NONE28_7   32_6NONE  
  0x51,0x2B,   //Row : 8
  0x00,0x00,0x37,0x28,0x00,0x00,0x0B,0x79,0x08,0x00,0x51,0x52,0x53,0x54,0x00,0x00,0x55,0x56,0x00,0x00,0x57,0x58,0x59,0x00,_bb_,4,0x79,0x5A,0x00,0x00,0x00,0x44,0x79,0x00,0x00,_nn_,   //  2_63_5  6_2NONE8_1 10_811_812_813_8  16_817_8  20_821_822_8    NONE28_8   32_6NONE  
  0x51,0x4F,   //Row : 9
  0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x62,0x67,0x68,0x60,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x5B,0x72,0x62,0x73,0x74,0x00,0x75,0x76,0x62,0x77,0x78,_nn_,   //0_91_92_93_94_95_96_97_98_99_910_911_97_913_914_95_916_917_918_919_920_921_922_923_924_90_926_97_928_929_9 31_932_97_934_935_9
  0x51,0x73,   //Row : 21
  0x00,_bb_,52,   //                                                    
  _end_,
  

};
//----------------------------------------------------------------
void CDrawLogo(BYTE ucDouble)
{
//    BYTE x;
//    BYTE y;
    BYTE ucFont = 0x00;
	
	COsdFxDisableOsd();	
    CAdjustBackgroundColor(0x00,0x00,0xff);

    SetOsdMap(tLogoOsdMap);
    COsdColorPalette(tPALETTE_0);
    COsdFxCodeWrite(ucCloseAllWindow);
    COsdLoad1BitFontWidth12(FntLogo, 0x00, 0x80);

	CScalerSetBit(_OVERLAY_CTRL_6C, 0x23, ((0x00) << 2));
    
    // Init osd
    // insert code to here
    OSDClear(ROW(0), HEIGHT(10), COL(0), WIDTH(36), 0x8C, BYTE_ATTRIB);
    OSDClear(ROW(0), HEIGHT(10), COL(0), WIDTH(36), 0x80, BYTE_COLOR);
	
    OSDPosition(_LOGO_WIDTH, _LOGO_HEIGHT, 45, 54, 0x03);

	COsdFxCodeWrite(tLogo);

	COsdFxEnableOsd();
    CPowerPanelOn();

    CTimerCancelTimerEvent(COsdDispOsdTimerEvent); //andy 080604
    //CPowerLightPowerOn();
    //CTimerDelayXms(100);
//    CTimerDelayXms(1000);
//    CTimerDelayXms(1000);
//    CTimerDelayXms(1000);
//    CTimerDelayXms(1000);
}
//-------------------------------------------------------------------------------------------------------------

void CPattenChange(void)
{
	BYTE ucPatten[9];
    BYTE ucTemp;

    // 0x0A
    ucPatten[0] = tPALETTE_0[30];//0x33;
    ucPatten[1] = tPALETTE_0[31];//0x6A;
    ucPatten[2] = tPALETTE_0[32];//0xA5;
    // 0x0B
    ucPatten[3] = tPALETTE_0[33];//0x94;
    ucPatten[4] = tPALETTE_0[34];//0xBD;
    ucPatten[5] = tPALETTE_0[35];//0x35;
    // 0x0C
    ucPatten[6] = tPALETTE_0[36];//0xF3;
    ucPatten[7] = tPALETTE_0[37];//0x94;
    ucPatten[8] = tPALETTE_0[38];//0x28;

    for(ucTemp = 0; ucTemp < 9; ucTemp++)
    {
        ucPatten[ucTemp] -= 0x28;
    }

    while(ucPatten[6] != 0xFF)
    {
    	CScalerSetByte(_OVERLAY_LUT_ADDR_6E, 0x80 | 0x1E);
    	CScalerWrite(_COLOR_LUT_PORT_6F, 3, &ucPatten, _NON_AUTOINC);
    	CScalerSetByte(_OVERLAY_LUT_ADDR_6E, 0x00);
        CTimerDelayXms(30);

        for(ucTemp = 0; ucTemp < 9; ucTemp++)
        {
            ucPatten[ucTemp]++;
        }
    }

    while(ucPatten[8])
    {
    	CScalerSetByte(_OVERLAY_LUT_ADDR_6E, 0x80 | 0x1E);
    	CScalerWrite(_COLOR_LUT_PORT_6F, 3, &ucPatten, _NON_AUTOINC);
    	CScalerSetByte(_OVERLAY_LUT_ADDR_6E, 0x00);
        CTimerDelayXms(30);

        for(ucTemp = 0; ucTemp < 9; ucTemp++)
        {
            ucPatten[ucTemp]--;
        }
    }
}

#endif
*/
//$$ Added by AndyLiu20080619

//----------------------------------------------------------------------------------------------------
void CNotUse(void)
{
     CChangeSourceAvSv();


	CAdjustMZHueSat(0);
	CEepromSaveHueSatData();
	CKeyScanReadyTimerEvent();
	CKeyRepeatEnableTimerEvent();
	CAutoDoAutoConfig();

	CAutoDoWhiteBalance();
	CVdcIsLocked();
	CEepromSaveOsdUserData();
	CEepromSaveBriConData();
	CEepromSaveColorTempData();
	CEepromSaveTvData();
	CScalerWriteAmount(0,0,0,0);

	SetOsdMap(0);
	SetOSDRamAddress();
	DirectWOSDRam(0, 0, 0, 0);
	SetRowCmds();
	Gotoxy(0, 0, 0);
	OutputChar(0);

	COsdFxCloseWindow(0);
	ValueInRangeChange(0, 0, 0, 0);
	Textout(0);
	StrLen(0);
	OSDPosition(0, 0, 0, 0, 0);
	OSDClear(0, 0, 0, 0, 0,0);
	COsdFxCodeWrite(0);
	COsdFxEnableOsd();
	COsdFxDisableOsd();
	COsdFxDrawWindow(0, 0, 0, 0, 0);
	COsdFxGetAdcClockRange(0);
	InitBurnIn();
	BurnInRun();
    CKeyScanReady();
    ChangeSourceHandler();

    CSetPWM(0, 0);
    CTextOutRightAlign(0,0,0);
    //OSDSlider(0, 0, 0, 0, 0,0);


	COsdCtrlGetHPosition();
	COsdCtrlGetVPosition();
	COsdCtrlGetClock();
	COsdCtrlGetPhase();
    GetNextLanguage(0);
	GetPrevLanguage(0);
    //CDoReset();

    AdjustMenuItem(0,0,0);

	CEnable();
	CVideoEnable();
	CVgaEnable();
	CHDMIEnable();
	CDviEnable();
	CTVEnable();
   
    Draw2bit3x2Icon(0,0,0);
    
#if(_VIDEO_TV_SUPPORT)
	CSaveChannelSkip(0,0);
	CSaveChannelColorType(0,0);
	CChangeChannel(0);
	CTuningCurrentChannel(0,0);
	CTvAutoSearch();
	CManualSearch(0,0);

    #if(_FM_DEVICE)
        CChangeFM();
    #endif
        CShowTimer();
        CSaveChannelSoundType(stTvInfo.CurChn, 0);
        CSaveChannelSoundType(stTvInfo.CurChn, 0);
#endif

    CCenterTextout(0,ROW(1),COL(0),0);
    //COsdLoad1BitFont(0, 0x00, 123, 0);
	CYPbPrPorch_LevelCheck();



	//CShowNumber(0,0,0);
    MMenuNoneEnterSubMenu();
    Exit001Menu();
    DrawSourceMenu();
	CShortCutBright();
	Draw001MainMenu();
    DispIcon(0,0,0);
}
//--------------------------------------------------

#endif			//#if(_OSD_TYPE == _OSD003)

⌨️ 快捷键说明

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