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

📄 sub_playstatuskey.s01

📁 MP3 整个 SDK
💻 S01
📖 第 1 页 / 共 3 页
字号:
	CALL	LWRD ?0219
; 428.	    g_result = musicpSendCommand(MC_LOAD, NULL);
	CALL	LWRD ?0220
; 429.	    if(g_result)
	JR	Z,?0115
?0114:
; 430.	    {
; 431.	            //当是WMA时由于要提高速度,在这种情况下就不计算总时间了,
; 432.	        musicpSendCommand(MC_CALTIME, NULL);
	LD	C,H
	LD	B,H
	LD	E,19
	CALL	LWRD ?0221
; 433.	        if (g_PowerOffFlag == 0x55)
	LD	A,(g_PowerOffFlag)
	CP	85
	JR	NZ,?0120
?0116:
; 434.	        {
; 435.	             if (!DisplayTimeRollback())
	LD	A,BYTE3 DisplayTimeRollback
	LD	HL,LWRD DisplayTimeRollback
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	NZ,?0120
?0118:
; 436.	            {
; 437.	                  musicpSendCommand(MC_STOP, NULL);
	LD	C,L
	LD	B,L
	LD	E,6
	CALL	LWRD ?0221
; 438.	                  musicpSendCommand(MC_CLOSE, NULL);
	CALL	LWRD ?0213
; 439.	                  SetFullInterface();
; 440.	                  need_draw = TRUE;
; 441.	                  return RESULT_UI_STOP;
	JR	?0195
; 442.	            }
?0119:
?0117:
; 443.	        }
; 444.	  }
; 445.	
; 446.	  //  if(!g_result)
; 447.	  else
?0115:
; 448.	    {
; 449.	            musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
	LD	L,H
	ADD	HL,SP
	CALL	LWRD ?0214
; 450.	            ErrReport(PlayStatus);
; 451.	            PlayStatus=StopSta;
; 452.	            return RESULT_UI_STOP;//回到停止界面
?0195:
	LD	HL,102
; 453.	    }
	JR	?0121
?0120:
; 454.	
; 455.	  //  musicpSendCommand(MC_CALTIME, NULL);
; 456.	
; 457.	    musicpSendCommand(MC_SETPOWERCOUNT, 5);      //by jmzhang
	CALL	LWRD ?0216
; 458.	
; 459.	
; 460.	    musicpSendCommand(MC_PLAY, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 461.	    //StartIntro(TRUE);
; 462.	    return NULL;
	LD	HL,0
; 463.	}
?0121:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0214:
	LD	C,L
	LD	B,H
	LD	E,131
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	DE,(PlayStatus)
	LD	A,BYTE3 ErrReport
	LD	HL,LWRD ErrReport
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	XOR	A
	LD	(PlayStatus),A
	RET
?0217:
	LD	BC,0
	LD	E,6
?0218:
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,0
	LD	E,2
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	RET
?0219:
	LD	BC,g_Openparam
	LD	E,1
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,0
	LD	E,3
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	RET
?0220:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	H,0
	LD	(g_result),HL
	LD	A,L
	OR	A
	RET
?0224:
	LD	E,4
	LD	A,BYTE3 fselSetMode
	LD	HL,LWRD fselSetMode
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	DE,g_music_vars+33
	LD	A,BYTE3 fselGetNextFile
	LD	HL,LWRD fselGetNextFile
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	DE,g_music_vars+7
	LD	A,BYTE3 fselGetLocation
	LD	HL,LWRD fselGetLocation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,BYTE3 GetInformation
	LD	HL,LWRD GetInformation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,20
	LD	DE,g_TagInfoBuf1
	LD	HL,g_TagInfoBuf
	LDIR
	LD	DE,g_music_vars+33
	LD	A,BYTE3 fselGetPrevFile
	LD	HL,LWRD fselGetPrevFile
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	DE,g_music_vars+7
	LD	A,BYTE3 fselGetLocation
	LD	HL,LWRD fselGetLocation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	DE,(g_music_vars+1)
	LD	A,BYTE3 fselSetMode
	LD	HL,LWRD fselSetMode
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,BYTE3 GetInformation
	LD	HL,LWRD GetInformation
	RET
