ui_play.s01

来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 1,535 行 · 第 1/3 页

S01
1,535
字号
?0058:
?0054:
?0052:
?0050:
; 203.	                    }
; 204.	                }
; 205.	            }
; 206.	        }
; 207.	
; 208.	        if(return_to_play==0)
	LD	A,(return_to_play)
	OR	A
	JR	NZ,?0060
?0059:
; 209.	           g_result = RealDisplay();
	LD	A,BYTE3 RealDisplay
	LD	HL,LWRD RealDisplay
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
; 210.	        else
	JR	?0061
?0060:
; 211.	           return_to_play=0;
	XOR	A
	LD	(return_to_play),A
?0061:
; 212.	
; 213.	        if(g_result == RESULT_UI_STOP)
	LD	HL,(g_result)
	LD	A,102
	XOR	L
	OR	H
	JR	NZ,?0063
?0062:
; 214.	        {
; 215.	            return 0;
?0162:
	LD	HL,0
; 216.	        }
?0064:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0063:
; 217.	
; 218.	    }/* while(1) */
; 219.	
; 220.	}
	JP	LWRD ?0003
?0185:
	LD	E,0
?0184:
	LD	A,BYTE3 DealMusicFileEnd
	LD	HL,LWRD DealMusicFileEnd
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0186:
	LD	C,L
	LD	B,H
	LD	E,131
?0187:
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	JP	LWRD ?BANK_CALL_DIRECT_L08
RealDisplay:
; 221.	/*
; 222.	********************************************************************************
; 223.	*             void RealDisplay( void )
; 224.	*
; 225.	* Description : 显示时间,滚屏,AB闪
; 226.	*
; 227.	* Arguments   : void
; 228.	*
; 229.	* Returns     : int
; 230.	*
; 231.	* Notes       :
; 232.	*
; 233.	********************************************************************************
; 234.	*/
; 235.	int RealDisplay( void )
; 236.	{
	PUSH	BC
	PUSH	DE
; 237.	
; 238.	    BackupCurrentTime();
	LD	A,BYTE3 BackupCurrentTime
	LD	HL,LWRD BackupCurrentTime
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 239.	
; 240.	    if (g_music_vars.BreakPTDisTime.second != g_OldSecTempBackup)
	LD	A,(g_music_vars+79)
	PUSH	AF
	LD	A,(g_OldSecTempBackup)
	LD	B,A
	POP	AF
	CP	B
	JR	Z,?0066
?0065:
; 241.	    {
; 242.	        g_OldSecTempBackup = g_music_vars.BreakPTDisTime.second;
	LD	A,(g_music_vars+79)
	LD	(g_OldSecTempBackup),A
; 243.	
; 244.	        if (g_music_vars.repeat_mode == Intro)
	LD	A,(g_music_vars+1)
	CP	6
	JR	NZ,?0070
?0067:
; 245.	        {
; 246.	            g_introCNT++;
	LD	HL,g_introCNT
	INC	(HL)
; 247.	            if ( (g_introCntMode
; 248.	                    && (g_music_vars.BreakPTDisTime.second > IntCntValDef) )
; 249.	                    || (g_introCNT > IntCntValDef) )
	LD	A,(g_introCntMode)
	OR	A
	JR	Z,?0072
	LD	A,(g_music_vars+79)
	LD	B,A
	LD	A,10
	CP	B
	JR	C,?0073
?0072:
?0071:
	LD	A,(g_introCNT)
	LD	B,A
	LD	A,10
	CP	B
	JR	NC,?0070
?0073:
?0074:
?0069:
; 250.	
; 251.	            {                   //从头开始的情况
; 252.	
; 253.	                return DealMusicFileEnd(0);
	CALL	LWRD ?0185
; 254.	            }
	JP	LWRD ?0099
?0070:
?0068:
; 255.	        }
; 256.	        
; 257.	        /*              //Jerry Xie Removed for test
; 258.	        if((RePlayStatus==NormalPlay)&&(MusicEditSelStatus==MusicEditSelSta_NoSel))
; 259.	                Show_Bitrate();*/
; 260.	        
; 261.	        ShowNowTime(TRUE);
	LD	E,1
	LD	A,BYTE3 ShowNowTime
	LD	HL,LWRD ShowNowTime
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0066:
; 262.	    }
; 263.	
; 264.	    //滚屏时的处理
; 265.	    if (g_ScrollFlag)
	LD	A,(g_ScrollFlag)
	OR	A
	JR	Z,?0076
?0075:
; 266.	    {
; 267.	        g_ScrollFlag = FALSE;
	XOR	A
	LD	(g_ScrollFlag),A
; 268.	        SetPenColor(Color_BLACK_def);
	LD	C,A
	LD	E,C
	LD	B,A
	LD	D,B
	CALL	LWRD SetPenColor
; 269.	        SetBackgdColor(Color_MENU_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetBackgdColor
; 270.	        ///-SetTextOutMode(0);
; 271.	        ///-Scroll(g_TagInfoBuf, FALSE,g_comval.langid);
; 272.	        Scroll(g_TagInfoBuf, g_comval.langid);
	LD	BC,(g_comval+12)
	LD	DE,g_TagInfoBuf
	LD	A,BYTE3 Scroll
	LD	HL,LWRD Scroll
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 273.	        ///-SetTextOutMode(1);
; 274.	        {
; 275.	            ui_show_batt(GetBattery(), g_comval.BatteryType,0);
	LD	C,0
	PUSH	BC
	LD	BC,(g_comval+15)
	CALL	LWRD GetBattery
	LD	E,A
	LD	D,0
	LD	A,BYTE3 ui_show_batt
	LD	HL,LWRD ui_show_batt
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	HL
?0076:
; 276.	
; 277.	        }
; 278.	
; 279.	    }
; 280.	
; 281.	    //复读A闪,B闪时的处理
; 282.	    if (RePlayStatus == WaitSetAPointForAB)
	LD	A,(RePlayStatus)
	DEC	A
	JR	NZ,?0078
?0077:
; 283.	    {
; 284.	        if (g_2HZFlag)
	LD	A,(g_2HZFlag)
	OR	A
	LD	C,20
	PUSH	BC
	LD	C,79
	JR	NZ,?0175
?0079:
; 285.	        {
; 286.	            main_ResShowPic(MRPLAB,79,20);
; 287.	        }
; 288.	        else
?0080:
; 289.	        {
; 290.	            main_ResShowPic(MRPLNOA,79,20);
	LD	DE,214
	JR	?0167
?0081:
?0078:
; 291.	        }
; 292.	    }
; 293.	    else if (RePlayStatus == WaitSetBPointForAB)
	LD	A,(RePlayStatus)
	DEC	A
	DEC	A
	JR	NZ,?0087
?0083:
; 294.	    {
; 295.	        if (g_2HZFlag)
	LD	A,(g_2HZFlag)
	OR	A
	LD	C,20
	PUSH	BC
	LD	C,79
	JR	Z,?0086
?0085:
; 296.	        {
; 297.	            main_ResShowPic(MRPLAB,79,20);
?0175:
	LD	DE,209
	JR	?0167
; 298.	        }
; 299.	        else
?0086:
; 300.	        {
; 301.	            main_ResShowPic(MRPLNOB,79,20);
	LD	DE,215
?0167:
	CALL	LWRD ?0189
	POP	AF
?0087:
?0084:
?0082:
; 302.	        }
; 303.	    }
; 304.	
; 305.	    //********************music edit add by mzh 2007.1.21*****
; 306.	    if(MusicEditSelStatus!=MusicEditSelSta_NoSel)
	LD	A,(MusicEditSelStatus)
	OR	A
	JR	Z,?0098
?0088:
; 307.	    {
; 308.	        if(MusicEditSelStatus==MusicEditSelSta_SelFinish)
	CP	3
	JR	Z,?0174
?0090:
; 309.	            main_ResShowPic(MRPLSEL,79,20);
; 310.	        else
?0091:
; 311.	        {
; 312.	            if (g_2HZFlag)
	LD	A,(g_2HZFlag)
	OR	A
	JR	Z,?0094
?0093:
; 313.	            {
; 314.	                main_ResShowPic(MRPLSEL,79,20);
?0174:
	LD	C,20
	PUSH	BC
	LD	C,79
	LD	DE,216
	JR	?0168
; 315.	            }
; 316.	            else
?0094:
; 317.	            {
; 318.	                if(MusicEditSelStatus==MusicEditSelSta_WaitStart)
	LD	A,(MusicEditSelStatus)
	DEC	A
	LD	C,20
	PUSH	BC
	LD	C,79
	JR	NZ,?0097
?0096:
; 319.	                       main_ResShowPic(MRPLSELA,79,20);
	LD	DE,217
	JR	?0168
; 320.	                else
?0097:
; 321.	                    main_ResShowPic(MRPLSELB,79,20);                
	LD	DE,218
?0168:
	CALL	LWRD ?0189
	POP	AF
?0098:
?0095:
?0092:
?0089:
; 322.	            }
; 323.	        }
; 324.	    }
; 325.	    //***************************************************
; 326.	    return NULL;
	LD	HL,0
; 327.	}
?0099:
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0190:
	LD	A,E
	ADD	A,8
	LD	C,A
	LD	DE,153
?0189:
	LD	A,BYTE3 main_ResShowPic
	LD	HL,LWRD main_ResShowPic
	JP	LWRD ?BANK_CALL_DIRECT_L08
musicpSendCommand:
; 328.	/*
; 329.	********************************************************************************
; 330.	*             bool musicpSendCommand( BYTE cmd, int param )
; 331.	*
; 332.	* Description : 根据不同的文件类型来选择发的命令(对MODULE)
; 333.	*
; 334.	* Arguments   : cmd 命令 param 参数
; 335.	*
; 336.	* Returns     : success/fail
; 337.	*
; 338.	* Notes       :
; 339.	*
; 340.	********************************************************************************
; 341.	*/
; 342.	bool musicpSendCommand(BYTE cmd, int param)
; 343.	{
	PUSH	IX
	PUSH	DE
; 344.	    //清 WATCH_DOG
; 345.	    output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 346.	
; 347.	    switch ( cmd )
	LD	A,E
	CP	13
	JR	Z,?0101
	CP	128
	JR	C,?0102
	CP	132
	JR	Z,?0102
	CP	134
	JR	NC,?0102
?0101:
; 348.	    {//这几个命令由于经常调用,所以不要切BANK
; 349.	        case MC_GETTIME:
; 350.	        case MC_GETSAPLE:
; 351.	        case MC_GETSTATUS:
; 352.	        case MC_GETAUDIOFMT:
; 353.	        case MC_FADEINOUT:
; 354.	        case MC_GETPOWERVALUE:
; 355.	            switch ( g_currentMusicType )
	LD	DE,(g_currentMusicType)
	CALL	LWRD ?C_S_SWITCH_L06
	DEFB	1
	DEFW	6
	DEFW	?0107
	DEFW	?0103
	DEFW	?0104
	DEFW	?0104
	DEFW	?0104
	DEFW	?0105
	DEFW	?0106
?0103:
; 356.	            {
; 357.	            case Music_MP3: //mp3
; 358.	                return mp3pSendCommand(cmd, param);
	LD	E,A
	LD	A,BYTE3 mp3pSendCommand
	LD	HL,LWRD mp3pSendCommand
	JR	?0183
; 359.	
; 360.	            case Music_WMA: //wma
?0104:
; 361.	            case Music_ASF: //asf
; 362.	            case Music_WMV: //wmv
; 363.	                {
; 364.	                    return wmapSendCommand(cmd, param);
	LD	E,A
	LD	A,BYTE3 wmapSendCommand
	LD	HL,LWRD wmapSendCommand
	JR	?0183
; 365.	                }
?0105:
; 366.	            case Music_OGG:
; 367.	                return oggpSendCommand(cmd, param);
	LD	E,A
	LD	A,BYTE3 oggpSendCommand
	LD	HL,LWRD oggpSendCommand
	JR	?0183
; 368.	            case Music_APE:
?0106:
; 369.	                return apepSendCommand(cmd, param); 
	LD	E,A
	LD	A,BYTE3 apepSendCommand
	LD	HL,LWRD apepSendCommand
	JR	?0183
; 370.	 
; 371.	            default:
?0107:
; 372.	                return FALSE;
	LD	L,0
; 373.	            }
	JR	?0109
?0102:
?0108:
; 374.	
; 375.	        default:
; 376.	            //下面函数放在别的 BANK 里,
; 377.	            return musicpSendCommand_bank( cmd, param );
	LD	A,BYTE3 musicpSendCommand_bank
	LD	HL,LWRD musicpSendCommand_bank
?0183:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 378.	    }
?0100:
; 379.	    return FALSE;
; 380.	
; 381.	
; 382.	}
?0109:
	POP	AF
	POP	IX
	JP	LWRD ?BANK_FAST_LEAVE_L08
BackupCurrentTime:
; 383.	/*
; 384.	********************************************************************************
; 385.	*             void Show_Bitrate( void )
; 386.	*
; 387.	* Description : 显示比特率
; 388.	*
; 389.	* Arguments   : void
; 390.	*
; 391.	* Returns     : void
; 392.	*
; 393.	* Notes       :
; 394.	*
; 395.	********************************************************************************
; 396.	*/
; 397.	
; 398.	void BackupCurrentTime(void)
; 399.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65530
; 400.	    Full_time_t time_buf;
; 401.	    if ( musicpSendCommand(MC_GETTIME, (int)& time_buf) )
	LD	HL,0
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,128
	CALL	LWRD ?0187
	INC	L
	DEC	L
	JR	Z,?0111
?0110:
; 402.	    {
; 403.	        g_music_vars.BreakPTDisTime.hour = time_buf.TimeHour;
	LD	A,(IX-2)
	LD	(g_music_vars+77),A
; 404.	        g_music_vars.BreakPTDisTime.minute = time_buf.TimeMinute;
	LD	A,(IX-3)
	LD	(g_music_vars+78),A
; 405.	        g_music_vars.BreakPTDisTime.second = time_buf.TimeSecond;
	LD	A,(IX-4)
	LD	(g_music_vars+79),A
?0111:
; 406.	    }
; 407.	}
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
ShowNowTime:
; 408.	
; 409.	
; 410.	void ShowNowTime(bool para)                       //zxs change for guage display
; 411.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	-16
	PUSH	IY
; 412.	     long  int totaltime,nowtime;
; 413.	     int   num;
; 414.	     int   i;
; 415.	     music_play_status_t status_buf;
; 416.	     

⌨️ 快捷键说明

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