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

📄 sub_playstatuskey.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 4 页
字号:
; 411.	    {
; 412.	        musicpSendCommand(MC_STEP, 0);
	LD	BC,0
	LD	E,7
	CALL	LWRD ?0200
; 413.	        PlayStatus = PlaySta;
	LD	A,2
	LD	(PlayStatus),A
; 414.	    }
; 415.	    else
	JP	LWRD ?0098
?0072:
; 416.	    {
; 417.	        switch (RePlayStatus)
	LD	DE,(RePlayStatus)
	CALL	LWRD ?C_S_SWITCH_L06
	DEFB	0
	DEFW	4
	DEFW	?0098
	DEFW	?0077
	DEFW	?0083
	DEFW	?0084
	DEFW	?0089
?0077:
; 418.	        {
; 419.	            case NormalPlay:
; 420.	                if (key == (AP_KEY_AB | AP_KEY_UP))  //ab key
	LD	A,49
	XOR	(IX+2)
	OR	(IX+3)
	JR	NZ,?0079
?0078:
; 421.	                {
; 422.	                    musicpSendCommand(MC_SETA_B, SetAPoint); //SET_A
	LD	BC,1
	CALL	LWRD ?0202
; 423.	                }
; 424.	                else //next key
	JR	?0080
?0079:
; 425.	                {
; 426.	                  #ifdef OPT_Sup_FadeOut_fun
; 427.	                    FadeOut(TRUE);
	CALL	LWRD ?0208
; 428.	                  #endif
; 429.	
; 430.	                    MusicEditSelStatus=MusicEditSelSta_NoSel;
; 431.	                    MusicEditStatus=MusicEditSta_NoFun;
; 432.	
; 433.	                    g_result = ToNextMusic(Play_key);
	LD	E,2
	LD	A,BYTE3 ToNextMusic
	LD	HL,LWRD ToNextMusic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
; 434.	                    if(g_result != 0)
	LD	A,L
	OR	H
	JP	NZ,?0100
?0081:
; 435.	                    {
; 436.	                        return g_result;
; 437.	                    }
?0082:
; 438.	                    SetFullInterface();
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 439.	                    UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic  ;     //by zxs for not refresh the bg
	LD	HL,UpDisplayFlag
	RES	0,(HL)
?0080:
; 440.	                }
; 441.	                break;
	JR	?0098
?0083:
; 442.	
; 443.	            case WaitSetAPointForAB:
; 444.	                musicpSendCommand(MC_SETA_B, SetAPoint); //SET_A
	LD	BC,1
	CALL	LWRD ?0202
; 445.	                break;
	JR	?0098
?0084:
; 446.	
; 447.	            case WaitSetBPointForAB:
; 448.	                if(g_ABMinTimeCNT == 0) //要大于AB最小时间
	LD	A,(g_ABMinTimeCNT)
	OR	A
	JR	NZ,?0086
?0085:
; 449.	                {
; 450.	                    DEBUGP(0xa1);
; 451.	
; 452.	                    if ( musicpSendCommand(MC_SETA_B, SetBPoint) ); //SET_B
	LD	BC,2
	CALL	LWRD ?0202
?0087:
?0088:
; 453.	                    {
; 454.	                        g_AVSetFlag = FALSE;
	XOR	A
	LD	(g_AVSetFlag),A
?0086:
; 455.	                    }
; 456.	                    DEBUGP(0xa2);
; 457.	                }
; 458.	                break;
	JR	?0098
?0089:
; 459.	
; 460.	            case ABLoopPlay:
; 461.	              #ifdef OPT_Sup_follow_fun//支持跟读对比功能
; 462.	                if (g_music_vars.location.disk == 'C')
	LD	A,(g_music_vars+7)
	CP	67
	JR	NZ,?0091
?0090:
; 463.	                {
; 464.	                    //只有当前盘为“C”时才支持跟读对比功能
; 465.	                    musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
	LD	HL,2
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,131
	CALL	LWRD ?0200
; 466.	                    if (status_buf.status == PLAYING_REACH_A)
	LD	A,(IX-8)
	CP	7
	JR	NZ,?0093
?0092:
; 467.	                    {
; 468.	                        musicpSendCommand(MC_CALTIME, NULL);
	LD	BC,0
	LD	E,19
	CALL	LWRD ?0194
; 469.	                        musicpSendCommand(MC_PLAY, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0093:
; 470.	                    }
; 471.	                    g_FCexitflag = FALSE;
	XOR	A
	LD	(g_FCexitflag),A
; 472.	                    g_result = ui_follow_compare();
	LD	A,BYTE3 ui_follow_compare
	LD	HL,LWRD ui_follow_compare
	CALL	LWRD ?0203
; 473.	                    g_music_vars.MusicOpenMod = Nor_Break_open;//都是以断点方式退出的
	LD	(g_music_vars+6),A
; 474.	                    g_ReplayTimeCNT = 0;
	XOR	A
	LD	(g_ReplayTimeCNT),A
; 475.	                    if (g_result != 0)
	LD	A,L
	OR	H
	JR	Z,?0096
?0094:
; 476.	                    {
; 477.	                        return g_result;
; 478.	                    }
	JR	?0100
?0095:
; 479.	                }
; 480.	                else
?0091:
; 481.	                {
; 482.	                    //当插卡时不支持跟读对比功能
; 483.	                    musicpSendCommand(MC_SETA_B, ClrABPoint); //CLEAR_AB
	CALL	LWRD ?0201
; 484.	                    RePlayStatus = WaitSetAPointForAB;
	LD	A,1
	LD	(RePlayStatus),A
?0096:
; 485.	                }
; 486.	              #else//OPT_Sup_follow_fun
; 487.	                musicpSendCommand(MC_SETA_B, ClrABPoint); //CLEAR_AB
; 488.	                RePlayStatus = WaitSetAPointForAB;
; 489.	              #endif//OPT_Sup_follow_fun
; 490.	
; 491.	
; 492.	                SetFullInterface();
	XOR	A
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 493.	               // UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic  ;     //by zxs for not refresh the bg
; 494.	                if(RePlayStatus!=NormalPlay)           //zxs add for s73
	LD	A,(RePlayStatus)
	OR	A
	JR	Z,?0098
?0097:
; 495.	                   UpDisplayFlag = UpDisplayFlag &clr_musicbitrate;
	LD	HL,UpDisplayFlag
	INC	HL
	RES	5,(HL)
?0098:
; 496.	                //UpDisplayFlag=UpDisplayFlag | up_MPRLmode;
; 497.	                break;
?0099:
; 498.	
; 499.	            default:
; 500.	                break;
?0076:
?0075:
; 501.	        }
; 502.	    }
; 503.	    need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
; 504.	    return NULL;
?0172:
	LD	HL,0
; 505.	}
?0100:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0195:
	LD	BC,5
	LD	E,89
?0194:
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,0
	LD	E,4
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	RET
?0207:
	XOR	A
	OUT	(39),A
	LD	DE,(m_Mp3deFileHandle)
	CALL	LWRD FS_FTell
	LD	(MusicEdit_SelSeg+4),HL
	LD	(MusicEdit_SelSeg+6),BC
	LD	A,(c_mp3deNowTimeSencond)
	LD	(MusicEditEndTime+2),A
	LD	A,(c_mp3deNowTimeMinute)
	LD	(MusicEditEndTime+1),A
	LD	A,(c_mp3deNowTimeHour)
	LD	(MusicEditEndTime),A
	RET
?0208:
	LD	E,1
	LD	A,BYTE3 FadeOut
	LD	HL,LWRD FadeOut
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	XOR	A
	LD	(MusicEditSelStatus),A
	LD	(MusicEditStatus),A
	RET
play_key_prev:
; 506.	
; 507.	//======正常播放时的PREV键处理========
; 508.	int play_key_prev( int key )
; 509.	{
	PUSH	BC
	PUSH	DE
; 510.	    wma_play_status_t status_buf;
; 511.	
; 512.	    if (RePlayStatus != NormalPlay)
	LD	A,(RePlayStatus)
	OR	A
	JR	Z,?0102
?0101:
; 513.	    {
; 514.	        musicpSendCommand(MC_SETA_B, ClrABPoint); //clear AB
	CALL	LWRD ?0201
; 515.	
; 516.	        RePlayStatus = WaitSetAPointForAB;
	LD	A,1
	LD	(RePlayStatus),A
; 517.	        UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
	LD	HL,UpDisplayFlag
	INC	HL
	SET	3,(HL)
; 518.	        need_draw = TRUE;
	LD	(need_draw),A
; 519.	        return NULL;
	JR	?0103
; 520.	    }
?0102:
; 521.	
; 522.	    switch (PlayStatus)
	LD	A,(PlayStatus)
	CP	3
	JR	C,?0105
	CP	5
	JR	NC,?0105
?0104:
; 523.	    {
; 524.	        case FBPlaySta:
; 525.	        case FFPlaySta:
; 526.	            musicpSendCommand(MC_STEP, 0);
	LD	BC,0
	LD	E,7
	CALL	LWRD ?0200
; 527.	            PlayStatus = PlaySta;
	LD	A,2
	LD	(PlayStatus),A
; 528.	            break;
	JR	?0103
?0105:
	CP	2
	JR	NZ,?0103
; 529.	
; 530.	        case PlaySta:
; 531.	#ifdef OPT_Sup_FadeOut_fun
; 532.	            FadeOut(TRUE);
	CALL	LWRD ?0208
; 533.	#endif
; 534.	
; 535.	            MusicEditSelStatus=MusicEditSelSta_NoSel;
; 536.	            MusicEditStatus=MusicEditSta_NoFun;
; 537.	
; 538.	            g_result = PrevMusicInPlay();
	LD	A,BYTE3 PrevMusicInPlay
	LD	HL,LWRD PrevMusicInPlay
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
; 539.	            if (g_result != 0) return g_result;
	LD	A,L
	OR	H
	JR	NZ,?0109
?0106:
; 540.	            break;
?0107:
?0108:
; 541.	
; 542.	        default:
; 543.	            break;
?0103:
; 544.	    }
; 545.	    return NULL;
	LD	HL,0
; 546.	}
?0109:
	POP	AF
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
ToNextMusic:
; 547.	
; 548.	int ToNextMusic( Music_sel_mod_t mod )
; 549.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65528
; 550.	    wma_play_status_t status_buf;
; 551.	    output8(0x27,input8(0x27)&0xbf); //For test  zxs 2006.04.07
	IN	A,(39)
	RES	6,A
	OUT	(39),A
; 552.	    musicpSendCommand(MC_STOP, NULL);
	CALL	LWRD ?0196
; 553.	    musicpSendCommand(MC_CLOSE, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 554.	    output8(0x27,input8(0x27)|0x40); //For test  zxs 2006.04.07 
	IN	A,(39)
	SET	6,A
	OUT	(39),A
; 555.	    g_result = ChangeMusic(Music_Next, mod);
	LD	C,(IX+2)
	LD	E,3
	CALL	LWRD ?0209
; 556.	    if(!g_result)
	JR	Z,?0178
?0110:
; 557.	    {
; 558.	        return RESULT_UI_STOP;//回到停止界面
; 559.	    }
?0111:
; 560.	    GetInformation(); //取文件信息
	LD	A,BYTE3 GetInformation
	LD	HL,LWRD GetInformation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 561.	    musicpSendCommand( MC_OPEN,  (int)& g_Openparam );
	CALL	LWRD ?0198
; 562.	    g_result = musicpSendCommand(MC_LOAD, NULL);
	CALL	LWRD ?0199
; 563.	    if(g_result)
	JR	Z,?0113
?0112:
; 564.	    {
; 565.	            //当是WMA时由于要提高速度,在这种情况下就不计算总时间了,
; 566.	        musicpSendCommand(MC_CALTIME, NULL);
	LD	C,H
	LD	B,H
	LD	E,19
	CALL	LWRD ?0200
; 567.	        if (g_PowerOffFlag == 0x55)
	LD	A,(g_PowerOffFlag)
	CP	85
	JR	NZ,?0118
?0114:
; 568.	        {
; 569.	             if (!DisplayTimeRollback())
	LD	A,BYTE3 DisplayTimeRollback
	LD	HL,LWRD DisplayTimeRollback
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	NZ,?0118
?0116:
; 570.	            {
; 571.	                  musicpSendCommand(MC_STOP, NULL);
	LD	C,L
	LD	B,L
	LD	E,6
	CALL	LWRD ?0200
; 572.	                  musicpSendCommand(MC_CLOSE, NULL);
	CALL	LWRD ?0192
; 573.	                  SetFullInterface();
; 574.	                  need_draw = TRUE;
; 575.	                  return RESULT_UI_STOP;
?0178:
	JR	?0179
; 576.	            }
?0117:
?0115:
; 577.	        }
; 578.	  }
; 579.	
; 580.	  //  if(!g_result)
; 581.	  else
?0113:
; 582.	    {
; 583.	            musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
	LD	L,H
	ADD	HL,SP
	CALL	LWRD ?0193
; 584.	            ErrReport(PlayStatus);
; 585.	            PlayStatus=StopSta;
; 586.	            return RESULT_UI_STOP;//回到停止界面
?0179:
	LD	HL,102
; 587.	    }
	JR	?0119
?0118:
; 588.	
; 589.	  //  musicpSendCommand(MC_CALTIME, NULL);
; 590.	
; 591.	    musicpSendCommand(MC_SETPOWERCOUNT, 5);      //by jmzhang
	CALL	LWRD ?0195
; 592.	
; 593.	
; 594.	    musicpSendCommand(MC_PLAY, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 595.	    //StartIntro(TRUE);
; 596.	    return NULL;
	LD	HL,0
; 597.	}
?0119:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0193:
	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
?0196:
	LD	BC,0

⌨️ 快捷键说明

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