📄 cd_ctrl_play.c
字号:
/******************************************************************************/
/* [NAME] :CDCtrl_PLAY */
/* [OUTLINE]: */
/* [HISTORY]: */
/* [NOTE] :TAB=4 */
/******************************************************************************/
//#include <machine.h> /* Z80梡 */
#include "BU18703.h" /* CPU儗僕僗僞掕媊 */
#include "prototype.h"
#include "extern.h"
#include "mcal.h"
#include <string.h>
/*----------------------------------------------------------------------------*/
void CDCtrl_OrderToSetSpeed( void ); // YTC_20041228
extern SINT32 esp_wqok;
//==============================================================================
// TASK PLAY
//==============================================================================
// SDC 20041214
/*----------------------------------------------------------------------------*/
/* [NAME] :CDCtrl_PlayTitle */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
/*#if ROM // SDC 20050205
void CDCtrl_PlayTitle( void )
#else
UINT08 CDCtrl_PlayTitle( void )
#endif
{
// UINT16 PlayTitleMP3;
#if !ERR_DETECT // SDC 20041224
static UINT08 SCC_BF;
#endif
UINT08 CMD_PLAY_TITLE;
UINT08 fat_data[32];
UINT16 nUDF_FILES;
UINT16 i;
#if !SAVE1TRK
UINT08 slot; // SDC 20050118
#endif
// TEST Output CLV Status
// YTC_20041228 >>>
// DrvDSP_BIOS_WriteReg( 0xB0, 0x07 ); // TEST
// DrvDSP_BIOS_WriteReg( 0xB1, 0x01 ); // TEST
// DrvDSP_BIOS_WriteReg( 0xB6, 0x00 ); // TEST
// DrvDSP_BIOS_WriteReg( 0xB9, 0x00 ); // TEST
// <<<
// 慜張棟
switch( stInfoArea.PlayType )
{
case TYPE_ESP :
if( gu08_scc_PlayTitle > 1 ) // SDC 20041228
DrvDSP_CtrlESP( ); // Driver憌屇弌偟
CMD_PLAY_TITLE = CMD_PLAY_TITLE_ESP; // 慡廋惓屻嶍彍 DELPOINT
break;
#if CDx1
case TYPE_CD :
CMD_PLAY_TITLE = CMD_PLAY_TITLE_CD; // 慡廋惓屻嶍彍 DELPOINT
break;
#endif
case TYPE_MP3 :
// 僪儔僀僶憌偺屇傃弌偟
#if ID3TAG // SDC 20050213
if( !gu08_scc_Search || !( mp3Ctl.PLAY[gu08_num_Slot].flgs & BIT_ID3V2_END ))
#else
if( !gu08_scc_Search ) // sdc
#endif
{
// MP3Ctrl_ctrl_mute(); //YTC002 MP3 mute惂屼
// MP3Ctrl_WriteProc( ); //壓埵module 彂崬張棟偼嫟捠偱巊偆丅
if(gu08_sts_UDFDISC == 0)
{
// MP3Ctrl_PlayProc( 0 ); //忋埵module
#if !SAVE1TRK // SDC 20050124
// MP3Ctrl_PlayProc( 1 ); //忋埵module
#endif
}
else
{ //nUDF
#if ROM // SDC 20050205
// MP3Ctrl_PlayProcUDF( ); //n倀俢俥梡嵞惗張棟 堦嬋偢偮嵞惗偡傞偟偐側偄丅
#else
// MP3Ctrl_PlayProc( 0 );
#endif
}
}
CMD_PLAY_TITLE = CMD_PLAY_TITLE_MP3; // 慡廋惓屻嶍彍 DELPOINT
break;
}
switch ( gu08_scc_PlayTitle )
{
case 1: //梫媮庴晅張棟 STOP->PLAY | PLAY->PLAY(=SKIP) ,PLAY(P.Save拞)->PLAY
// also MP3->ESP
// SDC 20050125 subq_old = // SDC 20050120 No.xx2
gu08_sts_BorderCDROM = 0; //YTC008 2050109
gu08_sts_Reserve = // SDC 20050116 No.100
gu08_sts_Border_Pickup = OFF; //
gu08_sts_Border_Sound = ON; //
if( stInfoArea.PlayType == TYPE_ESP )
{
if(CDCtrl_ExecCommand[CMD_SEARCH_RELEASE_ESP] == CDCtrl_SearchRelease_ESP)
{
break; //->僒乕僠夝彍張棟幚峴拞側傜丄俽俲俬俹傛傝桪愭
}
gu08_esp_read_status = 0; //撉傒弌偟幚峴拞僼儔僌亙亖侽
DrvDSP_BIOS_WriteRegMP3( 0x40, 0x04 ); //YFLAG_ENABLE YFLAG庴庢愝掕
}else if( stInfoArea.PlayType == TYPE_MP3 )
{
//YTC006 gu08_scc_MP3muteOff = 0; //YTC002 20041226 softmute
gu08_sts_decodeMP3 =0; //YTC002 20041226 softmute
// gu08_sccd_ESPctrl = 0;
DrvDSP_BIOS_WriteReg( 0xE0, 0x01 ); //DF擖傝岥亖MP3
//1216 DrvDSP_BIOS_WriteReg( 0x47, 0x04 ); //YFLAG_DISABLE(L屌掕) YFLAG惗惉懁偼摦偐偟偭傁側偟丅
DrvDSP_BIOS_WriteRegMP3( 0x40, 0x04 ); //YFLAG_ENABLE YFLAG庴庢愝掕
//YFLAG偑奜晅偗Tr曽幃偵寛掕偟偨偺偱丄傕偆偙偙偱愝掕曄峏偡傞壙抣側偄丅
MP3DispOffMin = MP3DispOffSec = 0;
#if CDx1
}else
{
//
gu08_kind_SPEED = 0; //ESP_on/off test
// DrvDSP_BIOS_WriteReg( 0xE0, 0x00 ); //emphasis+DF擖椡慖戰丅 Sxxx庢埖拲堄丅彨棃偵晄埨桳丅
DrvDSP_BIOS_EMPHASIS_off_CD(); //emphasis_off + DF擖椡慖戰丅20041202
//MP3偲崿嵼偺壜擻惈偑偁傞偺偱丄俽俲俬俹枅偵僄儞僼傽僔僗僆僼偡傞丅
DrvDSP_BIOS_WriteReg( 0x70, 0x1C ); //
#endif
}
if( gu08_scc_Search ) // SDC 20050109 No.355
gu08_scc_Search = 1; // 僒乕僠拞偺SKIP帪偼丄僒乕僠嵟弶偐傜傗傝捈偡丅
if( stInfoArea.PlayType & TYPE_CD )
{
//倀俬憌偐傜栚昗嬋偺忣曬傪庢摼
esp_wqok =
gu32_val_TargetFrame = stTOC_trks[stInfoArea.hexPlayTitleCD - 1].begin_atime;
}
//儕僋僄僗僩棃偨傜丄懄暘丒昩昞帵傪侽侽丗侽侽偵丅
stInfoArea.hexPlayMin = 0x00; //
stInfoArea.hexPlaySec = 0x00; //
//YTC A2x 20050217 No.478
esp_subq.amin = esp_subq.asec = esp_subq.afrm =0; //YTC_A2x
gu08_scc_TimeLag = //0; //SCC SKIP奐巒偵敽偄丄埵抲僤儗専弌丒廋惓掆巭 -ROM YTC00G
gu08_sts_DISPLAY = 0; //昞帵DISABLE
if( stInfoArea.PlayType & TYPE_CD )
gu08_sts_Border = OFF; //僩儔僢僋屪偓僼儔僌僋儕傾
// YTC_20041228 >>>
// if( stInfoArea.PlayType == TYPE_ESP )
// {
// //CLV懍搙傪愝掕
// if(gu08_JOGGABLE == 0)
// { //傆偮偆偺俤俽俹
// if(gu08_kind_SPEED != 2 //X2W)
// { //X2W偠傖側偐偭偨傜X2W偵側傞傛偆偵丅
// gu08_kind_SPEED=2;
// gu08_scc_speed=1;
// }
// }
// else
// { //JOGGABLE
// if(gu08_kind_SPEED != 3 //X2.6W)
// { //X2.6W偠傖側偐偭偨傜X2.6W偵側傞傛偆偵丅
// gu08_kind_SPEED=3;
// gu08_scc_speed=1;
// }
// }
// }
// <<<
if( gu08_flg_FirstPlay == 0 )
{ //STOP->PLAY
gu08_flg_FirstPlay = //YTC008 20050110
gu08_sts_MovePickupIn = //Pickup IN 梫媮
gu08_scc_FocusSearch = 1; // FocusSearch梫媮
gu08_scc_PlayTitle = 2; //僼僅乕僇僗僒乕僠姰椆懸偪僔乕働儞僗傊
DrvDSP_PowerSaveOff_valueset(); //YTC00G 20050130 STOP->PLAY 傕愭僉僢僋偡傞丅
#if CDx1
if( stInfoArea.PlayType == TYPE_CD )
{
//20041119 demo捈慜僷僢僠
//倃侾俶壔偲僩儗乕僯儞僌
DrvDSP_BIOS_StartTraining( );
Common_Wait_ms( 100 );
DrvDSP_BIOS_EndTraining( );
}
#endif
// YTC_20041228 >>
//CLV懍搙傪愝掕
CDCtrl_OrderToSetSpeed( );
gu08_scc_speed=10; // 懄丄X1.1敪峴
// <<
}
else
{ //PLAY->PLAY
if(gu08_scc_ServoError==2)
{ //僄儔乕暅婣張棟幚巤拞
SCC_BF = 3; //
gu08_scc_PlayTitle = 9; //僄儔乕暅婣姰椆懸偪傊
}
else
{ //
//YTC002 DrvDSP_Mute_On();
DrvDSP_Mute_Soft( ); //YTC002 20041226
#if CDx1
if( stInfoArea.PlayType == TYPE_CD )
{
gu08_scc_PlayTitle=3; //摢弌偟奐巒傊
}else
#endif
{
if(gu08_sts_PowerSave != 0) //YTC004 20050103
{ //POWER SAVE拞 僒乕儃嫮惂暅婣偝偣偰偐傜丄摢弌偟丅
DrvDSP_PowerSaveOff_valueset(); //YTC00C 200501115
gu08_sts_PowerSave = 0;
//YTC007 20050107 gu08_scc_FocusSearch = 1; // FocusSearch梫媮
// CDCtrl_PlayTitle_Request_Fon(); ////YTC007 20060107 No340 忦審峫椂晅FocusSearch梫媮
gu08_scc_PlayTitle = 2; //僼僅乕僇僗僒乕僠姰椆懸偪僔乕働儞僗傊
}
else
{ //僒乕儃惗偒偰偄傞丅乮偼偢乯
gu08_scc_PlayTitle = 3; //摢弌偟奐巒傊 // YTC_20041228
DrvDSP_BIOS_WriteReg(0x83,0x01); //YTCA2x No.473 20050211 CLVservo.limit=1/1 憖嶌偵傛傞慗堏 20050302
if( stInfoArea.PlayType == TYPE_MP3 )
{
//巄掕丅ESP->俵俹俁慗堏偺懳嶔 杮棃偼SPEED_SCC傪巊偆傋偒
gu08_kind_SPEED = //1; // X1.1 Speed // YTC_20041228
gu08_scc_speed=1; // YTC_20041228
}
if(gu08_scc_FocusSearch != 0)
{ //僷儚乕僙乕僽拞偵丄俽俲俬俹楢敪丅僼僅乕僇僗崌偆慜偵師偺俽俲俬俹梫媮弌偨
gu08_scc_PlayTitle=2; //僼僅乕僇僗崌徟懸偪傊
}
// 懍搙愗傝懼偊
CDCtrl_OrderToSetSpeed( ); // YTC_20041228
}
if( stInfoArea.PlayType == TYPE_ESP )
gu08_sccd_ESPctrl=0; //僪儔僀僶憌堦扷掆巭
}
}
}
DrvDSP_BIOS_EMPHASIS_off_MP3(); //20041202 SKIP枅偵僄儞僼傽僔僗僆僼丅俵俹俁偲偺崿嵼偺堊
//僄儞僼傽僔僗偲丄俢俥擖椡愗傝懼偊偑摨偠僐儅儞僪偵妱傝晅偄偰偄傞偺偱丄昁偢搳偘偰壓偝偄丅
break;
case 2: //僼僅乕僇僗僒乕僠姰椆懸偪
if( gu08_scc_FocusSearch == 0 )
{ //僼僅乕僇僗僒乕僠姰椆
// FocusSearch寢壥敾掕
if(( gu08_servo_status & B00000001 ) == 0 )
{ //DISC柍偟 僄儔乕曬崘偟偰丄TASK廔椆
gu08_scc_PlayTitle = 0; //
stInfoArea.Command[CMD_PLAY_TITLE][CMD_RESPONSE] = CMD_RES_ERROR;
CDCtrl_ExecCommand[CMD_PLAY_TITLE] = CDCtrl_Nop;
}
else
{ //DISC桳傝 慡僒乕儃僆儞
gu08_flg_FirstPlay = 1;
//ALL_SERVOS_ON
DrvDSP_BIOS_MMute1_Off( ); //彂姺偊傞偙偲丅
// DrvDSP_BIOS_Clv_KickHeight_Max( ); //偙偺傑傑巊偆傢偗偵偼偄偐側偄
DrvDSP_BIOS_WriteReg(0x83,0x01); //YTC007 20050107 CLVservo.limit=1/1 憖嶌偵傛傞慗堏側偺偱慡奐僉僢僋
DrvDSP_BIOS_WriteReg( 0x88, Tbl_SP_HIGHT_HIGH[gu08_Mech] ); // SP High Kick
//YTC00G DrvDSP_BIOS_Clv_Kick( ); //
//YTC00G Common_Wait_ms( 330 ); //
DrvDSP_BIOS_Tracking_On( ); //
DrvDSP_CheckError_SetTimerSUBQ_Start( ); //
DrvDSP_BIOS_Clv_On( ); // YTC_20041228
#if CDx1
if( stInfoArea.PlayType == TYPE_CD )
{
gu08_scc_ServoError = 1; //慡僒乕儃僆儞偟偨丅僒乕儃僄儔乕専弌奐巒丅
DrvDSP_BIOS_Clv_On( ); //
}else
#endif
// YTC_20041228 >>>
// {
// if( stInfoArea.PlayType == TYPE_ESP )
// {
//// CLV X2W
// DrvDSP_BIOS_WriteReg( 0x62, 0x19 ); //X2W SPEED_SCC偵嶌傝懼偊傞偙偲丅
//// DrvDSP_BIOS_WriteReg( 0x50, 0x40 ); //
//// DrvDSP_BIOS_WriteReg( 0x81, 0x3D ); //target speed
//// DrvDSP_BIOS_WriteReg( 0x82, 0x20 ); //
//// DrvDSP_BIOS_Clv_On( ); //
// }else
// {
// DrvDSP_BIOS_WriteReg( 0x81, 0x1E ); //X1speed
// DrvDSP_BIOS_WriteReg( 0x82, 0x20 ); //
// DrvDSP_BIOS_Clv_On( ); //
// }
// }
// <<<
//偁偲偱 gu08_scc_ServoError = 1; //慡僒乕儃僆儞偟偨丅僒乕儃僄儔乕専弌奐巒丅
gu08_scc_PlayTitle = 3; // 師忬懺
}
}
break;
case 3: //僒乕儃惗偒偨丅傾僋僙僗梫媮
#if CDx1
if( stInfoArea.PlayType == TYPE_CD )
gu08_scc_ServoError = 1; //僄儔乕専弌梫媮
else gu08_scc_ServoError = 0; //僄儔乕専弌梫媮丂帋偟偵愗傞
#else
#if ERR_DETECT // SDC 20041218
gu08_scc_ServoError = 1; //僄儔乕専弌梫媮
DrvDSP_CheckError_SetTimerSUBQ_Start( ); //YTC003 20041230
//帺摦挷惍偐傜帺摦嵞惗偡傞偲偒偵丄僞僀儅乕嬻偺傑傑丅
#else
gu08_scc_ServoError = 0; //僄儔乕専弌梫媮丂帋偟偵愗傞
#endif
#endif
//YTC004 >>> 20050103 偙偙偱懍搙愗傝懼偊丅摢弌偟梫媮棃偨帪揰偱僒乕儃僄儔乕偩偭偨応崌摍
switch(stInfoArea.PlayType)
{
case TYPE_MP3:
if(gu08_kind_SPEED != 1)
{
gu08_kind_SPEED =1; // X1.1 Speed
gu08_scc_speed=1; //
}
break;
case TYPE_ESP:
if(gu08_kind_SPEED != 2)
{
gu08_kind_SPEED =2; // X2.0 Speed
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -