📄 polling.c
字号:
extern void write_reg_bit(int addr,BYTE bit,BYTE val);
BYTE bHpPlug; // 1: headphone plug in 0:headphone not plug in
BYTE bCounter[2];
void polling_headphone(void)
{
static BYTE bOldStas,bNewStas;
if(TEST_HEADPHONE_SENSE)
{
bCounter[0]++;
if(bCounter[0]<5 && !TEST_HEADPHONE_SENSE)
bCounter[0] = 0;
if(bCounter[0] == 5)
{
bHpPlug = 1;
bCounter[0] = 0;
}
}
else
{
bCounter[1]++;
if(bCounter[1]<5 && TEST_HEADPHONE_SENSE)
bCounter[1] = 0;
if(bCounter[1] == 5)
{
bHpPlug = 0;
bCounter[1] = 0;
}
}
bNewStas = bHpPlug;
if(bHpPlug && (bNewStas!=bOldStas))
{
ddx_masterMute(1);
ddx_disableEPAD();
write_reg_bit(0x04,6,1);//set channel 7/8 to binary mode
write_reg_bit(0x04,7,1);
ddx_masterMute(0);
}
else if((!bHpPlug) && (bNewStas!=bOldStas))
{
ddx_masterMute(1);
write_reg_bit(0x04,6,0);//set channel 7/8 to ddx mode
write_reg_bit(0x04,7,0);
ddx_enableEPAD();
ddx_masterMute(0);
}
bOldStas = bNewStas;
}
#endif
void disp_fan_in(void)
{
extern BYTE osd0_state; //OSD0 state
if (osd0_state>1)
{
#ifdef SUPPORT_FUNCTION_MENU
if ((full_scrn!=SETUP) && (full_scrn!=SETUP_PLUS))
#else
if (full_scrn!=SETUP)
#endif //end #ifdef SUPPORT_FUNCTION_MENU
DispPolling(2);
}
}
#ifdef QSI_PLATFORM//liulifeng add 2004-10-13////jhuang 2004/11/23
enum {
ERROR_CODE_N = 0x0,
ERROR_CODE_1,
ERROR_CODE_2,
ERROR_CODE_3,
ERROR_CODE_4
};
BYTE QSI_PIPO_error_code_station = ERROR_CODE_3;
BYTE QSI_PIPO_error_code_time_flag=0;
static inline void QSI_PIPO_error_code ( void )
{
if ( QSI_PIPO_error_code_station != 0 )//error occur
{
if ( QSI_PIPO_error_code_time_flag < 21)
{
if ( ( (QSI_PIPO_error_code_time_flag / 3) %2 )
||( QSI_PIPO_error_code_time_flag > ((QSI_PIPO_error_code_station - 1 )*6 + 3))
)
GPIO_O_SET(GPIO_IS_FOR_SYSTEM_LED,0); // led Off
else
GPIO_O_SET(GPIO_IS_FOR_SYSTEM_LED,1); // led On
}
else if ( QSI_PIPO_error_code_time_flag < 25 )
{
GPIO_O_SET(GPIO_IS_FOR_SYSTEM_LED,0); // led Off
}
else if ( QSI_PIPO_error_code_time_flag < 28 )
{
GPIO_O_SET(GPIO_IS_FOR_SYSTEM_LED,1); // led On
}
else if ( QSI_PIPO_error_code_time_flag < 50 )
{
GPIO_O_SET(GPIO_IS_FOR_SYSTEM_LED,0); // led Off
}
else
QSI_PIPO_error_code_time_flag = 0xff;
QSI_PIPO_error_code_time_flag++;
}
}
#endif//#ifdef QSI_PLATFORM
//#define SUPPORT_DEBUG_FOR_TRAY_IN_AND_HOME_SWITCH // 2004/12/17 yltseng
static inline void DebugFuncForTrayInAndHomeSwitch()
{
#ifdef SUPPORT_DEBUG_FOR_TRAY_IN_AND_HOME_SWITCH
// First parameter is TryIn, Second is HomeSwitch
// TrayIn : Defined in sys_servo.c TRAY_IS_IN_GPIO
// HomeSwitch : Fixed at GPIO 6
psprintf( RegionValStr[REGION1], "%d %d", GPIO_I_GET(5), GPIO_I_GET(6) );
PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
#endif
}
//
// FUNCTION
// polling_100ms
//
static inline void polling_100ms(void)
{
DebugFuncForTrayInAndHomeSwitch();
#ifdef QSI_PLATFORM//liulifeng add 2004-10-13//jhuang 2004/11/23
QSI_PIPO_error_code ();
#endif
#ifdef PMP_MCU810
if((GetCurrentFileType() != CDROM_JPEG )&&(GetCurrentFileType() != CDROM_DAT )
&&(GetCurrentFileType() != CDROM_MPG) &&(GetCurrentFileType() != CDROM_MP4)
||(pFsJpeg->gifsState == FS_STATE_LIST||pFsJpeg->gifsState == FS_STATE_MP3))
Show_PMP_Bat();
#endif
#ifdef SUPPORT_SPI
polling_spi();
spi_service();
#endif
#ifdef SUPPORT_MP4_SUBTITLE
if (GetCurrentFileType() == CDROM_MP4) ///David add 2004-5-9, no need to polling subtitle except MP4 disc.
{
if( (full_scrn & SOUND) || (play_state == VCD_STATE_PAUSE) ) //David 2004-5-12
return;
if (IS_EXT_SUP_ACTIVATED())
{
extern ifunc polling_subtitle;
if( polling_subtitle )
{
#ifdef SPHE8202_FAT_Write_Function
if(!(full_scrn & PERIPHERAL)) //sunzhh add 2004-11-25
#endif
polling_subtitle();
}
}
}
#endif
#ifdef PDVD_USE_IO_SCAN_KEY //Jack modified 04/06/03
//#ifdef GBM_PORTABLE_DVD
check_portable_key(); //rbhung for GBM Portable DVD
#endif
//freyman 2002-7-4 11:30
#ifdef VFD_VOLUME_DISPLAY
{
int diff;
//diff=timenow-rtc_100ms;
polling_vfdtime(diff);
}
#endif
#ifdef USE_GAMEPORT_TO_BUTTON//nono 20020824
check_key_status();
#elif defined(OURMIND_VFDPORT_TO_BUTTON)//nono 20020824
check_key_status_ourmind();
check_ourmind_light_status();
#elif defined(USE_VFDPORT_TO_BUTTON)
check_keyboard_status();
#elif defined(USE_VFDPORT_TO_KEYLIGHT)
check_keylight_status();
#endif
#if defined(FAT_Write_UI)||defined(CF_CARD_WRITE)//||defined(WRITE_USB)//liweihua 2003-10-29
extern void polling_input_name(void);
extern BYTE input_flag;
if((full_scrn & PERIPHERAL) && (input_flag == 1))
polling_input_name();
#endif
#ifdef AC3TEST
if (gAC3onoff==1) {
AC3ShowReport();
}
AC3CheckSampling();
#endif
if ( (audioNotContinuous>0) && (play_state==VCD_STATE_NORMAL) ) { //count it when STATE_NORMAL, Jeff 20021202
audioNotContinuous--;
if (audioNotContinuous==0) {
if (!user_mute) {
AUDIF_Demute();//2004AUDDRV AudioDemute();
#ifdef CHANGE_DSP_SPDIF_OFF
AUDIF_Set_SPDIF(setupGetSetting(14));//2004AUDDRV AudioSetSPDIF(setupGetSetting(14));
#endif//#ifdef CHANGE_DSP_SPDIF_OFF
}
}
}
#ifdef NF_100
if( (play_state!=VCD_STATE_PAUSE)&&(full_scrn!=SETUP) )
{
if( dvd_timer>0 )
{
//printf("polling_100ms play_state = %d\n",play_state);
polling_dvd_timer();
}
}
#else
if( ( P_frame == 0 ) // 2004/12/29 yltseng
#ifndef SETUP_DONT_PAUSE
&& ( full_scrn != SETUP )
#endif
#ifndef PROG_DONT_PAUSE
&& ( full_scrn != PROGRAM )
#endif
)
{
if(!IsAVDPaused() && (dvd_timer>0) )
polling_dvd_timer();
}
#endif
if (hl_timer>0)
recover_hl_color();
if (auto_pause)
polling_timeout();
#ifdef SUPPORT_FUNCTION_MENU
if(setup_menu_plus_timer)
polling_setup_menu_plus();
#endif //end #ifdef SUPPORT_FUNCTION_MENU
#ifdef SUPPORT_REP_READ
if(IsReadMode())
PollingRecBufStatus();
#endif
#ifdef FS_BMP_GUI//zhaoyanhua add 2004-6-29 15:58
if(cd_type_loaded == CDROM) // Robert 021004
{
if ((GetCurrentFileType() == CDROM) || (GetCurrentFileType() == CD_DA) || (GetCurrentFileType() == CDROM_WMA) || (GetCurrentFileType() == CDROM_AAC))
polling_mp3();
}
#endif//#ifdef FS_BMP_GUI
#ifdef BRIGHTNESS_COLOR_KEY
polling_BCtimer();
#endif
#ifdef SUPPORT_HEADPHONE //xyy 2004-10-9
polling_headphone();
#endif
#ifdef ALONE_GPIO_KEY//Jack 20041008
polling_portable_akey();
#endif
#ifdef CONTINUOUS_NUM_KEY_SELECT
if(ir_num_timer)
polling_ir_num();
#endif
#ifdef DVB1000_NON_OS
if(system_state == SYSTEM_TS)
{
CheckProgInterval();
CheckDvbTunerStatus();
}
#endif
}
//
//
extern int gbm_gpio_led_flag;
extern BYTE cd_type_loaded;
#ifdef SunplusMoudleTest //axel 2004/4/2 11:55am while detected DVD, wait for 15 sec, tray out...
UINT16 ModuleTicks=0;
static inline void auto_modual_test(void)
{
if(cd_type_loaded==CDDVD)
{
if(ModuleTicks>=45)
{
ModuleTicks=0;
ircmd_stop();
delay_srv_10ms(100);
//ircmd_power();
/* delay_srv_10ms(500);
ircmd_trayin();*/
}
else
ModuleTicks++;
}
}
#else
#define auto_modual_test();
#endif
/*
* polling_one_minute() wangap add 2004/4/26
*/
static inline void polling_one_minute(void)
{
#ifdef TURN_OFF_POWER_RESUME //wangap 2004/4/21
if(play_state!=VCD_STATE_STOP)
polling_resume();
#endif
}
#ifdef AUTO_ADJUST_TV_TYPE
BYTE Adjust_TV_type =0;
#endif
#ifdef UART_WITHOUT_DEBUG_MODE //axelchen 2004/10/20
void ReturnFromUart(void)
{
int d;
if (!IsEPPRxEmpty())
{
d = EPP_GETC();
UART0_putc(d);
}
}
#endif
#ifdef SLEEP_CONTROL_COUNTER //liumzh 2004-12-10 23:53
UINT32 counter_sleep_control = 0;
UINT32 sleep_time = 15;//seconds
#endif
#ifdef STOP_15M_AUTO_POWEROFF
extern UINT8 STOP_15M_STATE;
unsigned short int second_counter=0;
unsigned short int sleep_counter=0;
unsigned char one_second_flag=1;
int timer_counter=0;
unsigned char sleep_show_flags;
#endif
/*
* polling_500ms()
*/
static inline void polling_500ms(void)
{
/*#ifdef DVB1000_NON_OS
int iHasTDT=0;
iHasTDT=PollingTDT(5);//eric add 2004-12-16 15:12 use Demux channel 5
if((full_scrn == PROGRAMINFO)&&iHasTDT)
{
printf("full_scrn == PROGRAMINFO)&&PollingTDT(5)\n");
DisplayProgramInfo(1);
}
#endif*/ //eric change polling TDT to 1SEC
#ifdef PMP_KEYBOARD //xyy 2005-1-10
extern polling_pmpkey(void);
polling_pmpkey();
#endif
#ifdef EASTECH_SETUPMENU
extern BYTE check_show_pscan_wait_time_mode;
extern void pscan_change_time_out(void);
extern void refresh_pscan_wait_time(BYTE wait_time);
static BYTE wait_time=CHANGE_TO_PSCAN_WAIT_TIME_TOTAL;
if(check_show_pscan_wait_time_mode==1){
wait_time--;
if(wait_time==0){
pscan_change_time_out();
wait_time=0;
check_show_pscan_wait_time_mode=0;
}
else{
refresh_pscan_wait_time(wait_time);
}
}
else wait_time=CHANGE_TO_PSCAN_WAIT_TIME_TOTAL;
#endif
#ifdef UART_WITHOUT_DEBUG_MODE //axelchen 2004/10/20
ReturnFromUart();
#endif
#ifdef SLEEP_CONTROL_COUNTER //liumzh 2004-12-10 23:53
if(counter_sleep_control >= sleep_time *100*60)
{
counter_sleep_control = 0;
sleep_time = 0;
ircmd_power();
}
#endif
#ifdef STOP_15M_AUTO_POWEROFF
if(STOP_15M_STATE==1)
{
if((sleep_counter)/*&&(system_state== SYSTEM_STOP)*/)
{
sleep_show_flags--;
if(!sleep_show_flags)
;//osd_sleep_disp(sleep_counter);
second_counter++;
if(second_counter>=60*2)
{ second_counter=0;
sleep_counter--;
if(sleep_counter==0)
{
if((system_state== SYSTEM_STOP)||(play_state==VCD_STATE_STOP))
ircmd_power();
}
}
}
}
#endif
#ifdef SUPPORT_CD_TEXT //lizhx add 04/10/17
if (cd_type_loaded == CDDA)
{
if(!((full_scrn & PROGRAM)||(full_scrn & SETUP)||(full_scrn & SOUND)))
show_CDText_Title_Content(v11_trk_now);
}
#endif
#ifdef MIDI_SCORE_TEST //modify by xlluo for test
extern BYTE gb_showScore;
#endif
auto_modual_test();//terry,2004/4/2 04:49PM
#ifdef AUTO_ADJUST_TV_TYPE
if((play_state==VCD_STATE_NORMAL) && (Adjust_TV_type==1))
{
auto_adjust_tv_type();
}
#endif
// mute mute
if (is_dts_force_spdif_bitstream()) {
regs0->aud_pcm_ramp_delta = 0xff;
regs0->aud_pcm_ramp_cfg = 1;
}
#ifdef TEST_SERVO
srv_mode_test_polling();//terry,2003/9/10 12:57AM
#endif
#ifdef RECORD_KEY//zhaoyanhua add 03-11-5 13:02
if(same_disc_flag)
same_disc_flag++;
#endif
auto_close_fun();
auto_record_per_s();
#ifdef SCRN_SAVER_WHEN_PAUSE
if (full_scrn & SETUP)//4-3-5 23:24
safe_srn_off();
else if(play_state == VCD_STATE_PAUSE)
#ifdef SUPPORT_MIDI //ouyang add for don't show saver in midi2005-1-12 19:22
if(!gIsMidiSelMenu)
#endif
safe_srn_on();
#endif
#ifdef USE_PIN31_CONTROL_POWER_LED //gerry,2004-3-9 19:42
if(gbm_gpio_led_flag<=4)
gbm_gpio_led_flag++;
else
{
GPIO_O_SET(4,1);
}
#endif//USE_PIN31_CONTROL_POWER_LED
if (regs0->dsp24_port[4]==1)
{ //to check whether MIC is on or off, Jeff 20020904
mic_on = 1;
} else {
mic_on = 0;
}
if ((full_scrn & SCORE)
#ifdef MIDI_SCORE_TEST //modify by xlluo
||(gb_showScore)
#endif
#ifdef SUPPORT_SANJING_SCORE //xlluo for sjspical score ui 04 -10 -15
||(bIsSJScoreInvaild)
#endif
)
{ //Jeff 20020404
Score_Polling();
}
// check mp2/mp3 sample-rate (reported from audio decoder)
if(mpeg_audio) MPx_ChkSmpRate();
if(auto_download_audio_chn)
{
if(AUDIF_AutoDownload_Codec(auto_download_audio_chn-1))//2004AUDDRV audif_auto_download_codec(auto_download_audio_chn-1)
{//sucess
auto_download_audio_chn=0;
}
}
#ifndef FS_BMP_GUI//zhaoyanhua 2004-6-29 15:58
if(cd_type_loaded == CDROM) // Robert 021004
{
if ((GetCurrentFileType() == CDROM) || (GetCurrentFileType() == CD_DA) || (GetCurrentFileType() == CDROM_WMA) || (GetCurrentFileType() == CDROM_AAC))
polling_mp3();
}
#endif//#ifndef FS_BMP_GUI
#ifdef REMAIN_TIME//nono 2-7-13 11:27
// printf("polling:polling_clock=%d\n",polling_clock);
if(polling_clock<7)
{
if( (polling_clock==6)&&(t_disp) )
t_disp+=10;
polling_clock++;
}
#endif
#if defined(SUPPORT_TUNER_MV114) || defined(SUPPORT_TUNER_ALPS) //xyy 2003-9-20 14:45
if( system_state==SYSTEM_DOING_TUNER ) //huziqin 2004-2-26
{
if(tuner_mute_flag)
tuner_mute_flag++;
if(tuner_mute_flag>2) // mute 500mS
{
tuner_mute_flag=0;
if(!user_mute)
tuner_mute(0);
}
}
#endif
/*Here deleted by xyy 2004-8-5 */
#ifdef SUPPORT_FS_LONGNAME //Maoyong 2004.06.24
if( (play_state != VCD_STATE_PAUSE) && (play_state != VCD_STATE_STOP)
&&(pFsJpeg->gifsState == FS_STATE_LIST||pFsJpeg->gifsState == FS_STATE_MP3))
FS_ScrollDispFileName();
#endif
//nono add "&&defined(USE_GPIO_MUTE) "20040821
#if defined(SUPPORT_DSPMUTE)&&defined(USE_GPIO_MUTE) //BENSON 2004/7/12 11:25
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -