📄 ircmd_num.c
字号:
/*
* Terry,2004/1/14 02:36PM
*/
/*******************************************************
** FUNCTION
** ircmd_select_number
**
** DESCRIPTION:
** Function for IR number-key
**
** In:
** num: numer 0~10
** Out:
** None
************************************************************/
//xulf added temporary here 2004-2-12 11:53
#if defined(SUPPORT_BASS_TREBLE)//xyy 2004-3-8
extern BYTE flag_BassAdjust,flag_TrebleAdjust; //xulf 2004-01-12
#endif
//extern void ddx_ircmd_BassAdjust(int updown);
//extern void ddx_ircmd_TrebleAdjust(int updown);
#if defined(AMP_SUPPORT_EQ)
extern void ddx_EQ_Toggle(void);
#endif
#if defined(SUPPORT_REVERBERATION)
extern void ddx_Revb_Toggle(void);
#endif
#ifdef MP3_DIRECT_SELECT_FAST2NORM //Maoyong 2004.02.28 15:54
#define FAST2NORM 0x01<<0
#define NOT_REALPLAY 0
extern void chg2normal_play(UINT8 md,UINT8 realplay);
extern UINT16 Is_JPEG_STATE(void);
#endif
//#ifdef XINGQIU_RECEIVER_PANNEL//xyy 2004-5-24
#ifdef SUPPORT_STATION_INPUT//xyy 2004-8-15
#include "radio_mv114_kst.h"
#endif
#ifdef CONTINUOUS_NUM_KEY_SELECT//Jack added 04/11/13
#define psdList (pFsJpeg->List)
void ir_continuous_num_clr(void)
{
ir_num1 = 0;
ir_num2 = 0;
ir_num3 = 0;
ir_num4 = 0;
ir_num_timer = 0;
ir_select_number = 0;
ir_num_state = NUM_STATE0;
}
#endif
void ircmd_input_number(int num)
{
UINT8 invalid=0;
#ifdef DVB1000_OSD_MENU
if(!((full_scrn & DVB_MENU) ||(full_scrn & SETUP)||(full_scrn & SOUND))&&(system_state == SYSTEM_TS))
{
int progCount;
stProgramInfo_t *progInfo;
now_num_ns++;
if(now_num_ns==1)
{//getime
//get_tod(&timeout_playback);
printf("timeout_playback=%d\n",timeout_playback);
ir_select_number =num;
psprintf(RegionValStr[REGION1],"-%01d",ir_select_number);
PrintOsdMsg(STR_OS_SPACE, REGION1, 2, 1);
}
else if(now_num_ns==2)
{
ir_select_number = ir_select_number*10 + num;
printf("ir_select_number = %d\n",ir_select_number);
psprintf(RegionValStr[REGION1],"%02d",ir_select_number);
PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
full_scrn = 0;
if(CurrService ==DIGITAL_TV_SERVICE)//eric 2004-12-20 17:33
{
progCount = g_iTVCount;
progInfo = g_stTVInfo;
printf("DIGITAL_TV_SERVICE :index_y = %d\n",currPlayProgIndex);
}
else if(CurrService ==DIGITAL_RADIO_SERVICE)
{
progCount = g_iRadioCount;
progInfo = g_stRadioInfo;
printf("DIGITAL_RADIO_SERVICE :index_y = %d\n",currPlayProgIndex);
}
if(ir_select_number<progCount)
{
if(ir_select_number!=currPlayProgIndex)
{
index_y=ir_select_number;
dvbgui_select_program(progCount, SCREEN_TYPE_FULL, progInfo, g_stObject2);
}
}
else
{
psprintf(RegionValStr[REGION1],"INVALID PROGRAM");
PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
}
now_num_ns=0;
}
return;
}
#endif
#ifdef CONTINUOUS_NUM_KEY_SELECT
if((!(full_scrn&PROGRAM))&&(!(full_scrn&SETUP))&&(!(full_scrn&GOTO)))
{
if(((cd_type_loaded==CDVCD20)||(cd_type_loaded==CDSVCD)) && IsPBCOn() && (is_menu()==0)) //wanghaoying 2003-8-25 23:01
{
invalid_key();
return;
}
}
#endif
#ifdef SUPPORT_MIDIDISK_TITLE
if (bIsPlayMidiTitle)
{
invalid_key();
return;
}
#endif
#ifdef INVALID_NUMBER_IN_DVD_MENU //XLJ2004-3-31
//invaild number keys during the short film in DVD menu, but need them available
//in choosing Menu, so use both is_menu() and HL_exist. heqiang, 2004-4-23 9:52
if(is_menu()&&(HL_exist!=1)&&(cd_type_loaded==CDDVD)&&(!(full_scrn&PROGRAM))&&(!(full_scrn&SETUP))&&(!(full_scrn&GOTO)))
{
invalid_key();
return;
}
#endif//INVALID_NUMBER_IN_DVD_MENU
#ifdef INVALID_NUMBER_IN_REPEAT//wuxiaofeng 2004-03-05
if(cd_type_loaded==CDDVD)//only for DVD use
{
if((rep_mode!=REPEAT_IDLE)||(rep_mode!=REPEAT_AB_IDLE))
{
invalid_key();
return;
}
}
#endif
#ifndef JPG_EFFECT
if ( Is_JPEG_SlideMode() ) return;
#endif
//3-12-9 19:04 NONO MARKED.uopdate dsp code.
// if((cd_type_loaded == CDDVD) && (coding_mode_now == AUDIF_CODING_MODE_DTS))
// setup_SetDTSDOWNMIXConfig();//3-11-25 22:55 zhangyu
#ifdef JPG_EFFECT
num_sel_in_jpg = 1;
#endif
#if defined(FAT_Write_UI)||defined(CF_CARD_WRITE)//||defined(WRITE_USB)//liweihua 2003-10-30 10:32
extern void input_name(int num);
extern BYTE input_flag;
if((full_scrn & PERIPHERAL) && (input_flag == 1))
{
if(num ==10)
invalid_key();
else
input_name(num);
return;
}
#endif
switch(play_state)//kenny 891009
{
case VCD_STATE_IDLE://for no disc
case VCD_STATE_OPEN:
if(!full_scrn)
invalid=1;
break;
case VCD_STATE_PREVIEW:
#ifdef DVD_PREVIEW_FUNCTION//terry,2004/2/7 07:11PM
if(cd_type_loaded!=CDDVD)
#endif
{
int max=cd_trk_hi-cd_trk_lo_now+1;
if(v11_trk_now >= cd_trk_lo_now+9*((int)(max/9)))
{
if(num> max%9)
invalid=1;
}
}
case VCD_STATE_9FRAMES:
if(num==0 || num==10)
invalid=1;
break;
} //end case
#if defined(SUPPORT_STATION_INPUT)//xyy 2004-5-24 just for xingqiu
if(system_state== SYSTEM_DOING_TUNER)
{
ir_select_number = num;
if(tuner_oper_mode!=FREQ_DIRECT_CALL)//xyy 2004-7-28
tuner_oper_mode = RECALL_OR_STORE;
if(ir_select_number == 10)
ir_select_number = 0;
tuner_func_input();
return;
}
#endif
#if defined(SUPPORT_POWER_OFF_CLOCK_FUNC)//xyy 2004-10-12
if(system_state==SYSTEM_DOING_CLOCK_FUNC)
{
ir_select_number = num;
if(ir_select_number == 10)
ir_select_number = 0;
ClockFuncInput();
return;
}
#endif
if(shuffle_flag)
invalid=1;
if(invalid)
{
invalid_key();
}else if(full_scrn&PROGRAM)
{
ir_select_number=num;
prog_func_input(num);
// }else if(full_scrn&READ)
// {
// read_func_input(num);
}else if(full_scrn&SETUP)
{
#ifdef SCRN_SAVER_WHEN_PAUSE//zhaoyanhua add 2004-2-17 17:48
//NOTE:
// add these code there to avoid the BUG:
// when Slide Show JPEG, ROTATE,then SETUP,enter password GUI
// when the number is more than two(such as "01"), it will excute SELECT 01
// OR appear the SCREEN saver.
// I don't know whether adding these codes like this is reasonable.
// But the result is correct.
// zhaoyanhua add 2004-2-17 17:53
extern UINT32 save_srn_start_t;
save_srn_start_t = get_rtc_val();//axel 2004/3/11 02:44pm
// save_srn_start_t = 0;
#endif//ifdef SCRN_SAVER_WHEN_PAUSE
ir_select_number=num;
setup_password();
#ifdef SHOW_STANDBY_TIMER //suqiaoli add 2003-8-5
setup_standby_timer_input();
#endif
}else if(full_scrn&GOTO) //kenny 2001/5/16
{
OSD1000ISP_STATUS(OSDISP_NUMGOTO, num);
#ifdef NEW_SEARCH_OSD
if(t_disp%10 ==1) // ren 910725
{ // ren 910725
ir_select_number=num;
search_func_input();
}
#else
#ifdef NEW_GOTO_TIME //wangfeng 2003-11-15 21:47
if((index_x==7)||(index_x==9)){
if(num<6)
ir_select_number=num;
else
return;
}
else
#endif
ir_select_number=num;
search_func_input();
#endif
}
#ifdef SUPPORT_FUNCTION_MENU
#ifdef SUPPORT_DISPLAY_MENU
else if(In_Goto_Menu() && (full_scrn&SETUP_PLUS))
{
setup_menu_plus_timer = DISPLAY_MENU_SHOW_TIME;
ir_select_number = num;
search_func_input();
ShowSetupPage_plus(MENU_REFRESH);
ir_select_number = 0;
}
#endif//end #ifdef SUPPORT_DISPLAY_MENU
#endif//#ifdef SUPPORT_FUNCTION_MENU
#ifdef NEWSTYLE_WINDOW //xiongyuyue 20030703
else if(full_scrn&MESSAGE)
{
ir_select_number=num;
browse_func_input();
}
#endif
#ifdef SUPPORT_REP_READ //Maoyong 2004.06.07
else if(IsReadSetPBTimes()){
ir_select_number = num;
read_func_input();
}
#endif
#ifdef DVB1000_OSD_MENU
else if(full_scrn&DVB_MENU){
ir_select_number = num;
pfnDvbInput();
}
#endif
else
#ifndef IR_10_PLUS
{
{
UINT8 max=2;
UINT8 f[10]={" ---"};
UINT8 jp=1;
#if defined(SUPPORT_CARD_STORAGE)||defined(SUPPORT_USB)||defined(SPHE8202_CARD_STORAGE)
if (media_type!=MEDIA_CARD) //wthsin, 2004/7/7 02:34pm
#endif
if(IsPBCOn() && (is_menu()==0)) //wanghaoying 2003-8-25 23:01
{
invalid_key();
return;
}
now_num_ns++;
ir_select_number=ir_select_number*10+num;
//printf("now_num_ns:%x num:%x ir_select_number:%x\n",now_num_ns,num,ir_select_number);
if(cd_type_loaded==CDROM)
{
UINT16 tt=mp3_file_count();
if(tt>=1000)//nono 2-7-15 9:47
max=4;
else if(tt>=100)
max=3;
else
max=2;
}
jp+=(max-now_num_ns);
if(jp>1)
{
f[jp]='%';
f[jp+1]='0';
f[jp+2]='0'+now_num_ns;
f[jp+3]='d';
f[jp+4]=0;
psprintf(RegionValStr[REGION1],f,ir_select_number);
PrintOsdMsg(STR_OS_SELECT,REGION1,1,1);
#ifdef SUPPORT_TUNER // add tuner 2-6-14 23:17
if(play_state!=VCD_STATE_POWER)
#endif
timeout_osd[REGION1]=150;//terry,0508, avoid waiting too long
}else
{
ir_num_select(ir_select_number);
}
return;
}
}
#else
{
if(num==10)
{
int max;
if(IsPBCOn() && (is_menu()==0)&&(play_state!=VCD_STATE_STOP)
#if defined(SUPPORT_CARD_STORAGE) || defined(SUPPORT_USB)||defined(SPHE8202_CARD_STORAGE)//liweihua add 2004-3-26
&& (media_type != MEDIA_CARD)
#endif
) //wanghaoying 2003-8-25 23:01
{
invalid_key();
return;
}
ir_10p=1;
ir_select_number+=10;
if (cd_type_loaded==CDROM)//nono 20040226 for nintaus
max=10000;
else if(cd_type_loaded==CDDVD)
max=1000;
else
max=100;
if(ir_select_number>=max)
ir_select_number=ir_select_number%max;
OSD1000ISP_STATUS(ir_select_number/10, num);
psprintf(RegionValStr[REGION1],"%02d+",ir_select_number);
PrintOsdMsg(STR_OS_SELECT,REGION1,1,1);
}
else
{
int x;
if(num==0)
{
if(ir_select_number>0)
x = ir_select_number+num;
else
{
#ifdef ONLY_0//for "0" &"10" not in a key.
x = 0;
#else
x = 10;
#endif
}
}
else
{
if(ir_select_number<10)
ir_select_number = 0;
x = ir_select_number + num;
}
#ifdef SUPPORT_MIDI_MENU_SEL
if(gIsMidiSelMenu)
{
ircmd_post_func(CMD_SELECT | (num));
return;
}
#endif
OSD1000ISP_STATUS(x/10, num);
#ifdef CONTINUOUS_NUM_KEY_SELECT
ir_num_timer = IR_NUM_TIMER;
{
if(ir_num_state == NUM_STATE0)
{
ir_num1 = x;
x = ir_num1;
ir_num_state = NUM_STATE1;
psprintf(RegionValStr[REGION1]," %d",ir_num1);
}
else if(ir_num_state == NUM_STATE1)
{
ir_num2 = x;
x = ir_num1*10+ir_num2;
ir_num_state = NUM_STATE2;
psprintf(RegionValStr[REGION1]," %d%d",ir_num1,ir_num2);
}
else if(ir_num_state == NUM_STATE2)
{
ir_num3 = x;
x = ir_num1*100+ir_num2*10+ir_num3;
ir_num_state = NUM_STATE3;
psprintf(RegionValStr[REGION1]," %d%d%d",ir_num1,ir_num2,ir_num3);
}
else if(ir_num_state == NUM_STATE3)
{
ir_num4 = x;
x = ir_num1*1000+ir_num2*100+ir_num3*10+ir_num4;
ir_num_state = NUM_STATE4;
psprintf(RegionValStr[REGION1]," %d%d%d%d",ir_num1,ir_num2,ir_num3,ir_num4);
}
else
{
ir_continuous_num_clr();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -