📄 cd_ctrl.c
字号:
/******************************************************************************/
/* [NAME] :cd_ctrl.c */
/* [OUTLINE]: */
/* [HISTORY]: */
/* [NOTE] :TAB=4 */
/******************************************************************************/
//#include <machine.h> /* Z80梡 */
#include "BU18703.h" /* CPU儗僕僗僞掕媊 */
#include "prototype.h"
#include "extern.h"
#include <string.h>
/*----------------------------------------------------------------------------*/
/*============================================================================*/
/* static */
/*============================================================================*/
static UINT08 u08_sts_CD; /* CD Control Status */
/*----------------------------------------------------------------------------*/
#if !ROM // SDC 20050205
UINT08 ( *cmdExecTable[CMD_TOTAL][2] )( void ) =
{
{ CDCtrl_InitDSP, CDCtrl_Nop }, // CMD_INIT_DSP
{ CDCtrl_AdjustOffset, CDCtrl_Nop }, // CMD_ADJUST_OFFSET
{ CDCtrl_DetectMedia, CDCtrl_DetectMedia_Init }, // CMD_DETECT_MEDIA
{ CDCtrl_AdjustAuto, CDCtrl_Nop }, // CMD_ADJUST_AUTO
{ CDCtrl_ReadTOC, CDCtrl_Nop }, // CMD_READ_TOC
{ CDCtrl_ReadFAT, CDCtrl_Nop }, // CMD_READ_FAT
{ CDCtrl_Stop, CDCtrl_Nop }, // CMD_STOP
#if CDx1
// { CDCtrl_PlayTitle, CDCtrl_PlayTitle_Init }, // CMD_PLAY_TITLE_CD
{ CDCtrl_Pause, CDCtrl_Pause_Init }, // CMD_PAUSE_CD
{ CDCtrl_PauseRelease, CDCtrl_Nop }, // CMD_PAUSE_RELEASE_CD
{ CDCtrl_Search, CDCtrl_Nop }, // CMD_SEARCH_CD
{ CDCtrl_SearchRelease, CDCtrl_Nop }, // CMD_SEARCH_RELEASE_CD
{ CDCtrl_SearchCancel, CDCtrl_Nop }, // CMD_SEARCH_CANCEL_CD
#endif
// { CDCtrl_PlayTitle, CDCtrl_PlayTitleMP3_Init }, // CMD_PLAY_TITLE_MP3
#if !SAVE1TRK // SDC 20050212
{ CDCtrl_Nop, CDCtrl_ReserveTitle_Init }, // CMD_RESERVE_TITLE_MP3
#endif
{ CDCtrl_Nop, CDCtrl_PauseMP3_Init }, // CMD_PAUSE_MP3
{ CDCtrl_Nop, CDCtrl_PauseReleaseMP3_Init }, // CMD_PAUSE_RELEASE_MP3
{ CDCtrl_Nop, CDCtrl_SearchFF_MP3_Init }, // CMD_SEARCH_FF_MP3
// { CDCtrl_Search_MP3, CDCtrl_Nop }, // CMD_SEARCH_FR_MP3
// { CDCtrl_Nop, CDCtrl_SearchRelease_MP3_Init }, // CMD_SEARCH_RELEASE_MP3
// { CDCtrl_PlayTitle, CDCtrl_PlayTitleESP_Init }, // CMD_PLAY_TITLE_ESP
{ CDCtrl_Nop, CDCtrl_PauseESP_Init }, // CMD_PAUSE_ESP
{ CDCtrl_Nop, CDCtrl_PauseReleaseESP_Init }, // CMD_PAUSE_RELEASE_ESP
{ CDCtrl_Search_ESP, CDCtrl_Nop }, // CMD_SEARCH_ESP
{ CDCtrl_SearchRelease_ESP, CDCtrl_Nop } // CMD_SEARCH_RELEASE_ESP
};
UINT08 flagNOP;
UINT08 *CDCtrl_flag[CMD_TOTAL] =
{
&flagNOP, // CMD_INIT_DSP
&gu08_sts_AdjustOffset, // CMD_ADJUST_OFFSET
&gu08_scc_FocusSearch, // CMD_DETECT_MEDIA
&gu08_sts_AdjustAuto, // CMD_ADJUST_AUTO
&gu08_sts_ReadTOC, // CMD_READ_TOC
&gu08_sts_ReadFAT, // CMD_READ_FAT
&gu08_sts_Stop, // CMD_STOP
#if CDx1
&gu08_scc_PlayTitle, // CMD_PLAY_TITLE_CD
&gu08_scc_Pause, // CMD_PAUSE_CD
&gu08_sts_PauseRelease, // CMD_PAUSE_RELEASE_CD
&gu08_scc_Search, // CMD_SEARCH_CD
&gu08_sts_SearchRelease, // CMD_SEARCH_RELEASE_CD
&flagNOP, // CMD_SEARCH_CANCEL_CD
#endif
&gu08_scc_PlayTitle, // CMD_PLAY_TITLE_MP3
#if !SAVE1TRK // SDC 20050212
&flagNOP, // CMD_RESERVE_TITLE_MP3
#endif
&gu08_sts_PauseMP3, // CMD_PAUSE_MP3
&flagNOP, // CMD_PAUSE_RELEASE_MP3
&flagNOP, // CMD_SEARCH_FF_MP3
&gu08_scc_Search, // CMD_SEARCH_FR_MP3
&flagNOP, // CMD_SEARCH_RELEASE_MP3
&gu08_scc_PlayTitle, // CMD_PLAY_TITLE_ESP
&gu08_scc_PauseCD, // CMD_PAUSE_ESP
&mp3_decode_enable, // CMD_PAUSE_RELEASE_ESP
&gu08_scc_Search, // CMD_SEARCH_ESP
&gu08_sts_SearchRelease // CMD_SEARCH_RELEASE_ESP
};
#endif
/*----------------------------------------------------------------------------*/
/* [NAME] :CDCtrl_main */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
/*
void CDCtrl_main( void )
{
UINT08 i;
switch ( u08_sts_CD )
{
case STS_CD_RESET:
DrvDSP_BIOS_XReset( );
u08_sts_CD = STS_CD_INIT;
break;
case STS_CD_INIT:
// Initialize Table
for ( i = 0; i < CMD_TOTAL; i++ )
{
CDCtrl_ExecCommand[i] = CDCtrl_Nop;
}
u08_sts_CD = STS_CD_EXEC;
break;
case STS_CD_EXEC:
#if ROM // SDC 20050205
CDCtrl_ReceiveCommand( ); //UI憌偐傜偺僐儅儞僪傪庴偗庢傝丄幚峴偡傞娭悢傪嬦枴
#else
for( i = 0; i < CMD_TOTAL; i++ )
{
if( stInfoArea.Command[i][CMD_REQUEST] == CMD_REQ_SEND )
{ //傕偟僐儅儞僪偑棃偰偄偨傜
stInfoArea.Command[i][CMD_REQUEST] = CMD_REQ_ACCEPT; // 庴偗晅偗偰丄
stInfoArea.Command[i][CMD_RESPONSE] = CMD_RES_EXEC; // 僗僥乕僞僗傪僙僢僩
// CMD_RES_EXEC 埲奜偼弶婜張棟儌僕儏乕儖偱彂偒姺偊
CDCtrl_ExecCommand[i] = cmdExecTable[i][0]; // 娭悢偺傾僪儗僗傪搊榐
*CDCtrl_flag[i] = 1;
cmdExecTable[i][1](); // 弶婜張棟儌僕儏乕儖
}
}
#endif
// Execute Command
//忢挀傕偺幚峴 SERVO layer
// Sync_Rec( ); //B0005
DrvDSP_ReadSUBQ(); //CMD_READ_SUBQ 庴怣姰椆僼儔僌僋儕傾晅
DrvDSP_TimeLag(); //嵞惗拞 atime 娔帇乛暅婣
DrvDSP_ServoError(); //僒乕儃僄儔乕 専弌乛暅婣
DrvDSP_CtrlSpeed(); //儚僀僪丄僲乕儅儖夞揮忬懺慗堏張棟
DrvDSP_Stop(); //僨傿僗僋掆巭張棟
GotoMSF(); //DrvDSP_GOTO_MSF() //GotoMSF 柤慜偑丒丒丒
DrvDSP_Jump(); //TrackJump
DrvDSP_FocusSearch(); //focus serch
DrvDSP_MovePickupIn(); //SLED MOVE
#if ROM // SDC 20050207
DrvDSP_CtrlAudio(); //MUTE/EMPHASYS
#endif
//僐儅儞僪暿
for ( i = 0; i < CMD_TOTAL; i++ )
{
#if ROM // SDC 20050205
CDCtrl_ExecCommand[i] ( ); //CALL (HL)偱弴師幚峴
#else
if( !CDCtrl_ExecCommand[i]( ))
{
stInfoArea.Command[i][CMD_RESPONSE] = CMD_RES_COMPLETE;
CDCtrl_ExecCommand[i] = CDCtrl_Nop;
}
#endif
}
break;
default:
;
}
return;
}
*/ //ad
/*
偝偼偄儊儌Ver2
//忢挀 SERVO Control
DrvDSP_ReadSUBQ() //CMD_READ_SUBQ 庴怣姰椆僼儔僌僋儕傾晅
DrvDSP_TimeLag() //ATime娔帇
DrvDSP_ServoError() //専弌丒暅婣偼攔懠
DrvDSP_CheckBorder() //専弌
DrvDSP_Speed_ctrl() //儚僀僪丄僲乕儅儖夞揮忬懺慗堏張棟
DrvDSP_Stop() //僨傿僗僋掆巭張棟
DrvDSP_GOTO_MSF() //GotoMSF
DrvDSP_Jump() //
DrvDSP_Focus_serch() //
DrvDSP_Pickup_in() //SLED MOVE
DrvDSP_AudioCtrl() //MUTE/EMPHASYS
//拞娫娗棟 TASK
//WAKEup
CDCtrl_InitDSP() //CMD_REQ_SEND
CDCtrl_AdjustOffset() //CMD_ADJUST_OFFSET
CDCtrl_DetectMedia() //CMD_DETECT_MEDIA
CDCtrl_AdjustAuto() //CMD_ADJUST_AUTO
CDCtrl_ReadTOC() //CMD_READ_TOC
CDCtrl_ReadFAT() //CMD_READ_FAT
//CDDA_x1N
CDCtrl_PlayTitleCD() //CMD_PLAY_TITLE_CD
CDCtrl_Pause() //CMD_PAUSE_CD
CDCtrl_PauseRelease() //CMD_PAUSE_RELEASE_CD
CDCtrl_Search() //CMD_SEARCH_CD FF/FR嫟捠偵側傝傑偟偨丅
CDCtrl_SearchRelease() //CMD_SEARCH_RELEASE_CD
CDCtrl_SearchCancel() //CMD_SEARCH_CANCEL_CD
//CDDA_ESP
PLAY
PAUSE
SERCH
//MP3
CDCtrl_SearchCancel() //CMD_SEARCH_CANCEL_CD 16
//ALL
CDCtrl_Stop() //CMD_STOP
//OTHER <ENVIRON>
x CDCtrl_SetVolume() //CMD_SET_VOLUME 堦弰夞偱廔傢傞丂崱夞偼倀俬憌偱姰寢
x CDCtrl_SetBassBoost() //CMD_SET_BASSBOOST 堦弰夞偱廔傢傞丂
x CDCtrl_SetEqualizer() //CMD_SET_EQUALIZER 堦弰夞偱廔傢傞丂
CDCtrl_SetMode() //CMD_SET_MODE 枹幚憰丅堦弰夞偱廔傢傞偐丠
shut_down(?)
Damp_close(?);
*/
#if ROM // SDC 20050205
/*----------------------------------------------------------------------------*/
/* [NAME] :CDCtrl_ReceiveCommand */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
/*
void CDCtrl_ReceiveCommand( void )
{
// UINT16 PlayTitleMP3;
// Check Command
if( stInfoArea.Command[CMD_INIT_DSP][CMD_REQUEST] == CMD_REQ_SEND )
{ //傕偟僐儅儞僪偑棃偰偄偨傜
stInfoArea.Command[CMD_INIT_DSP][CMD_REQUEST] = CMD_REQ_ACCEPT; //庴偗晅偗偰丄
stInfoArea.Command[CMD_INIT_DSP][CMD_RESPONSE] = CMD_RES_EXEC; //僗僥乕僞僗傪幚峴拞偵偡傞丅
CDCtrl_ExecCommand[CMD_INIT_DSP] = CDCtrl_InitDSP; //娭悢偺傾僪儗僗傪搊榐
}
if( stInfoArea.Command[CMD_ADJUST_OFFSET][CMD_REQUEST] == CMD_REQ_SEND )
{
stInfoArea.Command[CMD_ADJUST_OFFSET][CMD_REQUEST] = CMD_REQ_ACCEPT;
stInfoArea.Command[CMD_ADJUST_OFFSET][CMD_RESPONSE] = CMD_RES_EXEC;
CDCtrl_ExecCommand[CMD_ADJUST_OFFSET] = CDCtrl_AdjustOffset;
gu08_sts_AdjustOffset = 1; // AdjustOffset梫媮
//YTC000 gu08_sts_MovePickupIn = 1; // MovePickupIn梫媮 // 偙偙偱偼僺僢僋堷崬梫媮偟側偄
}
if( stInfoArea.Command[CMD_DETECT_MEDIA][CMD_REQUEST] == CMD_REQ_SEND )
{
stInfoArea.Command[CMD_DETECT_MEDIA][CMD_REQUEST] = CMD_REQ_ACCEPT;
stInfoArea.Command[CMD_DETECT_MEDIA][CMD_RESPONSE] = CMD_RES_EXEC;
CDCtrl_ExecCommand[CMD_DETECT_MEDIA] = CDCtrl_DetectMedia;
toc_f=0; //YTC00G
gu08_scc_FocusSearch = 1; // FocusSearch梫媮
}
if( stInfoArea.Command[CMD_ADJUST_AUTO][CMD_REQUEST] == CMD_REQ_SEND )
{
stInfoArea.Command[CMD_ADJUST_AUTO][CMD_REQUEST] = CMD_REQ_ACCEPT;
gu08_sts_AdjustAuto = 1; // AdjustAuto梫媮
CDCtrl_ExecCommand[CMD_ADJUST_AUTO] = CDCtrl_AdjustAuto;
stInfoArea.Command[CMD_ADJUST_AUTO][CMD_RESPONSE] = CMD_RES_EXEC;
}
if( stInfoArea.Command[CMD_READ_TOC][CMD_REQUEST] == CMD_REQ_SEND )
{
stInfoArea.Command[CMD_READ_TOC][CMD_REQUEST] = CMD_REQ_ACCEPT;
gu08_sts_ReadTOC = 1; // ReadTOC梫媮
CDCtrl_ExecCommand[CMD_READ_TOC] = CDCtrl_ReadTOC;
stInfoArea.Command[CMD_READ_TOC][CMD_RESPONSE] = CMD_RES_EXEC;
}
if( stInfoArea.Command[CMD_READ_FAT][CMD_REQUEST] == CMD_REQ_SEND )
{
stInfoArea.Command[CMD_READ_FAT][CMD_REQUEST] = CMD_REQ_ACCEPT;
gu08_sts_ReadFAT = 1; // ReadLongFAT梫媮
CDCtrl_ExecCommand[CMD_READ_FAT] = CDCtrl_ReadFAT;
stInfoArea.Command[CMD_READ_FAT][CMD_RESPONSE] = CMD_RES_EXEC;
}
if( stInfoArea.Command[CMD_STOP][CMD_REQUEST] == CMD_REQ_SEND )
{
stInfoArea.Command[CMD_STOP][CMD_REQUEST] = CMD_REQ_ACCEPT;
gu08_sts_Stop = 1; // Stop梫媮
CDCtrl_ExecCommand[CMD_STOP] = CDCtrl_Stop;
stInfoArea.Command[CMD_STOP][CMD_RESPONSE] = CMD_RES_EXEC;
}
#if CDx1
//Sxxx CDDA_X1N
if( stInfoArea.Command[CMD_PLAY_TITLE_CD][CMD_REQUEST] == CMD_REQ_SEND )
{ //CDDA_X1N 嵞惗梫媮
stInfoArea.Command[CMD_PLAY_TITLE_CD][CMD_REQUEST] = CMD_REQ_ACCEPT; //僐儅儞僪庴椞
stInfoArea.Command[CMD_PLAY_TITLE_CD][CMD_RESPONSE] = CMD_RES_EXEC; //幚峴忬嫷亖幚巤拞
CDCtrl_ExecCommand[CMD_PLAY_TITLE_CD] = CDCtrl_PlayTitle; //幚峴僄儞僕儞傪搊榐 // SDC 20041214
gu08_scc_PlayTitle = 1; // PlayTitle梫媮 // SDC 200412
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -