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

📄 cd_ctrl_play.c

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