ircmd_num.c
来自「凌阳8202T的红外接收代码及LED屏的驱动代码」· C语言 代码 · 共 1,120 行 · 第 1/3 页
C
1,120 行
flag_input = 1 ;
ir_num_select(sel_num) ;
flag_input = 0 ;
if( ir_select_number == 0)
{
ir_select_number = sel_num -10;
}
}
#endif//#ifdef SUPPORT_IR10P_LIMIT
#ifdef OSD_SPECIAL_MENU
if(num==0)
OSD1000ISP_STATUS(ir_select_number/10,num+0xfa);
else
#endif
OSD1000ISP_STATUS(ir_select_number/10, num);
#ifdef SHOW_NUM_AND_UNDERLINE
psprintf(RegionValStr[REGION1],"%01d-",ir_select_number/10);
#else
psprintf(RegionValStr[REGION1],"%02d+",ir_select_number);
#endif
#ifdef PUSH_P10_LONG_DISPLAY
if(ir_select_number == 10) //zxb 2005-5-8 13:48
PrintOsdMsg(STR_OS_SELECT,REGION1,5,1);
else
#endif
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;
#ifdef ALCO_DVD_UI
if(!x)
{
ir_continuous_num_clr();
invalid_key();
return;
}
else
#endif
{
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();
invalid_key();
return;
}
}
PrintOsdMsg(STR_OS_SELECT,REGION1,1,1);
//psprintf(RegionValStr[REGION2]," %d%d%d----%d",ir_num1,ir_num2,ir_num3 ,x);
//PrintOsdMsg(STR_OS_OPEN,REGION2,1,1);
if(x)
#endif //end #ifdef CONTINUOUS_NUM_KEY_SELECT
#ifdef PMP_DVD
{ //kenny 2005/8/3
if(pFsJpeg->gifsState == FS_STATE_OTHER||pFsJpeg->gifsState == FS_STATE_JPEG)
{
if(x <= mp3_file_count())
{
dvd_title=x;
pmp_enable_user_flag(PMP_USER_ENTER_SEARCH_TRACK);
ircmd_post_func(CMD_FUNC | CMD_FUNC_TIMEOUT);
}
else
{
ir_select_number=0;
invalid_key();
}
}
else
HDDCard_number_input(x);
}
#else
ir_num_select(x);
#endif
#ifdef CONTINUOUS_NUM_KEY_SELECT
if(ir_num_timer)
return;
#endif
resumeMSF=0;//wanghaoying 2003-11-5 10:40
}
return;
}
#endif
ir_select_number = 0;
#endif//MAKE_ONLY_UPDATE_CODE:20050305 linrc only for make romA.bin(BootLoad).
}
void init_ir_num(void)
{
ir_10p=0;
ir_select_number=0;
now_num_ns=0;
}
void ir_num_select(int x)
{
#ifdef SUPPORT_MP3_ENCODER //qinhua ,add,because at this time must switch DSP code when close file,2005-11-29 21:52
if(cd_type_loaded == CDDA)
{
if((pre_ripping_flag)||((mp3_encoder_state == test_write_data)&&(recNew<1)))
{
invalid_key();
return;
}
#ifndef CD_DIRECT_RIPPING
ripping_flag=0;
#endif
stop_current_ripping();
}
#endif
#ifdef STOP_NO_DIR_SELECT//libing 2005-4-28 9:18
if(play_state==VCD_STATE_STOP)
{
invalid_key();
return;
}
#endif
#ifndef MAKE_ONLY_UPDATE_CODE//MAKE_ONLY_UPDATE_CODE:20050305 linrc only for make romA.bin(BootLoad).
#ifdef MOVE_HIGH_LIGHT_IN_PROG_MODE
if((!full_scrn)&&(cd_type_loaded== CDROM)){ //wsf 2004-7-20 14:55 changed for cancel program when select other ,just in CDROM DISC
if(!Is_OTHER_STATE()){
prog_cnt=0;
prog_func_off();
prog_func_clear();
}
}
#endif
int dir_num;
#ifdef IRCMD_DBG
printf("================= ir_num_select (%x) =================\n",x);
#endif
#ifdef SUPPORT_TUNER // add tuner 2-6-14 23:17
if(play_state==VCD_STATE_POWER)
{
ir_select_number= x;
psprintf(RegionValStr[REGION1]," %02d",ir_select_number);
PrintOsdMsg(STR_OS_SELECT,REGION1,1,1);
}
else
#endif
/* BEGIN: Added by XLLUO, 2007/3/3 */
#ifdef SUPPORT_FILEKOK
extern BYTE g_scIsMp4Karaoke;
if (g_scIsMp4Karaoke)
{
ircmd_post_func(CMD_SELECT | x);
return;
}
else
#endif /* SUPPORT_FILEKOK */
/* END: Added by XLLUO, 2007.3.3 */
{
if (cd_type_loaded==CDROM)
{
ir_select_number = x;
//wangap add if the dir_num is mp3 or jpeg or game 2003/12/22
// yltseng 2004/04/12, use relative method to access pFsJpeg->count_dir
if( pFsJpeg->gifsFuncBtn != FS_FUNC_IDLE )
dir_num = pFsJpeg->count_dir[ pFsJpeg->gifsFuncBtn - FS_FUNC_MP3 ];
else
dir_num = 0;
//wanghaoying changed 2003-12-4 17:14
//Focus in dir-area, the number must be less than the total dir count
//Focus in file-area, the number must be less than the total file count of the dir
if((pFsJpeg->ControlArea==CNT_AREA_FILE)&&(ir_select_number > mp3_file_count()))
ir_select_number = 0;
if((pFsJpeg->ControlArea==CNT_AREA_DIR)&&(ir_select_number > dir_num))
ir_select_number = 0;
if (play_state==VCD_STATE_STOP)
{
if (ir_select_number > mp3_file_count()) //Maoyong 2004.03.10
ir_select_number = 0;
else
{
resumeMSF = 0;
pFsJpeg->file_current = ir_select_number;
}
}
// 2004/04/13 yltseng mark, it's no need now
/*
#ifdef SUPPORT_FILE_SYSTEM_MODE // Robert 021007
if (IsOtherStatePlayMode())
ir_select_number = 0;
#endif
*/
}else
{
#ifdef MIX_CDMP3_DISC_DISPLAY_REAL_CD_TRK //linrc add 2004-10-29 11:20
/*when play the cd+mp3 disc(ABEX TEST CD 786),it display the real CD TRK*/
if((cd_type_loaded == CDDA)&&((pFsJpeg->cdrom.track_info[1]&0x40000000) == 0x40000000))
{
ir_select_number = x-1;
x += (cd_trk_lo_now-2);
}
else
#endif
{
ir_select_number = x;
x += (cd_trk_lo_now-1);
}
if(cd_type_loaded!=CDDVD)
{
if(!IsPBCOn()||(play_state==VCD_STATE_STOP))
{
if(((x<cd_trk_lo_now)||(x>cd_trk_hi))&&(play_state!=VCD_STATE_9FRAMES))
{
ir_select_number=0;
}
}
}
#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())
{
if(((psdList.s.bsn==1)&&x<psdList.s.bsn) || (x>(psdList.s.bsn+psdList.s.nos)))
{
ir_continuous_num_clr();
//ir_select_number = 0;//jack mark it.when merge alco code.
}
}
else if(cd_type_loaded==CDDVD)
{
//if(is_menu()&&(HL_exist==1))
{
if((x>get_tt_info(DISP_CH_Ns)) && (x>get_tt_info(DISP_TT_Ns)))
{
ir_continuous_num_clr();
//ir_select_number = 0;
}
}
}
}
#endif
}
/***************************/
//Add the code for judge the input and the file count in the dir(when repeat dir and repeat 1!!).
#ifdef NUMBER_SELECTION_WHEN_REPEAT //wuxiaofeng add for Minton 2004-03-10
if(cd_type_loaded == CDROM)
{
if( ( (rep_mode==REPEAT_TRACK)//prevent inputing other track
&&(ir_select_number!=disp_trk_now) )//except the current track
||((rep_mode==REPEAT_DIRECTORY)//prevent inputing other directory
&&((ir_select_number > pFsJpeg->first_mp3_seq+pFsJpeg->file_specify_in_dir)//except the current directory
||(ir_select_number < pFsJpeg->first_mp3_seq+1)) )
)
ir_select_number=0;
}
#endif//#ifdef NUMBER_SELECTION_WHEN_REPEAT
/***************************/
#ifdef SUPPORT_IR10P_LIMIT//tianye 200607
if (flag_input)
{
//printf( "SUPPORT_IR10P_LIMIT return /n" );
return ;
}
#endif//#ifdef SUPPORT_IR10P_LIMIT
if(ir_select_number)
{
#ifdef TCL_DIRECT_SELECT_CHAPTER// 2004-3-22 14:20 lijd
if(cd_type_loaded==CDDVD)
{
dvd_title = get_tt_info(DISP_TT);
dvd_chapter=get_tt_info(DISP_CH_Ns);
if(ir_select_number<=dvd_chapter)
{
dvd_chapter = ir_select_number;
if(dvd_title == 0)
{
dvd_title = 1;
ircmd_post_func(CMD_FUNC|CMD_FUNC_PLAY );
}
else
{
ircmd_post_func(CMD_FUNC|CMD_FUNC_PLAY );
}
}
else
{
invalid_key();
return;
}
}
else
#elif defined(DVD_DIRECT_SELECT_CHAPTER)&&defined(ONLY_ONE_CHAPTER_SELECT_TITLE) //yaowh add.2005-10-9 11:12
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?