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

📄 cd_ctrl_play.c

📁 ROHM 公司BU9432:application:应用范围
💻 C
📖 第 1 页 / 共 3 页
字号:
						gu08_scc_speed=1;		// 
					}
//B0004 <---
					break;
			}
//<<<

		//	倀俬憌偐傜栚昗嬋偺忣曬傪庢摼
		//	gu32_val_TargetFrame = stTOC_trks[stInfoArea.hexPlayTitleCD - 1].begin_atime;

			DrvDSP_BIOS_WriteRegMP3_32( 0x44, gl_buff_max ); 				// RCSEND嵞愝掕		// SDC 20050125

			if( stInfoArea.PlayType == TYPE_MP3 )
			{
				memset( &mp3Ctl, 0, sizeof( mp3Ctl ) );

#if	!ROM	// SDC 20050202
				mp3Ctl.WR.threshold = ( gl_buff_max + 1L ) - ( 1182L * gi_ThreshSects );	// WRITE嵞奐埵抲傪32僙僋僞慜偵
#endif
				stInfoArea.hexReserveTitleMP3 = 0;	//
				gu08_sts_Reserve = OFF;				//OFF = 0 
				gu08_num_Slot = //0;				//
				gu08_sts_Intro = 0;					//

#if	ROM	// SDC 20050202
//	         	mp3Ctl.WR.conn_mode = 0x05;     // 愙懕儌乕僪=SYNC
//				MP3Ctrl_Write_SetMode( 0x02 );	// WRITE宯 @CDROM	//傕偭偨偄側偄偍壔偗丠
				MP3Ctrl_Read_SetMode( 0x02 );	// READ 宯 @MP3
#else
				mp3Ctl.WR.mode = 0x02;			// WRITE宯 @CDROM	//傕偭偨偄側偄偍壔偗丠
#if	ID3TAG	//[dyna-DM]
				mp3Ctl.RD.mode = 0x0C;			// ReadID3V1
#else
				mp3Ctl.RD.mode = 0x02;			// READ 宯 @MP3
#endif
#endif

#if	ROM	// SDC 20050204
//				MP3Ctrl_Write_Reset(  );	// WRITE宯僋儕傾
				MP3Ctrl_Read_Reset(  );	// READ 宯僋儕傾
#else
				MP3Ctrl_WR_Reset();											// Write / Read clear
#endif

				//嵞惗偡傞僼傽僀儖斣崋傪庢摼偡傞丅
#if	ROM	// SDC 050211
				PlayList_GetEntry( gi_PlayList_index, &PlayTitleMP3 );
				mp3Ctl.PLAY[0].song = stInfoArea.hexTotalFolder + ( PlayTitleMP3 - 100 ) +	1;
#else
				mp3Ctl.PLAY[0].song = stInfoArea.hexTotalFolder + ( PlayList_GetEntry( gi_PlayList_index ) - 100 ) +	1;
#endif
				mp3Ctl.PLAY[0].sts = 1;
#if	ID3TAG	// SDC 20050202
				ID3TagRetry = 0;
#endif

				if( gu08_sts_UDFDISC )
				{	//nUDF
					nUDF_FILES = mp3Ctl.PLAY[0].song - stInfoArea.hexTotalFolder;	//
					if(nUDF_FILES != 1)	//嵟弶偺僩儔僢僋偼偦偺傑傑
					{
						mp3Ctl.PLAY[0].song -= nUDF_FILES;	//
						for(i= 1; i <= nUDF_FILES ;i++)
						{
							while(1)
							{
//								get_FAT_data(mp3Ctl.PLAY[0].song, fat_data);
								mp3Ctl.PLAY[0].song++;
#if LCD_DM	//[dyna-DM]
								if( !( fat_data[18] & B10000000 ))
#else
								if( !( fat_data[FILE_FILE_FRAGS] & B10000000 ))
#endif
									break;
							}
						}
					}
				}
			}
			if( stInfoArea.PlayType != TYPE_ESP )
			{
		//	僕儍儞僾偝偣傞弨旛
				DrvDSP_BIOS_WriteReg( 0x83, 0x01 );	//JUMP幚巤偵晅偒丄CLV攇崅抣惂尷夝彍丅
													//寛傔懪偪晅偒偩側丅(0000 | xxx83xxx)偲偐彂偐側偄偲斈梡惈偑
			}
			if( gu08_req_Jump != 0 )
			{	//JUMP幚峴拞偺張棟丅goto_MSF偑傗偭偰偔偰側偄偐丠
				//SKIP幚峴拞偵師偺SKIP偑棃偨丅儘儞僌僕儍儞僾摍幚峴拞偩偭偨傜丄拞巭偡傞張棟丅
				//gotoMSF偵傗傜偣偨偄側偁丅丂俤俽俹嶌傞偲偒偵
				DrvDSP_BIOS_Tracking_On(  );
				DrvDSP_BIOS_Clv_On(  );
//YTC003		DrvDSP_CheckError_SetTimerSUBQ_Start(  );

				gu08_sts_Jump = 	//0;	//
				gu08_req_Jump = 0x00;		//

			}
