📄 preview.c
字号:
msf_saved[i] = addmsf_ss(msf, LAST_FRAME_TIME * i);
}
first = 0;
}
if(cd_trk_now > cd_trk_hi)
{
UISetNMNorm();
done = 4;
break;
}
/*
** setup framebuffer copy location
*/
msf = msf_saved[n];
#if CONFIG==CONFIG_COMBO_SVCD
if((cd_type_loaded == CDSVCD)||(vcd_b_pic_move_right==1))
#ifdef NINTAUS
if (vcd_b_pic_move_right==1)
PlayMSFPreview(xxx[n],yyy[n] + (IsAVDDisplayNTSC()? 6 : 18), msf, cd_trk_now);
else
PlayMSFPreview(sdram_xxx[n],sdram_yyy[n] + (IsAVDDisplayNTSC()? 6 : 18), msf, cd_trk_now);
#else
if (vcd_b_pic_move_right==1)
PlayMSFPreview(xxx[n], yyy[n] + (IsAVDDisplayNTSC()? 6 + (n / 3 + 4) * 1 : 18), msf, cd_trk_now); //wyf fixed SVCD disc NTSC 9frame osd bug 2-8-20 19:24.
else
PlayMSFPreview(sdram_xxx[n], sdram_yyy[n] + (IsAVDDisplayNTSC()? 6 + (n / 3 + 1) * 30 : 18), msf, cd_trk_now); //wyf fixed SVCD disc NTSC 9frame osd bug 2-8-20 19:24.
#endif
else
PlayMSFPreview(xxx[n], yyy[n] + (IsAVDDisplayNTSC()? 12 : 18), msf, cd_trk_now);
#else
PlayMSFPreview(xxx[n], yyy[n] + (IsAVDDisplayNTSC()? 12 : 18), msf, cd_trk_now);
#endif
if(SelectReady == C_FALSE)
{
timeout_playback = (100 * PREVIEW_TIME_FIRST) / 16; //init 15 sec,revise
PicStart = 1; //for play first picture
}
else
{
PicStart = 0; //set to none sense
if(v11_trk_now < cd_trk_hi)
timeout_playback = (100 * ((FRAME_TIME > PREVIEW_TIME) ? FRAME_TIME : PREVIEW_TIME)) / 16; //init sec,revise
else
timeout_playback = (100 * ((LAST_FRAME_TIME > PREVIEW_TIME) ? LAST_FRAME_TIME : PREVIEW_TIME)) / 16; //init sec,revise
}
preview_osd(n); //9frame
MediaMainLoop();
/*
** save status
*/
//msf_saved[n] = msf;
//addmsf_ss(msf,PREVIEW_TIME);
//psprintf(linebuf, "func %x\n", sys_cmd);
// epp_write(linebuf);
if(GetCmdType(sys_cmd) == CMD_FUNC)
{
switch (GetCmdSrc(sys_cmd))
{
case CMD_FUNC_STOP:
remkey_timer = T1SECOND; //ZHX 080703 clear OSD
done = 4; //exit now
break;
case CMD_FUNC_OPEN:
#ifdef POWER_KEY //zhyf test 2-9-11 20:42
case CMD_FUNC_POWER:
#endif
done=4;
break;
case CMD_FUNC_PREVIEW:
case CMD_FUNC_9FRAMES:
case CMD_FUNC_PLAY:
//UISetNMNorm();//move to end
//?play_state = VCD_STATE_NORMAL;
done = 2;
break;
case CMD_FUNC_NEXT:
if(cd_trk_now < cd_trk_hi)
{
cd_trk_now++;
s_msf = gettrkmsf(cd_trk_now);
first = 1;
SelectReady = C_FALSE;
goto frame_start;
}
break;
case CMD_FUNC_PREV:
if(cd_trk_now > cd_trk_lo_now)
{
cd_trk_now--;
s_msf = gettrkmsf(cd_trk_now);
first = 1;
SelectReady = C_FALSE;
goto frame_start;
}
break;
case CMD_FUNC_GAME:
play_state = VCD_STATE_STOP;
done = 2;
break;
case CMD_FUNC_TIMEOUT:
if(GetIntrFlag() & INTR_TRACK_CHANGE)
{
cd_trk_now++;
s_msf = gettrkmsf(cd_trk_now);
first = 1;
goto frame_start;
}
else //if(GetIntrFlag()&INTR_TIMEOUT)//jhuang mark 2002/4/2
{
n++;
if(n == 9)
{
SelectReady = C_TRUE;
}
if(n > 9)
{
n = 0;
}
}
break;
}
}
else if(GetCmdType(sys_cmd) == CMD_IR_SELECT) //9
{
SelectReady = C_TRUE;
n = GetCmdSrc(sys_cmd) - 1;
#ifdef DIRECT_PLAY_9FRM
msf=msf_saved[GetCmdSrc(sys_cmd)-1];
done=3;
break;
#endif
}
}
} while(!done);
//epp_write("OUT 9frames ....\n");
osd_init();
switch (done)
{
case 3:
psprintf(RegionValStr[REGION1], " %d", GetCmdSrc(sys_cmd));
PrintOsdMsg(STR_OS_SELECT, REGION1, 1, 1, CH_N);
s_msf = msf; //local saved msf copy to s_msf
break;
case 2:
//PrintOsdMsg(STR_OS_9FRAME_CNL,REGION1,1,0,CH_N);
#ifdef NINTAUS
s_msf = msf_saved[n]; //jack
#endif
PrintOsdMsg(STR_OS_PLAY, REGION1, 1, 0, CH_N);
remkey_timer = T4SECOND; //ZHX 080703 clear OSD
break;
case 1:
ClearCommand();
break;
case 4:
//PrintOsdMsg(STR_OS_STOP,REGION0,1,0);
break;
}
UISetNMNorm();
///reset_servo_cdpt = 0;
SelectReady = C_FALSE; //global var.
return 0;
#else
return 0;
#endif // IR_PREVIEW_ON
}
/*
** intro_navigation
**
*/
int intro_navigation(void)
{
#ifdef IR_INTRO_ON
int done;
#ifdef MONE_PREVIEW_NAVIGATION
epp_write_slow("INTRO navigation\n");
#endif
done = 0;
cd_trk_now = cd_trk_lo_now;
do
{
ClearCommand();
PlayTrack(cd_trk_now);
//psprintf(RegionValStr[REGION2], " %d:%d", trk_start, trk_end);
//PrintOsdMsg(STR_OS_PLAY, REGION2, 10, 1, CH_N); //ZHX 100803 test
if((cd_type_loaded!=CDDA)&&(cd_trk_now==2||cd_trk_now==cd_trk_hi)
&&(trk_end-trk_start < PREVIEW_TIME+5))//First trk and last trk less than 10s
timeout_playback = (100 * 8) / 16; //ZHX 100803
else
timeout_playback = (100 * PREVIEW_TIME) / 16;
//timeout_playback = 0;
UISetNMIntro(); //ZHX 063003
intro_osd_flag = 1; //ZHX 063003
if(cd_type_loaded==CDDA)
psprintf(RegionValStr[REGION1], " %d", cd_trk_now);
else
psprintf(RegionValStr[REGION1], " %d", cd_trk_now-1);
PrintOsdMsg(STR_OS_INTRO, REGION1, 1, 1, CH_N);
MediaMainLoop();
if((GetCmdType(sys_cmd)) == CMD_FUNC)
{
switch (GetCmdSrc(sys_cmd))
{
case CMD_FUNC_STOP:
done = 2;
break;
#ifdef POWER_KEY //huziqin 2002-11-22
case CMD_FUNC_POWER:
done=4;
break;
#endif
case CMD_FUNC_PRG:
case CMD_FUNC_OPEN:
done = 4;
break;
case CMD_FUNC_PREVIEW:
case CMD_FUNC_9FRAMES: //ZHX 100803 move
case CMD_FUNC_INTRO://move this case ,add clear norm_mode.wangbin 2003-05-14
UISetNMNorm();
case CMD_FUNC_RESUME: //kenny 891006
case CMD_FUNC_PLAY:
//?if(rep_mode == REPEAT_TRACK)
//? rep_track = cd_trk_now;
done = 2;
PrintOsdMsg(STR_OS_INTRO_CANCEL, REGION1, 1, 0, CH_N);
break;
case CMD_FUNC_PBC://wangbin add it for skip out 03-03-21
done = 4;
break;
case CMD_FUNC_NEXT:
if(cd_trk_now < cd_trk_hi)
{
//?if(rep_mode!=REPEAT_TRACK)
cd_trk_now++;
//?if(play_state!=VCD_STATE_INTRO)
//??/done=4;
}
else
{
//UIsetState(VCD_STATE_STOP);
PrintOsdMsg(STR_OS_STOP, REGION1, 1, 0, CH_N);
if (cd_type_loaded!=CDDA)
remkey_timer = 50; //ZHX 100803
play_state = VCD_STATE_STOP;
done = 2;
}
break;
case CMD_FUNC_PREV:
if(cd_trk_now > cd_trk_lo_now)
{
//if(rep_mode!=REPEAT_TRACK)
cd_trk_now--;
}
//?if(play_state!=VCD_STATE_INTRO)
//? done=4;
break;
case CMD_FUNC_TIMEOUT:
#if 0 //VFD_DRIVER!=SPL10 //zhg 2002/10/16
if(GetIntrFlag() & INTR_SKIP_INTRO)
{
timeout_playback = 0;
}
#endif
#if VFD_DRIVER==SPL10
if( /*(!(IsNMIntro()))&& */ (IsNMRanReady()))
{
ircmd_shuffle();
cd_trk_now = shuffle_trk;
// psprintf(linebuf,"%x\n",shuffle_trk);
// epp_write(linebuf);
done = 2;
break;
}
#endif
//if(rep_mode==REPEAT_IDLE)
if((rep_mode != REPEAT_DISC) && (rep_mode != REPEAT_TRACK))
{ //zhyf modified it for intro func 02/10/22
if(play_state != VCD_STATE_BACKWARD)
{
if(cd_trk_now == cd_trk_hi)
{
play_state = VCD_STATE_STOP;
PrintOsdMsg(STR_OS_STOP, REGION1, 1, 0, CH_N);
if (cd_type_loaded!=CDDA)
remkey_timer = 50; //ZHX 100803
done = 2;
}
else
{
cd_trk_now++;
}
}
}
else if(rep_mode == REPEAT_DISC)
{
if(play_state != VCD_STATE_BACKWARD)
{
if(cd_trk_now == cd_trk_hi)
cd_trk_now = cd_trk_lo_now;
else
cd_trk_now++;
}
}
if(play_state == VCD_STATE_FORWARD ||
play_state == VCD_STATE_BACKWARD)
{
adv_search_time = 0;
PrintOsdMsg(STR_OS_PLAY, REGION1, 1, 0, CH_N);
play_state = VCD_STATE_NORMAL;
done = 4;
}
// if(IsNMIntro())//在上面设置了此状态,才能识别INTRO,这里要挡掉要不INTRO只执行一次。WB
// done = 4;
break;
default:
cd_trk_now++;
break;
}
}
else if((sys_cmd & 0xff00) == CMD_IR_SELECT)
{
cd_trk_now = cd_trk_lo_now + (sys_cmd & 0xff) - 1;
//if(rep_mode==REPEAT_TRACK)
// rep_track=cd_trk_now;//disable jhuang pbc off table
play_state = VCD_STATE_NORMAL; //must needed
done = 3;
break;
}
} while(!done);
switch (done)
{
case 3:
PrintOsdMsg(STR_OS_SELECT, REGION1, 1, 1, CH_N);
case 2:
// PrintOsdMsg(STR_OS_INTRO_CNL,REGION1,1,0,CH_N);
case 1:
ClearCommand();
break;
case 4:
//PrintOsdMsg(STR_OS_STOP,REGION0,1,0);
break;
}
UISetNMNorm();
intro_osd_flag = 0; //ZHX 063003
return 0;
#else
return 0; //Tony added 02/05/06 prevent from warning,
//control reaches end of non-void function, at compiling time
#endif //#ifdef IR_INTRO_ON
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -