예제 #1
0
void WaitTime_ms(t_u32 wait_ms)
{
    t_u32 start, end;
    t_u32 tickms;

    start = GetTime_ms();
    
    do
    {
        end = GetTime_ms();
        tickms = Delta_time_ms(start, end);
    }while(tickms < wait_ms);
}
예제 #2
0
파일: FOsdDisplay.c 프로젝트: lby116/ACT35
void DisplayVol(void)
{
	BYTE CODE *Str ;
	BYTE len;

	//#ifdef DEBUG_OSD
	//dPuts("\r\n++(DisplayVol)");
	//#endif
	
	if(( DisplayedOSD & FOSD_TVVOL ) == 0 ) {
		ClearOSDInfo();
		FOsdDefaultLUT();
		delay1ms(100);
		
		InitFOsdMenuWindow(Init_Osd_BarWindow);
	
		FOsdRamMemset(FOSDMENU_BARADDR,    0x020, BG_COLOR_CYAN | FG_COLOR_WHITE, 25 );		// Total 25*2 Char. 
		FOsdRamMemset(FOSDMENU_BARADDR+25, 0x020, BG_COLOR_WHITE | FG_COLOR_CYAN, 25 );
	
		Str = StrVolume[OSDLang];
		len=TWstrlen(Str);
		WriteStringToAddr(FOSDMENU_BARADDR, Str, len);  
	
		FOsdWinEnable(FOSDMENU_BARWIN,TRUE);
		FOsdOnOff(ON, 1);	//with vdelay 1
	}
	DisplayVolumebar(AudioVol);

	DisplayedOSD |= FOSD_TVVOL;
	OSDDisplayedTime = GetTime_ms();
}
예제 #3
0
파일: FOsdDisplay.c 프로젝트: lby116/ACT35
BYTE CheckAndClearFOsd(void)
{
	WORD	ctime,  stime, diff;
	BYTE	dt;
	BYTE	Result=0;

	dt = DisplayedOSD;
	if ( dt & ( FOSD_MENU | FOSD_INPUTINFO | FOSD_TVCHN | FOSD_TVVOL  ) ) {

		if( dt & FOSD_MENU )	{ 
			stime = OSDLastKeyInTime;	
			diff =  20 * 1000; //GetOSDDuration()
		}
		else { 
			stime = OSDDisplayedTime;	
			diff = 2 * 1000;	
		}
	
		ctime = GetTime_ms();			

		if( DiffTime_ms( stime, ctime ) >= diff ) {

			#ifdef DEBUG_OSD
			if( !(dt & FOSD_MENU) ) {
				dPrintf("\r\n(CheckAndClearOSD)DisplayedOSD:0x%x, ", (WORD)dt);
				dPrintf("starttime:%d, currtime:%d", stime, ctime);
			}
			#endif

			//if( dt & LOGO )			ClearLogo();
			if( !DisplayInputHold )
				if( dt & FOSD_INPUTINFO )	
					Result = FOsdClearInput();
			if( dt & FOSD_TVVOL )		
				Result = ClearTVInfo();

			if( dt & FOSD_MENU ) {			
				Result = 1;
				FOsdMenuClose();  
			}

			if( Result == 1){
				if( DisplayInputHold ) 
					FOsdDisplayInput();
				else {
					if( IsAudioMuteOn() )	
						DisplayMuteInfo();
				}
			}
			return 1;
		}
	}

	return 0;
}
예제 #4
0
파일: FOsdDisplay.c 프로젝트: lby116/ACT35
//-------------------------------------------------------------------
// Display/Clear DisplayInput
//-------------------------------------------------------------------
void FOsdDisplayInput(void)
{
	BYTE	inputs, len1, len2,i, SystemAddr;
	#ifdef SUPPORT_COMPONENT
	BYTE CODE 	*Str;
	#endif

	SystemAddr=INPUTINFO1_ADDR;

	if( (DisplayedOSD & FOSD_INPUTINFO ) && DisplayInputHold ) return;

	ClearOSDInfo();


	inputs = InputMain;

	#ifdef DEBUG_OSD
 	dPrintf("\r\n++(DisplayInput) : %d", (WORD)inputs);
	#endif

	#if 0
	#if defined( SUPPORT_PC ) || defined( SUPPORT_BT656 )
	if( inputs==PC || inputs==DTV )
		len2 = TWstrlen( GetPCInputSourceName() );
	else
	#endif
	#endif

	#ifdef SUPPORT_COMPONENT
	if( inputs==INPUT_COMP ){
		WriteTW88Page(1 );
		i = ReadTW88(REG1C1) & 7;
		Str = COMPONENT_STR[i];
		len2 = TWstrlen(Str);
	}
	else
	#endif
		len2 = TWstrlen( struct_VInputStd[GetVInputStdInx()].Name );


	for (i=1; ;i++)
		if( struct_InputSelection[i].Id==inputs )  break;

	len1 = TWstrlen(struct_InputSelection[i].Name);

	InitFOsdMenuWindow(Init_Osd_DisplayInput);
	#ifdef ADD_ANALOGPANEL
	if(IsAnalogOn())
		InitFOsdMenuWindow(Init_Osd_DisplayInput_A);
	#endif
	FOsdRamMemset(INPUTINFO_ADDR, 0x020, DEFAULT_COLOR, 51 );	// Total 42 Char.	
	WriteStringToAddr(INPUTINFO_ADDR, struct_InputSelection[i].Name, len1); 

	#if 0
	#if defined( SUPPORT_PC ) || defined( SUPPORT_BT656 )
	if( inputs==PC || inputs==DTV )
		WriteStringToAddr(SystemAddr, GetPCInputSourceName(), len2); 
	else
	#endif
	#endif
	#ifdef SUPPORT_COMPONENT
	if( inputs==INPUT_COMP ){
		//i = DecoderIsNoInput();
		//Printf("\r\n Display Info==> Component Noinutcheck: %d ", (WORD)i );
		//if( DecoderIsNoInput() == 0 ) WriteStringToAddr(SystemAddr, Str, len2); 
		WriteStringToAddr(SystemAddr, Str, len2); 
	}
	else
	#endif
	{
		if( DecoderIsNoInput() == 0 ) 
		WriteStringToAddr(SystemAddr, struct_VInputStd[GetVInputStdInx()].Name, len2); 
	}

	FOsdWinEnable(OSD_Win_Num(INPUTINFO_OSDWIN),TRUE);
	FOsdWinEnable(OSD_Win_Num(INPUTINFO_OSDWIN+1),TRUE);
	FOsdOnOff(ON, 1); //with vdelay 1

	DisplayedOSD |= FOSD_INPUTINFO;
	OSDDisplayedTime = GetTime_ms();	
}