📄 ircmd.c
字号:
if( (!speed_chg_end) && (shock_state & SHOCK_ENABLE) )
{
return;
}
esp.show_time = 0;
if(shock_state & (SHOCK_PAUSE))
{
shock_state &= (~(SHOCK_PAUSE)); //pause release //kevinlu 2002/9/24 11:18AM
ircmd_play();
}
#endif
#ifdef IR_SHUFFLE_ON
if(IsKYRand())
ircmd_cancel(RAND_CNL); //ClrKYRand();
#endif
if(IsKYProg())
{
#if VFD_DRIVER==SPL10 //zhg 2002/10/16
if((cd_type_loaded != CDDA) && (cd_type_loaded != CDROM))
prog_func_input(num);
#else
#ifdef DIGITAL_DIRECT_SELECT
direct_p5_flag = 0;
direct_p10_flag = 0;
#endif
prog_func_input(num);
#endif
}
else if(IsKYGoto())
{
ir_select_number = num;
goto_func_input();
}
#ifndef DIGITAL_DIRECT_SELECT
#ifdef IR_5_PLUS
else if(num == 10 || num == 11)
#else
else if(num == 10)
#endif
{
irkey_timer = T5SECOND;
#ifdef IR_5_PLUS
if(num == 10)
#endif
ir_select_number += 10;
#ifdef IR_5_PLUS
else
#ifdef P3_IN_P5
ir_select_number += 3;
#else
ir_select_number += 5;
#endif
#endif
if(cd_type_loaded == CDROM)
#ifdef MP3_SELECT_MORE//TECOBEST FZH 2003.03.06
tmp_num = Gmem.gmp3.iso9660_file_cnt;//wangbin for direct select mp3 file.03-03-14
#else
tmp_num = file_in_dir; //wyf 2-4-27 11:17
#endif
else
#ifdef SUPPORT_OLD_NES_DISC
if((bDiscType & NES_DISC) && (cd_type_loaded == CDVCD20))
tmp_num = 20;
else
#endif
tmp_num = cd_total_trk();
if(ir_select_number > tmp_num) //vcd 10+ large than selectable number
{
if(IsPBCOn()&&(ir_select_number<Gmem.s.nos))
{
psprintf(RegionValStr[REGION1], " %d+", ir_select_number);
PrintOsdMsg(STR_OS_SELECT, REGION1, 0, 1, CH_N);
}
else {
ir_select_number = 0;
invalid_key();
}
//return;
}
else
{
psprintf(RegionValStr[REGION1], " %d+", ir_select_number);
PrintOsdMsg(STR_OS_SELECT, REGION1, 0, 1, CH_N);
}
}
#endif
else
{
#ifdef DIGITAL_DIRECT_SELECT
if(IsPBCOn())
upper_selection_limit = Gmem.s.nos;
else if(IsNMPreview() || IsNM9frame())
upper_selection_limit = 9;
else if(cd_type_loaded == CDROM)
upper_selection_limit = Gmem.gmp3.iso9660_file_cnt;
else
upper_selection_limit = cd_total_trk();
if(ir_select_number) {
if(direct_p5_time||(direct_p10_time && direct_p10_flag))
ir_select_number = ir_select_number + num;
else
ir_select_number = ir_select_number*10 + num;
}
else ir_select_number = num;
if(!ir_select_number&&!num)
ir_select_number = 10;
if(direct_p10_flag && (upper_selection_limit <= ir_select_number*10))
ir_select_number = ir_select_number*10;
if(upper_selection_limit < ir_select_number) {
ir_select_number = 0;
invalid_key();
return;
}
else if(upper_selection_limit >= ir_select_number * 10) {
if(direct_p10_flag) {
psprintf(RegionValStr[REGION1], " %d+", ir_select_number*10);
PrintOsdMsg(STR_OS_SELECT, REGION1, 1, 1, CH_N);
direct_p10_flag = 0;
direct_p10_time = 0xff;
}
else if(direct_p5_flag) {
psprintf(RegionValStr[REGION1], " %d+", ir_select_number);
PrintOsdMsg(STR_OS_SELECT, REGION1, 1, 1, CH_N);
direct_p5_flag = 0;
direct_p5_time = 0xff;
}
else {
psprintf(RegionValStr[REGION1], " %d", ir_select_number);
PrintOsdMsg(STR_OS_SELECT, REGION1, 1, 1, CH_N);
}
direct_time = 0xff;
return;
}
else {
if(direct_p5_flag) {
psprintf(RegionValStr[REGION1], " %d+", ir_select_number);
PrintOsdMsg(STR_OS_SELECT, REGION1, 1, 1, CH_N);
direct_p5_flag = 0;
direct_p5_time = 0xff;
return;
}
Res = ircmd_post_func(CMD_IR_SELECT | (ir_select_number));
if(Res) {
Chg2PlayMd();
if(IsNMPreview() || IsNM9frame())
remkey_timer = T4SECOND;
UISetState(VCD_STATE_NORMAL);
psprintf(RegionValStr[REGION1], " %d", ir_select_number);
PrintOsdMsg(STR_OS_SELECT, REGION1, 1, 1, CH_N);
#ifdef IR_INTRO_ON
intro_osd_flag=0;
#endif
}
direct_time = 0;
direct_p5_flag = 0;
direct_p5_time = 0;
direct_p10_flag = 0;
direct_p10_time = 0;
ir_select_number =0; //Clear all value
}
#else
if(num == 0)
{
if(ir_select_number > 0)
tmp_num = ir_select_number + num;
else
tmp_num = 10;
}
else
tmp_num = ir_select_number + num;
/* check IR select number range */
if(cd_type_loaded == CDROM)
{
ir_select_number = tmp_num; ///???? still nedd to check valid or invalid
#ifdef MP3_SELECT_MORE//TECOBEST FZH 2003.03.06
if(ir_select_number > Gmem.gmp3.iso9660_file_cnt)//wangbin for direct select mp3 file.03-03-14
#else
if(ir_select_number > file_in_dir) //Jack add 2-7-29 17:58.
#endif
{
ir_select_number = 0;
invalid_key();
return;
}
}
else
{
/*tmp_num finally assign to ir_select_number */
ir_select_number = tmp_num;
/*change tmp_num to real track to check valid or invalid */
tmp_num += (cd_trk_lo_now - 1);
#ifdef MONE_IR_SELECT
psprintf(linebuf, "-----issue inIR:%x tmpIR:%x\n", ir_select_number,
tmp_num);
epp_write_wait(linebuf);
#endif
if(!IsPBCOn())
{
/**Story Disc preview/9frames can select**/
if(!IsNMPreview() && !IsNM9frame())
{
if((tmp_num < cd_trk_lo_now) || (tmp_num > cd_trk_hi))
{
#ifdef MONE_IR_SELECT
epp_write("[1]Select Number over range\n");
#endif
//PrintOsdMsg(STR_OS_NO, REGION1, 1, 0, CH_N);
ir_select_number = 0;
invalid_key();
return;
}
GotoSkipFrm = 4; //jhuang 2-6-16 move from below
}
else if(IsNMPreview())
{
//if((tmp_num<cd_trk_lo_now)||(tmp_num>cd_trk_hi))
if((ir_select_number < 1) || (ir_select_number > 9) ||
(((ir_select_number - 1) + base_track) > cd_trk_hi))
{
#ifdef MONE_IR_SELECT
epp_write("[2]Select Number over range\n");
#endif
//PrintOsdMsg(STR_OS_NO, REGION1, 1, 0, CH_N);
ir_select_number = 0;
invalid_key();
return;
}
}
else if(IsNM9frame())
{
if((ir_select_number < 1) || (ir_select_number > 9)) //jhaung 2002/3/15
{
#ifdef MONE_IR_SELECT
epp_write("[3]Select Number over range\n");
#endif
//PrintOsdMsg(STR_OS_NO, REGION1, 1, 0, CH_N);
ir_select_number = 0;
invalid_key();
return;
}
}
//GotoSkipFrm = 4;//jhuang 2-6-16 move to above
}//end if(!IsPBCOn())
}
#ifdef SUPPORT_ESP//BBK_TEST
if((CheckUIState(VCD_STATE_PAUSE)) && (cd_type_loaded == CDDA))
{
regs0->cddsp_status = 0;
SET_CDDSP_VX(0);
SET_CDDSP_VY(0);
cbv_x = 0;
cbv_y = 0;
}
#endif
Res = ircmd_post_func(CMD_IR_SELECT | (ir_select_number));
if(Res) //if invalid in ircmd_post_func(),ir_select_num=0
{
Chg2PlayMd(); //jhuang 2002/3/15 09:20PM
if(IsNMPreview() || IsNM9frame())
remkey_timer = T4SECOND; //ZHX 062403 clear OSD
UISetState(VCD_STATE_NORMAL);
psprintf(RegionValStr[REGION1], " %d", ir_select_number);
PrintOsdMsg(STR_OS_SELECT, REGION1, 1, 1, CH_N);
#ifdef IR_INTRO_ON
intro_osd_flag=0; //ZHX 032903
#endif
}
#ifdef USE_PP5_KEY
if (pp5_flag > 1)
pp5_flag = 0;
#endif
ir_select_number = 0;
#endif
}
}
void ircmd_n(BYTE num)
{
#ifdef MONE_IRCMD
psprintf(linebuf, "SELECT %d\n", num);
epp_write_wait(linebuf);
#endif
ircmd_select_number(num);
}
/*
** FUNCTION
**
** DESCRIPTION
**
*/
void ircmd_p10(void)
{
#ifdef MONE_IRCMD
epp_write_wait("SELECT 10+\n");
#endif
ircmd_select_number(10);
}
/*
**ZHX 070303 Add ircmd_pp5()
*/
#ifdef USE_PP5_KEY
void ircmd_pp5(void)
{
pp5_flag ++;
if (pp5_flag == 1)
#ifdef P3_IN_P5 //ZHX 122503
ircmd_select_number(3);
#else
ircmd_select_number(5);
#endif
else
ircmd_select_number(11);
}
#endif
/*
** FUNCTION
**
** DESCRIPTION
**
*/
void pbcon_init()
{
ClearPSDList(); //psd_st.psd_list_id = 0x0;
CLR_PSD_STATE(); //ready to exit psd browser and enter again
bPbcOff = C_FALSE; //jhuang 2002/3/5
PbcBlackEnable = C_FIRST_TIME; //jhuang 2002/4/21 for pbc off play->pbc on config
/*
*** clear play mode
*/
config_play_mode(CLEAR_ALL);
ircmd_post_func(CMD_FUNC | CMD_FUNC_PBC);
switch_to_menu = 1;
#ifdef MONE_IRCMD
epp_write_wait("PBC OFF init\n");
#endif
}
/*
** FUNCTION
**
** DESCRIPTION
**
*/
void pbcoff_init()
{
PbcBlackEnable = 0;
PlaySeg = play_hires = 0; //Joseph 20021226 modify for reset play_hires
InvalidPSDList();
//#ifdef START_UP_PBC_ON
//We found TRACK can be usded as SELECTION LIST
if(!CheckUIState(VCD_STATE_STOP) && IsPLAY_TRK()) // Joseph 20021114 roll back to previous setting
//if(!CheckUIState (VCD_STATE_STOP) && ((!IsPLAY_LIST())&&(!IsPLAY_TRK())) )
// Joseph 20021111 merge JJding's Code
//if(!CheckUIState (VCD_STATE_STOP) && ((!IsPLAY_LIST())&&(!IsPLAY_TRK()))&&(cd_type_loaded!=CDDA))
{
ircmd_callback_check = NULL;
bPbcOff = C_TRUE;
#ifdef MONE_IRCMD
epp_write_wait("[1]PBC OFF init(NOT Post Cmd)\n");
#endif
}
else
//#endif /* */
{
//SetIntrFlag (GetIntrFlag () | INTR_IRKEY);//JJDing remarked.
//AVD_SetMediaInterrupt (); //JJDing remarked.
#ifdef MONE_IRCMD
epp_write_wait("[2]PBC OFF init(Post Cmd)\n");
#endif
ircmd_post_func(CMD_FUNC | CMD_FUNC_PBC);
}
CLR_PSD_STATE(); //psd_state = 0;
}
/*
** FUNCTION
**
** DESCRIPTION
**
*/
void ircmd_playmode_toggle(void) //jhuang reduce 2002/4/12
{
#if CONFIG==CONFIG_COMBO_VCD
if(vpp_disable_video) //For EDO MENU Green Issue By Gary 92.07.31
{
invalid_key();
return;
}
#endif
#ifdef MONE_IRCMD
epp_write_wait("CMD PBC\n");
#endif
//if(bDiscType & NES_DISC)//jhuang 2002/9/12 move to irdef.h
//return;
#ifdef IR_INTRO_ON //ZHX 062903
intro_osd_flag = 0;
#endif
//Tony added 020510
#ifdef IR_FDFC_ON //jhuang 2002/5/17
if(!IsFDFC_STOP())
{
//UISetFDFC_STOP();
FDFC_OFF(C_OFF); //jhuang 2002/9/11
//rep_ab_mode = REPEAT_AB_IDLE;//jhuang reduce FDFC//2002/9/5
//AVAPI_control(C_WRITE,AVAPI_FDFC_STOP,0);//jhuang reduce FDFC//2002/9/5
}
#endif
#ifdef IR_SCORE_ON
if(score_status != SCORE_STOP) //zhyf (use wyf) 2-8-14 16:37 PBCON play -->(score-->return OFF SCORE).
{
score_status = SCORE_R;
PrintOsdMsg(STR_OS_NULL, REGION0, 1, 0, CH_N); //zhyf score 消失慢 2-8-14 16:20
PrintOsdMsg(STR_OS_NULL, REGION1, 1, 0, CH_N);
ircmd_score();
}
#endif
if((cd_type_loaded == CDVCD20) || (cd_type_loaded == CDCVD) ||
(cd_type_loaded == CDSVCD))
{
Chg2PlayMd(); //jhuang reduce 2002/4/12
if(CheckUIState(VCD_STATE_STOP)) //copy form 702 stop navigation//don't move position
UISetState(VCD_STATE_NORMAL);
if(IsPBCOn())
{
if(psd_state == 0) //磷
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -