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

📄 sub_playstatuskey.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 4 页
字号:
	LD	E,6
?0197:
	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
?0198:
	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
?0199:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	H,0
	LD	(g_result),HL
	LD	A,L
	OR	A
	RET
?0209:
	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:
; 598.	
; 599.	
; 600.	int PrevMusicInPlay(void)
; 601.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65528
; 602.	    wma_play_status_t status_buf;
; 603.	
; 604.	    musicpSendCommand(MC_STOP, NULL);
	CALL	LWRD ?0196
; 605.	    musicpSendCommand(MC_CLOSE, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 606.	    g_result = ChangeMusic(Music_Prev, Play_key);
	LD	C,2
	LD	E,4
	CALL	LWRD ?0209
; 607.	    if(!g_result)
	JR	Z,?0182
?0120:
; 608.	    {
; 609.	        return RESULT_UI_STOP;//回到停止界面
; 610.	    }
?0121:
; 611.	    GetInformation(); //取文件信息
	LD	A,BYTE3 GetInformation
	LD	HL,LWRD GetInformation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 612.	    g_music_vars.MusicOpenMod = Nor_open;
	XOR	A
	LD	(g_music_vars+6),A
; 613.	    musicpSendCommand( MC_OPEN,  (int)& g_Openparam );
	CALL	LWRD ?0198
; 614.	    g_result = musicpSendCommand( MC_LOAD, NULL );
	CALL	LWRD ?0199
; 615.	   if (g_result)
	JR	Z,?0123
?0122:
; 616.	    {
; 617.	
; 618.	      musicpSendCommand(MC_CALTIME, NULL);               // 算时间判断是否掉电
	LD	C,H
	LD	B,H
	LD	E,19
	CALL	LWRD ?0200
; 619.	      if (g_PowerOffFlag == 0x55)
	LD	A,(g_PowerOffFlag)
	CP	85
	JR	NZ,?0128
?0124:
; 620.	      {
; 621.	           if (!DisplayTimeRollback())
	LD	A,BYTE3 DisplayTimeRollback
	LD	HL,LWRD DisplayTimeRollback
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	NZ,?0128
?0126:
; 622.	          {
; 623.	                musicpSendCommand(MC_STOP, NULL);
	LD	C,L
	LD	B,L
	LD	E,6
	CALL	LWRD ?0200
; 624.	                musicpSendCommand(MC_CLOSE, NULL);
	CALL	LWRD ?0192
; 625.	                SetFullInterface();
; 626.	                need_draw = TRUE;
; 627.	                return RESULT_UI_STOP;
?0182:
	JR	?0183
; 628.	          }
?0127:
?0125:
; 629.	      }
; 630.	
; 631.	
; 632.	
; 633.	   }
; 634.	  //  if(!g_result)
; 635.	  else
?0123:
; 636.	    {
; 637.	            musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
	LD	L,H
	ADD	HL,SP
	CALL	LWRD ?0193
; 638.	
; 639.	            ErrReport(PlayStatus);
; 640.	            PlayStatus=StopSta;
; 641.	            return RESULT_UI_STOP;//回到停止界面
?0183:
	LD	HL,102
; 642.	        //}
; 643.	    }
	JR	?0129
?0128:
; 644.	    SetFullInterface();
	XOR	A
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 645.	    UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic  ;     //by zxs for not refresh the bg
	LD	HL,UpDisplayFlag
	RES	0,(HL)
; 646.	    need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
; 647.	//    musicpSendCommand(MC_CALTIME, NULL);
; 648.	
; 649.	    musicpSendCommand(MC_SETPOWERCOUNT, 5);      //by jmzhang
	CALL	LWRD ?0195
; 650.	    musicpSendCommand(MC_PLAY, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 651.	    //StartIntro(TRUE);
; 652.	    return NULL;
	LD	HL,0
; 653.	}
?0129:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
DealPlayKey:
; 654.	
; 655.	//===================================================
; 656.	int DealPlayKey( void )
; 657.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65534
; 658.	    uchar IMK_Reg;
; 659.	    if (g_FCexitflag)
	LD	A,(g_FCexitflag)
	OR	A
	JR	Z,?0131
?0130:
; 660.	    {
; 661.	        //关闭音量(在有此情况下退出时不想发声)
; 662.	        musicpSendCommand(MC_SETVOLUME, 0);
	LD	BC,0
	LD	E,64
	CALL	LWRD ?0200
; 663.	        OutPutVolume(0);
	LD	DE,0
	LD	A,BYTE3 OutPutVolume
	LD	HL,LWRD OutPutVolume
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 664.	        musicpSendCommand(MC_FADEINOUT, FadeOut2_def);//调用快速FADEOUT
	LD	BC,3
	LD	E,13
	CALL	LWRD ?0200
?0131:
; 665.	    }
; 666.	    if (RePlayStatus != NormalPlay)
	LD	A,(RePlayStatus)
	OR	A
	JR	Z,?0133
?0132:
; 667.	    {
; 668.	        //clear set ab point
; 669.	        musicpSendCommand(MC_SETA_B, ClrABPoint);
	CALL	LWRD ?0201
; 670.	        RePlayStatus = NormalPlay;
	XOR	A
	LD	(RePlayStatus),A
; 671.	        main_ResShowPic(BBCK1,79,20);
	LD	C,20
	PUSH	BC
	LD	C,79
	LD	DE,22
	CALL	LWRD ?0206
	POP	AF
?0133:
; 672.	       // Show_MusicType();
; 673.	       // Show_Bitrate();
; 674.	    }
; 675.	#ifdef OPT_Sup_FadeOut_fun
; 676.	    if (!g_FCexitflag)
	LD	A,(g_FCexitflag)
	OR	A
	JR	NZ,?0135
?0134:
; 677.	    {
; 678.	        FadeOut(TRUE);
	LD	E,1
	LD	A,BYTE3 FadeOut
	LD	HL,LWRD FadeOut
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0135:
; 679.	    }
; 680.	#endif
; 681.	    g_FCexitflag = FALSE;
	XOR	A
	LD	(g_FCexitflag),A
; 682.	    musicpSendCommand(MC_STOP, NULL);
	LD	C,A
	LD	B,A
	LD	E,6
	CALL	LWRD ?0200
; 683.	//*********************************************
; 684.	    IMK_Reg=input8(0x27);
	IN	A,(39)
	LD	(IX-2),A
; 685.	    output8(0x27,0);
; 686.	    MusicEdit_SelSeg.EndSec=FS_FTell(m_Mp3deFileHandle);            
	CALL	LWRD ?0207
; 687.	    MusicEditEndTime.second=c_mp3deNowTimeSencond;
; 688.	     MusicEditEndTime.minute=c_mp3deNowTimeMinute;
; 689.	     MusicEditEndTime.hour=    c_mp3deNowTimeHour;
; 690.	    output8(0x27,IMK_Reg);            
	LD	A,(IX-2)
	OUT	(39),A
; 691.	//**********************************************
; 692.	    musicpSendCommand(MC_BACKUP, NULL);
	LD	BC,0
	LD	E,68
	CALL	LWRD ?0197
; 693.	    musicpSendCommand(MC_CLOSE, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 694.	   // SetStopToPlayInterface();
; 695.	    g_music_vars.MusicOpenMod = Nor_Break_open;
	LD	A,1
	LD	(g_music_vars+6),A
; 696.	   // RefreshMainScreen();
; 697.	    ifSelBuffToltalTimeFlag = TRUE;
	LD	(ifSelBuffToltalTimeFlag),A
; 698.	    //return RESULT_NULL; //退回上一层
; 699.	    PlayStatus=PauseSta;             // zxs add for not refresh the background
	LD	(PlayStatus),A
; 700.	    return RESULT_UI_STOP;//退回到停止状态
	LD	HL,102
; 701.	}
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
ErrReport:
; 702.	
; 703.	/******************************************************************************
; 704.	** 名字:
; 705.	** 接口:
; 706.	** 描述: 在 play 状态下碰到 错的报告
; 707.	** 输入参数:
; 708.	** 输出参数:
; 709.	** 使用说明:
; 710.	********************************************************************************/
; 711.	void ErrReport(Play_status_t status)
; 712.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65510
; 713.	    wma_inf_t drminfbuff;
; 714.	    if (musicpSendCommand(MC_GETINF, (int)&drminfbuff))
	LD	HL,0
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,16
	CALL	LWRD ?0200
	INC	L
	DEC	L
	JR	Z,?0139
?0136:
; 715.	    {
; 716.	        if (drminfbuff.drmmode == INF_DRMNOLICENSE)
	LD	B,(IX-26)
	DEC	B
	DEC	B
	JR	NZ,?0139
?0138:
; 717.	        {
; 718.	            DisplayErrMsg(NOLICENS);//显示无licens
	LD	DE,599
	JR	?0186
; 719.	            goto ErrReport_exit;
?0139:
?0137:
; 720.	        }
; 721.	    }
; 722.	    if ( (g_music_vars.location.disk == 'H')
; 723.	            && (DRV_DetectUD(1) != 0x20) )
	LD	A,(g_music_vars+7)
	CP	72
	JR	NZ,?0142
	LD	E,1
	CALL	LWRD DRV_DetectUD
	CP	32
	JR	Z,?0142
?0144:
?0143:
?0141:
; 724.	    {
; 725.	        DisplayErrMsg(CARDPULL);//显示卡拔出
	LD	DE,394
	JR	?0186
; 726.	    }
; 727.	    else
?0142:
; 728.	    {
; 729.	        if(g_music_vars.fselmod == FSEL_TYPE_USERPL)    // 收藏夹中的文件是在播放状态下加入,一般不会格式错误
	LD	A,(g_music_vars+81)
	DEC	A
	DEC	A
	JR	NZ,?0147
?0146:
; 730.	        {
; 731.	          DisplayErrMsg(MFILEOUT);  
	LD	DE,535
	LD	A,BYTE3 DisplayErrMsg
	LD	HL,LWRD DisplayErrMsg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 732.	          g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;   //收藏夹出错要先退出收藏夹模式
	XOR	A
	LD	(g_music_vars+81),A
; 733.	        }
; 734.	        else
	JR	?0148
?0147:
; 735.	        DisplayErrMsg(MFMTERR);//显示格式错
	LD	DE,538
?0186:
	LD	A,BYTE3 DisplayErrMsg
	LD	HL,LWRD DisplayErrMsg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0148:
?0145:
?0140:
; 736.	    }
; 737.	
; 738.	//common exit
; 739.	ErrReport_exit:
; 740.	    if ((status != StopSta)&&(status != PauseSta))
	XOR	A
	OR	(IX+2)
	JR	Z,?0150
	LD	B,A
	DEC	B
	JR	Z,?0150
?0152:
?0151:
?0149:
; 741.	    {
; 742.	        musicpSendCommand(MC_STOP, NULL);
	LD	BC,0
	LD	E,6
	CALL	LWRD ?0200
?0150:
; 743.	    }
; 744.	    musicpSendCommand(MC_CLOSE, NULL);
	LD	BC,0
	LD	E,2
	CALL	LWRD ?0200
; 745.	    SetFullInterface();
	XOR	A
	LD	(ui_auto_update),A
	LD	HL,UpDisplayFlag
	LD	A,(HL)
	OR	193
	LD	(HL),A
	INC	HL
	LD	(HL),255
; 746.	    return;
; 747.	}
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
DealFilePlayEnd:
; 748.	
; 749.	int DealFilePlayEnd(void)
; 750.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	-8
; 751.	         int g_result_bak;   
; 752.	         music_play_status_t status_buf; 
; 753.	 /////////////////////////////////////////////////////////////////////////////////////
; 754.	         g_result_bak=g_result;
	LD	DE,(g_result)
; 755.	         musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
	PUSH	DE
	LD	HL,2
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,131
	CALL	LWRD ?0200
	POP	DE
; 756.	         if (status_buf.status == PLAYING_REACH_END)
	LD	A,(IX-8)
	CP	6
	JR	NZ,?0156
?0153:
; 757.	        {
; 758.	          g_result=DealMusicFileEnd(0); 
	PUSH	DE
	LD	E,0
	LD	A,BYTE3 DealMusicFileEnd
	LD	HL,LWRD DealMusicFileEnd
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
	POP	DE
; 759.	          if ( g_result != NULL )
	LD	A,L
	OR	H
	JR	Z,?0156
?0155:
; 760.	          {
; 761.	            if(g_result_bak)         //g_result_bak !=0,返回其消息       
	LD	A,E
	OR	D
	JR	Z,?0159
?0157:
; 762.	            { 
; 763.	              g_result = g_result_bak;
	LD	(g_result),DE
; 764.	              return g_result;  
	EX	DE,HL
; 765.	            }
	JR	?0159
?0158:
; 766.	            else
; 767.	              return g_result;  
; 768.	           } 
?0156:
?0154:
; 769.	         }
; 770.	        g_result=g_result_bak;
	LD	(g_result),DE
; 771.	//////////////////////////////////////////////////////////////////////////////////////解决DRM在菜单中长按mode重启问题 
; 772.	        return   0;
	LD	HL,0
; 773.	} 
?0159:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
	RSEG	IDATA0
g_volcounter:
	DEFS	1
	RSEG	CDATA0
	DEFB	0
	END

⌨️ 快捷键说明

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