⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cd_ctrl.c

📁 ROHM 公司BU9432:application:应用范围
💻 C
📖 第 1 页 / 共 3 页
字号:
/******************************************************************************/
/*	[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 + -