?0229:
	LD	A,BYTE3 ChangeMusic
	LD	HL,LWRD ChangeMusic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	H,0
	LD	(g_result),HL
	LD	A,L
	OR	A
	RET
PrevMusicInPlay:
; 464.	
; 465.	
; 466.	int PrevMusicInPlay(void)
; 467.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65528
; 468.	    wma_play_status_t status_buf;
; 469.	
; 470.	    musicpSendCommand(MC_STOP, NULL);
	CALL	LWRD ?0217
; 471.	    musicpSendCommand(MC_CLOSE, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 472.	    g_result = ChangeMusic(Music_Prev, Play_key);
	LD	C,2
	LD	E,4
	CALL	LWRD ?0229
; 473.	    if(!g_result)
	JR	Z,?0199
?0122:
; 474.	    {
; 475.	        return RESULT_UI_STOP;//回到停止界面
; 476.	    }
?0123:
; 477.	    FSELSetMode( FSEL_ALL_REPEATALL );
; 478.	    FSELGetNext(g_music_vars.location.filename);
; 479.	    fselGetLocation(& g_music_vars.location);
; 480.	    GetInformation();
	CALL	LWRD ?0224
; 481.	    memcpy(g_TagInfoBuf1,g_TagInfoBuf,20);
; 482.	    //g_TagInfoBuf1[19]=0;
; 483.	    FSELGetPrev(g_music_vars.location.filename);
; 484.	    fselGetLocation(& g_music_vars.location);
; 485.	    FSELSetMode(g_music_vars.repeat_mode);
; 486.	    GetInformation(); //取文件信息
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 487.	    g_music_vars.MusicOpenMod = Nor_open;
	XOR	A
	LD	(g_music_vars+6),A
; 488.	    musicpSendCommand( MC_OPEN,  (int)& g_Openparam );
	CALL	LWRD ?0219
; 489.	    g_result = musicpSendCommand( MC_LOAD, NULL );
	CALL	LWRD ?0220
; 490.	   if (g_result)
	JR	Z,?0125
?0124:
; 491.	    {
; 492.	
; 493.	      musicpSendCommand(MC_CALTIME, NULL);               // 算时间判断是否掉电
	LD	C,H
	LD	B,H
	LD	E,19
	CALL	LWRD ?0221
; 494.	      if (g_PowerOffFlag == 0x55)
	LD	A,(g_PowerOffFlag)
	CP	85
	JR	NZ,?0130
?0126:
; 495.	      {
; 496.	           if (!DisplayTimeRollback())
	LD	A,BYTE3 DisplayTimeRollback
	LD	HL,LWRD DisplayTimeRollback
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	NZ,?0130
?0128:
; 497.	          {
; 498.	                musicpSendCommand(MC_STOP, NULL);
	LD	C,L
	LD	B,L
	LD	E,6
	CALL	LWRD ?0221
; 499.	                musicpSendCommand(MC_CLOSE, NULL);
	CALL	LWRD ?0213
; 500.	                SetFullInterface();
; 501.	                need_draw = TRUE;
; 502.	                return RESULT_UI_STOP;
	JR	?0199
; 503.	          }
?0129:
?0127:
; 504.	      }
; 505.	
; 506.	
; 507.	
; 508.	   }
; 509.	  //  if(!g_result)
; 510.	  else
?0125:
; 511.	    {
; 512.	            musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
	LD	L,H
	ADD	HL,SP
	CALL	LWRD ?0214
; 513.	
; 514.	            ErrReport(PlayStatus);
; 515.	            PlayStatus=StopSta;
; 516.	            return RESULT_UI_STOP;//回到停止界面
?0199:
	LD	HL,102
; 517.	        //}
; 518.	    }
	JR	?0131
?0130:
; 519.	    SetFullInterface();
	XOR	A
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 520.	    UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic  ;     //by zxs for not refresh the bg
	LD	HL,UpDisplayFlag
	RES	0,(HL)
; 521.	    need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
; 522.	//    musicpSendCommand(MC_CALTIME, NULL);
; 523.	
; 524.	    musicpSendCommand(MC_SETPOWERCOUNT, 5);      //by jmzhang
	CALL	LWRD ?0216
; 525.	    musicpSendCommand(MC_PLAY, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 526.	    //StartIntro(TRUE);
; 527.	    return NULL;
	LD	HL,0
; 528.	}
?0131:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
DealPlayKey:
; 529.	
; 530.	//===================================================
; 531.	int DealPlayKey( void )
; 532.	{
	PUSH	BC
	PUSH	DE
; 533.	    if (g_FCexitflag)
	LD	A,(g_FCexitflag)
	OR	A
	JR	Z,?0133
?0132:
; 534.	    {
; 535.	        //关闭音量(在有此情况下退出时不想发声)
; 536.	        musicpSendCommand(MC_SETVOLUME, 0);
	LD	BC,0
	LD	E,64
	CALL	LWRD ?0221
; 537.	        OutPutVolume(0);
	LD	DE,0
	LD	A,BYTE3 OutPutVolume
	LD	HL,LWRD OutPutVolume
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 538.	        musicpSendCommand(MC_FADEINOUT, FadeOut2_def);//调用快速FADEOUT
	LD	BC,3
	LD	E,13
	CALL	LWRD ?0221
?0133:
; 539.	    }
; 540.	    if (RePlayStatus != NormalPlay)
	LD	A,(RePlayStatus)
	OR	A
	JR	Z,?0135
?0134:
; 541.	    {
; 542.	        //clear set ab point
; 543.	        musicpSendCommand(MC_SETA_B, ClrABPoint);
	CALL	LWRD ?0222
; 544.	        RePlayStatus = NormalPlay;
	XOR	A
	LD	(RePlayStatus),A
; 545.	        main_ResShowPic(BBCK2,0,0);
	LD	C,A
	PUSH	BC
	LD	DE,29
	LD	A,BYTE3 main_ResShowPic
	LD	HL,LWRD main_ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
?0135:
; 546.	       // Show_MusicType();
; 547.	       // Show_Bitrate();
; 548.	    }
; 549.	#ifdef OPT_Sup_FadeOut_fun
; 550.	    if (!g_FCexitflag)
	LD	A,(g_FCexitflag)
	OR	A
	JR	NZ,?0137
?0136:
; 551.	    {
; 552.	        FadeOut(TRUE);
	CALL	LWRD ?0228
?0137:
; 553.	    }
; 554.	#endif
; 555.	    g_FCexitflag = FALSE;
	XOR	A
	LD	(g_FCexitflag),A
; 556.	    musicpSendCommand(MC_STOP, NULL);
	LD	C,A
	LD	B,A
	LD	E,6
	CALL	LWRD ?0221
; 557.	    musicpSendCommand(MC_BACKUP, NULL);
	LD	BC,0
	LD	E,68
	CALL	LWRD ?0218
; 558.	    musicpSendCommand(MC_CLOSE, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 559.	   // SetStopToPlayInterface();
; 560.	    g_music_vars.MusicOpenMod = Nor_Break_open;
	LD	A,1
	LD	(g_music_vars+6),A
; 561.	   // RefreshMainScreen();
; 562.	    ifSelBuffToltalTimeFlag = TRUE;
	LD	(ifSelBuffToltalTimeFlag),A
; 563.	    //return RESULT_NULL; //退回上一层
; 564.	    PlayStatus=PauseSta;             // zxs add for not refresh the background
	LD	(PlayStatus),A
; 565.	    return RESULT_UI_STOP;//退回到停止状态
	LD	HL,102
; 566.	}
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
ErrReport:
; 567.	
; 568.	/******************************************************************************
; 569.	** 名字:
; 570.	** 接口:
; 571.	** 描述: 在 play 状态下碰到 错的报告
; 572.	** 输入参数:
; 573.	** 输出参数:
; 574.	** 使用说明:
; 575.	********************************************************************************/
; 576.	void ErrReport(Play_status_t status)
; 577.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65510
; 578.	    wma_inf_t drminfbuff;
; 579.	    if (musicpSendCommand(MC_GETINF, (int)&drminfbuff))
	LD	HL,0
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,16
	CALL	LWRD ?0221
	INC	L
	DEC	L
	JR	Z,?0141
?0138:
; 580.	    {
; 581.	        if (drminfbuff.drmmode == INF_DRMNOLICENSE)
	LD	B,(IX-26)
	DEC	B
	DEC	B
	JR	NZ,?0141
?0140:
; 582.	        {
; 583.	            DisplayErrMsg(NOLICENS);//显示无licens
	LD	DE,433
	JR	?0202
; 584.	            goto ErrReport_exit;
?0141:
?0139:
; 585.	            //musicpSendCommand(MC_CLOSE, NULL);
; 586.	            //SetFullInterface();
; 587.	            //return;
; 588.	        }
; 589.	    }
; 590.	    if ( (g_music_vars.location.disk == 'H')
; 591.	            && (DRV_DetectUD(1) != 0x20) )
	LD	A,(g_music_vars+7)
	CP	72
	JR	NZ,?0144
	LD	E,1
	CALL	LWRD DRV_DetectUD
	CP	32
	JR	Z,?0144
?0146:
?0145:
?0143:
; 592.	    {
; 593.	        DisplayErrMsg(CARDPULL);//显示卡拔出
	LD	DE,401
	JR	?0202
; 594.	    }
; 595.	    else
?0144:
; 596.	    {
; 597.	        DisplayErrMsg(MFMTERR);//显示格式错
	LD	DE,398
?0202:
	LD	A,BYTE3 DisplayErrMsg
	LD	HL,LWRD DisplayErrMsg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0147:
?0142:
; 598.	    }
; 599.	
; 600.	//common exit
; 601.	ErrReport_exit:
; 602.	    if ((status != StopSta)&&(status != PauseSta))
	XOR	A
	OR	(IX+2)
	JR	Z,?0149
	LD	B,A
	DEC	B
	JR	Z,?0149
?0151:
?0150:
?0148:
; 603.	    {
; 604.	        musicpSendCommand(MC_STOP, NULL);
	LD	BC,0
	LD	E,6
	CALL	LWRD ?0221
?0149:
; 605.	    }
; 606.	    musicpSendCommand(MC_CLOSE, NULL);
	LD	BC,0
	LD	E,2
	CALL	LWRD ?0221
; 607.	    SetFullInterface();
	XOR	A
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 608.	    return;
; 609.	}
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
Deal_Error_Playing:
; 610.	 void Deal_Error_Playing(void)
; 611.	 {
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65510
; 612.	            wma_inf_t drminfbuff; 
; 613.	            if (musicpSendCommand(MC_GETINF, (int)&drminfbuff))
	LD	HL,0
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,16
	CALL	LWRD ?0221
	INC	L
	DEC	L
	JR	Z,?0153
?0152:
; 614.	            {
; 615.	                
; 616.	                if (drminfbuff.drmmode == INF_DRMNOLICENSE)
	LD	B,(IX-26)
	DEC	B
	DEC	B
	JR	NZ,?0161
?0154:
; 617.	                {
; 618.	                    DisplayErrMsg(NOLICENS);//显示无licens   
	LD	DE,433
	JR	?0208
?0155:
?0153:
; 619.	                }
; 620.	            }
; 621.	
; 622.	            else if ( (g_music_vars.location.disk == 'H')
; 623.	                    && (DRV_DetectUD(1) != 0x20) )
	LD	A,(g_music_vars+7)
	CP	72
	JR	NZ,?0158
	LD	E,1
	CALL	LWRD DRV_DetectUD
	CP	32
	JR	Z,?0158
?0160:
?0159:
?0157:
; 624.	            {
; 625.	                DisplayErrMsg(CARDPULL);//显示卡拔出
	LD	DE,401
	JR	?0208
; 626.	            }
; 627.	            else
?0158:
; 628.	            {
; 629.	                DisplayErrMsg(MFMTERR);//显示格式错
	LD	DE,398
?0208:
	LD	A,BYTE3 DisplayErrMsg
	LD	HL,LWRD DisplayErrMsg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0161:
?0156:
; 630.	            }
; 631.	            musicpSendCommand(MC_STOP, NULL);
	LD	BC,0
	LD	E,6
	CALL	LWRD ?0221
; 632.	            musicpSendCommand(MC_CLOSE, NULL); 
	JP	LWRD ?0149
; 633.	            SetFullInterface();
; 634.	}
	END

⌨️ 快捷键说明

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