//YTC00G	gu08_GotoMsfSC = 1;		//  GotoMSF梫媮 	//YTC00G 20050128

			if( stInfoArea.PlayType & TYPE_CD )
			{
				gu08_hex_PlayTitle_Now = stInfoArea.hexPlayTitleCD;		//傛偔傢偐傜側偄丅
				gu08_before_hex_PlayTitle = stInfoArea.hexPlayTitleCD;	//傛偔傢偐傜側偄丅

				gu08_GotoMsfSC = 1;		//  GotoMSF梫媮 	//YTC00G 20050128 CD/ESP帪偼偙偙偱梫媮

			}else
			{
				gu08_hex_PlayTitle_Now = stInfoArea.hexPlayTitleMP3;
				gu08_before_hex_PlayTitle = stInfoArea.hexPlayTitleMP3;
			}

			gu08_scc_PlayTitle = 4;	//  師忬懺 
			break;


		case 4:	//傾僋僙僗廔椆懸偪
			if(gu08_scc_ServoError==2)
			{	// SERVO Error桳傝,暅媽張棟幚峴拞
				SCC_BF=3;					//傾僋僙僗幚峴拞偵僄儔乕敪惗丅僄儔乕暅婣帪偺栠傝応強
				gu08_scc_PlayTitle = 9;	//
			}
			else
			{	// SERVO弴挷丅
#if	ID3TAG	// SDC 20050205
				if( !gu08_GotoMsfSC || ( stInfoArea.PlayType == TYPE_MP3 ))
#else
				if( !gu08_GotoMsfSC )
#endif
				{	//GotoMSF惓忢廔椆
// SDC 20050105		if( stInfoArea.PlayType == TYPE_MP3 )
					if(( stInfoArea.PlayType == TYPE_MP3 ) && !gu08_scc_Search )		// SDC 20050105
					{
						if( mp3Ctl.WR.sts < 3 )
						{	
							break;	//
						}
					}
#if !LCD_DM	//[dyna-DM] 巄掕
#if	ROM	// SDC 050211
					PlayList_GetEntry( gi_PlayList_index, &PlayTitleMP3 );
					UserCtrl_GetFileName( PlayTitleMP3 );
#else
					UserCtrl_GetFileName( PlayList_GetEntry( gi_PlayList_index ) );
#endif
#endif
#if	ID3TAG	// SDC 20050202
#if	0	//[dyna-DM]
					if( !(mp3Ctl.PLAY[gu08_num_Slot].flgs & BIT_ID3V1_END) ){	
						break;
					}
#else
					if(( stInfoArea.PlayType == TYPE_MP3 ) && !( mp3Ctl.PLAY[gu08_num_Slot].flgs & BIT_ID3V2_END ))	// SDC 20050202
						break;																// ID3TAG 夝愅拞
#endif
#endif

					if( !(( stInfoArea.PlayType == TYPE_MP3 ) && gu08_scc_Search ))		// SDC 20050106
					  if( gu08_kind_SearchDIR != 2 )									// SDC 20050111 No.382
						gu08_sts_DISPLAY = 1;						//昞帵ENABLE 傎傫偲偼壒偩偟奐巒帪揰丅

					stInfoArea.hexPlayMin = 0x00;	//忕挿
					stInfoArea.hexPlaySec = 0x00;	//忕挿
//1115				DrvDSP_RenewDisplayTime(  );	//偆乕傫丅俀倣俽懸偰偽昞帵偱傞傛丅

					gu08_num_RecoverRetry = 0;		//堄枴晄柧

					if( stInfoArea.PlayType & TYPE_CD )
					{

//YTC00G 20050129
						if(gu32_val_TargetFrame > gu32_frame_atime)
						{	//僉僘偺偣偄偐丄庤慜偱gotoMSF廔傢偭偨丅偪傚偭偲幪偰傞丅
							gu32_val_TargetFrame += 10;
							gu08_GotoMsfSC=1;
							break;
						}
//<<<
						gu32_val_TargetFrame = gu32_frame_atime;	//埵抲僘儗専弌梡
						gu08_hex_PlayTitle_Now = stSubq_hex.tno;	//Sxxx? 

						gu08_sts_Subq_index = VALID;	//堄枴晄柧 係價僢僩斉偵偁偭偨暔偺側偵偐丅
//攑婞1202				gu08_num_GotoMSFRetry = 0;		//堄枴晄柧

#if	CDx1
						//PAUSE嬦枴
						if(gu08_scc_PauseCD ==0)
						{	//not Pause
							if( stInfoArea.PlayType == TYPE_CD )
								gu08_scc_TimeLag=1;					//埵抲僘儗専弌奐巒
#if	ROM	// SDC 20050204
						}
						else
						{	//pause拞
#endif
						}
#endif

						if( stInfoArea.PlayType == TYPE_ESP )
						{
							if(gu08_scc_Search==0)	//SERCH拞丒梫媮側偗傟偽
							{	//
								gu08_sccd_ESPctrl = 1;		//ESP惂屼奐巒
							}

							mp3_decode_enable=1;		//弨旛弌棃師戞丄壒傪偩偡丅
							if(	stInfoArea.Command[CMD_PAUSE_ESP][CMD_RESPONSE] == CMD_RES_FOUND)
							{	//
								mp3_decode_enable=0;		//PAUSE拞
							}
						}
//YTC00G 20050129
						stInfoArea.Command[CMD_PLAY_TITLE][CMD_RESPONSE] = CMD_RES_FOUND;	//倀俬偵曬崘丅 

#if	!LCD_DM	// SDC 20050213
						gu08_SFlgLine1 = //OFF;				// 僗僋儘乕儖掆巭
						gu08_SFlgLine2 = OFF;				// 僗僋儘乕儖掆巭
#endif
					}
#if	!LCD_DM	// SDC 20050213
					else	// MP3
					{
						strcpyNNull( &gu08_SDataLine1[0], "     " );				// File name set
//						DrvLCD_DisplayData( LINE_1, DIGIT_00, "     " );			// 侾峴昞帵

						gu08_SFlgLine1 = ON;				// 僗僋儘乕儖奐巒
						gu08_SDTopLine1 = 0;				// 昞帵奐巒埵抲弶婜壔
						if( gu08_kind_PlayMode == PMODE_NORMAL )
						{
							gu08_SFlgLine2 = ON;			// 僗僋儘乕儖奐巒
						}
						gu08_SDTopLine2 = 49;				// 昞帵奐巒埵抲弶婜壔

						if( mp3Ctl.PLAY[gu08_num_Slot].flgs & BIT_ID3TAG_EXIST )
						{
							strcpy( &gu08_SDataLine1[strlen( gu08_SDataLine1 )], "     Title:" );
//							gu08_SDataLine1[strlen( gu08_SDataLine1 )] = NULL;

							gu08_SSubFlgLine1 = ON;
						}
						gu08_SDTopLine1 = 0;
					}
					gu08_SFlgLine4 = ON;				// 僗僋儘乕儖奐巒
					gu08_SDTopLine4 = 0;				// 昞帵奐巒埵抲弶婜壔
#endif
					gu08_scc_PlayTitle = 5;	//  師忬懺  
				}
			}
			break;

		case 5:	//捠忢嵞惗娔帇

			if(gu08_scc_ServoError==2)
			{	// SERVO Error桳傝,暅媽張棟幚峴拞
#if	CDx1	// SDC 20041218
			  if( stInfoArea.PlayType == TYPE_CD )
			  {
				gu08_sts_DISPLAY = 0;		//昞帵嬛巭
				DrvDSP_Mute_On();
			  }
#endif	// end of CDx1
				SCC_BF=5;					//暅媽懸偪傊
				gu08_scc_PlayTitle = 9;	//
			}
			else
			{	//僒乕儃弴挷
				if( stInfoArea.PlayType & TYPE_CD )
				{
					if( ( gu08_scc_Pause != 0 ) || ( gu08_sts_PauseRelease != 0 ) )
					{
//丠					stInfoArea.Command[CMD_PLAY_TITLE_CD][CMD_RESPONSE] = CMD_RES_EXEC;	//
						break;	// ->Pause拞
					}
					if( ( gu08_scc_Search != 0 ) ||	( gu08_sts_SearchRelease != 0 ) )
					{
						break;	// ->Search幚峴拞
					}
				}

				// v.PLAY幚峴拞
				stInfoArea.Command[CMD_PLAY_TITLE][CMD_RESPONSE] = CMD_RES_FOUND;	//UI揳両僒乕儃偼弴挷偱偁傝傑偡丅曬崘丅
//				DrvDSP_GetTime_Now(  );
#if	CDx1
				if( stInfoArea.PlayType == TYPE_CD )
					DrvDSP_RenewDisplayTime(  );	//Sxxx 嵞惗帪娫峏怴korehaX1N梡丅
#endif

				if( stInfoArea.PlayType & TYPE_CD )
				{
					//YTC001 No82 20041224 
//YTC008			if(( stSubq_bcd.ctrl_addr & 0x40 ) != 0)
//YTC008			if((( stSubq_bcd.ctrl_addr & 0x40 ) != 0) && (gu08_scc_TimeLag == 1))	//YTC008 Ver13偱NG
					if((( stSubq_bcd.ctrl_addr & 0x40 ) != 0) && (gu08_sccd_ESPctrl == 5))	//YTC008 棴崬幚峴拞偵CDROM
					{	//CDROM傪CDDA嵞惗偟偰偄傞丅
						gu08_sts_BorderCDROM = 1;	
					}

					if( gu08_sts_Border == ON )
					{	//Border桳傝 DRIVER憌偑僩儔僢僋墇偊傪専弌偟偨
						gu08_sts_Border = OFF;	//
						stInfoArea.Command[CMD_PLAY_TITLE][CMD_RESPONSE] = CMD_RES_BORDER;
					}
				}else
				{
				  if( !gu08_scc_Search )									// SDC 20050105
				  {

#if	!SAVE1TRK	// SDC 20050124
					if(gu08_sts_UDFDISC==0)
					{	//
#if	ID3TAG	// SDC 20050202
						if(( mp3Ctl.WR.sts == 20 ) && ( mp3Ctl.RD.mode == 0x02 ))	// 棴傔廔傢傝偱僞僌夝愅拞偱側偗傟偽
#else
						if( mp3Ctl.WR.sts == 20 )
#endif
						{
							if( gu08_sts_Border_Pickup == OFF )
							{			
								gu08_sts_Border_Pickup = ON;	//壒儃乕僟弌偟偨傜丄OFF偵栠傞丅//UI偱off偵偟偰偄傞
								stInfoArea.Command[CMD_PLAY_TITLE][CMD_RESPONSE] = CMD_RES_BORDER_PICUP;
							}
						}

						slot = ( gu08_sts_Reserve == OFF ) ? gu08_num_Slot : 1 - gu08_num_Slot;

							if( mp3Ctl.PLAY[slot].sts == 0 )	//==0偱偦偺嬋偺壒弌偟廔傢傝
							{	//
								if( gu08_sts_Border_Sound == OFF )
								{
									gu08_sts_Border_Sound = ON;
									stInfoArea.Command[CMD_PLAY_TITLE][CMD_RESPONSE] = CMD_RES_BORDER_SOUND;
								}
							}
					}
					else
#endif	// end of SAVE1TRK
					{	//UDF MP3嵞惗
						if( mp3Ctl.PLAY[0].sts == 0 )	//==0偱偦偺嬋偺壒弌偟廔傢傝
						{	//nUDF侾僼傽僀儖嵞惗姰椆
							stInfoArea.Command[CMD_PLAY_TITLE][CMD_RESPONSE] = CMD_RES_BORDER_SOUND;	// SDC 20041226
						}
					}
				  }															// SDC 20050105
				}
			}
			break;

		case 9:	//僄儔乕儕僇僶儕乕姰椆懸偪
			if( gu08_scc_ServoError == 0 )
			{	//儕僇僶儕乕張棟廔椆丅
				if(gu08_sts_Error==0)
				{	//
#if	ERR_DETECT	// SDC 20041218
					gu08_scc_ServoError = 1;	//僄儔乕専弌梫媮
#else
					gu08_scc_ServoError = 0;	//僄儔乕専弌梫媮柍偟
#endif
					if(SCC_BF==5)
					{	//嵞惗拞偺僄儔乕専弌
#if	CDx1
						if( stInfoArea.PlayType == TYPE_CD )
							gu08_scc_TimeLag = 2;	//埵抲僘儗廋惓梫媮乮僘儗廋惓屻偵昞帵嫋壜偲側傞乯
#endif

//YTC004 20050103
// SDC 20050105			if((stInfoArea.PlayType == TYPE_ESP) && (gu08_scc_Search == 9))
						if((stInfoArea.PlayType != TYPE_CD) && (gu08_scc_Search == 9))			// SDC 20050105
						{
							gu08_scc_TimeLag = 2;	//埵抲僘儗廋惓梫媮
						}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -