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

📄 ui_lyric.s01

📁 MP3 整个 SDK
💻 S01
📖 第 1 页 / 共 2 页
字号:
; 155.	                    g_music_vars.MusicOpenMod = Nor_Break_open;
	LD	A,1
	LD	(g_music_vars+6),A
; 156.	                    return RESULT_UI_STOP;      //退回上一层
	JP	LWRD ?0100
; 157.	
; 158.	                case AP_KEY_VOLADD | AP_KEY_UP: //下一屏歌词
?0028:
; 159.	                    if (lyricGetNext(LyricStrBuf, sizeof(LyricStrBuf)))
	LD	C,88
	LD	DE,LyricStrBuf
	LD	A,BYTE3 lyricGetNext
	LD	HL,LWRD lyricGetNext
	CALL	LWRD ?0109
	JR	Z,?0033
?0029:
; 160.	                    {
; 161.	                        DisplayLyricStr(LyricStrBuf); //显示歌词内容
	JR	?0101
?0030:
; 162.	                    }
; 163.	                    ExproFlag = TRUE;
; 164.	                    g_2HZ_CNT = 0;
; 165.	                    break;
?0031:
; 166.	
; 167.	                case AP_KEY_VOLSUB | AP_KEY_UP: //上一屏歌词
; 168.	                    if (lyricGetPrev(LyricStrBuf, sizeof(LyricStrBuf)))
	CALL	LWRD ?0108
	JR	Z,?0033
?0032:
; 169.	                    {
; 170.	                        DisplayLyricStr(LyricStrBuf); //显示歌词内容
?0101:
	CALL	LWRD ?0110
?0033:
; 171.	                    }
; 172.	                    ExproFlag = TRUE;
; 173.	                    g_2HZ_CNT = 0;
	LD	HL,0
	LD	(g_2HZ_CNT),HL
	LD	(IX-2),1
; 174.	                    break;
	JP	LWRD ?0024
?0034:
; 175.	
; 176.	                case AP_KEY_MODE | AP_KEY_UP:
; 177.	                    if (!KeyUpFlag)
	XOR	A
	OR	(IX-1)
	JR	NZ,?0036
?0035:
; 178.	                    {
; 179.	                        KeyUpFlag = TRUE;
	LD	(IX-1),1
; 180.	                        break;
	JP	LWRD ?0024
?0036:
; 181.	                    }
; 182.	                    //SetStopInterface();
; 183.	                    //RefreshMainScreen();
; 184.	                    return NULL;
	JP	LWRD ?0093
; 185.	
; 186.	                case AP_KEY_NEXT | AP_KEY_LONG: //快进
?0037:
; 187.	                    PlayStatus = FFPlaySta;
	LD	A,3
	LD	(PlayStatus),A
; 188.	                    musicpSendCommand(MC_STEP, 4);
	LD	C,4
	JR	?0092
; 189.	                    break;
?0038:
; 190.	
; 191.	                case AP_KEY_PREV | AP_KEY_LONG: //快退
; 192.	                    PlayStatus = FBPlaySta;
	LD	A,4
	LD	(PlayStatus),A
; 193.	                    musicpSendCommand(MC_STEP, -4);
	LD	BC,65532
?0092:
	CALL	LWRD ?0104
; 194.	                    break;
	JP	LWRD ?0024
?0039:
; 195.	
; 196.	                case AP_KEY_NEXT | AP_KEY_UP: //快进
; 197.	                    if (PlayStatus == PlaySta)
	LD	A,(PlayStatus)
	DEC	A
	DEC	A
	JR	NZ,?0041
?0040:
; 198.	                    {
; 199.	                        FadeOut(FALSE);
	LD	E,B
	LD	A,BYTE3 FadeOut
	LD	HL,LWRD FadeOut
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 200.	                        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
; 201.	                        //main_ResShowPic(FMHEAD,0,107);
; 202.	                        if ( g_result != 0 )
	LD	A,L
	OR	H
	JR	NZ,?0098
?0042:
; 203.	                        {
; 204.	                            return g_result;
; 205.	                        }
?0043:
; 206.	                        if ( !g_lyricflag )return NULL;
	LD	A,(g_lyricflag)
	OR	A
	JR	NZ,?0046
?0044:
	JP	LWRD ?0093
; 207.	                    }
?0045:
; 208.	                    else
?0041:
; 209.	                    {
; 210.	                        musicpSendCommand(MC_STEP, 0);
	CALL	LWRD ?0105
; 211.	                        PlayStatus = PlaySta;
	LD	A,2
	LD	(PlayStatus),A
?0046:
; 212.	                    }
; 213.	                    break;
	JR	?0024
?0047:
; 214.	
; 215.	                case AP_KEY_PREV | AP_KEY_UP:
; 216.	                    if (PlayStatus == PlaySta)
	LD	A,(PlayStatus)
	DEC	A
	DEC	A
	JR	NZ,?0049
?0048:
; 217.	                    {
; 218.	                        g_result = PrevMusicInPlay();
	LD	A,BYTE3 PrevMusicInPlay
	LD	HL,LWRD PrevMusicInPlay
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
; 219.	                        //main_ResShowPic(FMHEAD,0,107);
; 220.	                        if (g_result != 0) return g_result;
	LD	A,L
	OR	H
	JR	Z,?0051
?0050:
?0098:
	JP	LWRD ?0090
?0051:
; 221.	
; 222.	                        if (!g_lyricflag)return NULL;
	LD	A,(g_lyricflag)
	OR	A
	JR	NZ,?0024
?0052:
	JP	LWRD ?0093
; 223.	                    //RefreshMainScreen();
; 224.	                    }
?0053:
; 225.	                    else
?0049:
; 226.	                    {
; 227.	                        musicpSendCommand(MC_STEP, 0);
	CALL	LWRD ?0105
; 228.	                        PlayStatus = PlaySta;
	LD	A,2
	LD	(PlayStatus),A
?0054:
; 229.	                    }
; 230.	                    break;
	JR	?0024
?0055:
; 231.	
; 232.	                case AP_KEY_MODE | AP_KEY_HOLD: //MODE键没抬起时不响应
; 233.	                    if (!KeyUpFlag)continue;
	XOR	A
	OR	(IX-1)
	JR	NZ,?0024
?0056:
	JP	LWRD ?0083
?0057:
; 234.	                    break;
?0058:
; 235.	
; 236.	
; 237.	                case AP_MSG_SD_OUT:
; 238.	                    if (g_music_vars.location.disk == 'H')
	LD	A,(g_music_vars+7)
	CP	72
	JR	NZ,?0024
?0059:
; 239.	                    {
; 240.	                        musicpSendCommand(MC_STOP, NULL);
	LD	C,B
	LD	E,6
	CALL	LWRD ?0102
; 241.	                        musicpSendCommand(MC_CLOSE, NULL);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 242.	                        g_music_vars.location.disk = 'C';
	LD	A,67
	LD	(g_music_vars+7),A
; 243.	                        DisplayErrMsg(CARDPULL);//显示卡拔出
	LD	DE,401
	LD	A,BYTE3 DisplayErrMsg
	LD	HL,LWRD DisplayErrMsg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 244.	                        return RESULT_UI_STOP;
	JR	?0099
; 245.	                    }
?0060:
; 246.	                    break;
?0061:
; 247.	
; 248.	                default:
; 249.	                    key = ap_handle_hotkey(key);
	LD	E,C
	CALL	LWRD ap_handle_hotkey
	LD	C,A
; 250.	                    if (key == RESULT_REDRAW)need_draw = TRUE;
	LD	A,50
	XOR	C
	JR	NZ,?0063
?0062:
	LD	A,1
	LD	(need_draw),A
	JR	?0024
?0063:
; 251.	                    else if(key != 0) return key;
	LD	A,C
	OR	A
	JR	Z,?0024
?0065:
	LD	L,C
	LD	H,B
; 252.	                    break;
	JR	?0090
?0066:
?0064:
?0024:
; 253.	            } //switch(key)
; 254.	            musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
	LD	HL,2
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	E,131
	CALL	LWRD ?0103
; 255.	            //wmapSendCommand(MC_GETSTATUS, (int)(& status_buf));
; 256.	
; 257.	            if (status_buf.status == PLAYING_REACH_END)
	LD	A,(IX-10)
	CP	6
	JR	NZ,?0072
?0067:
; 258.	            {
; 259.	                //PASS_KEY(0x11);
; 260.	                //g_result = DealMusicFileEndInLRC();
; 261.	                g_result = DealMusicFileEnd(1);
	LD	E,1
	CALL	LWRD ?0112
; 262.	
; 263.	                if (g_result == RESULT_UI_STOP) return RESULT_UI_STOP;
	JR	NZ,?0070
?0069:
?0099:
	JR	?0100
?0070:
; 264.	                if (!g_lyricflag)return NULL;
	LD	A,(g_lyricflag)
	OR	A
	JR	Z,?0093
?0071:
; 265.	            }
?0072:
?0068:
; 266.	
; 267.	            if (status_buf.status == PLAYING_REACH_HEAD)
	LD	A,(IX-10)
	CP	14
	JR	NZ,?0081
?0073:
; 268.	            {
; 269.	                //PASS_KEY(0x22);
; 270.	                if (PlayStatus == PlaySta)
	LD	A,(PlayStatus)
	DEC	A
	DEC	A
	LD	E,1
	JR	NZ,?0076
?0075:
; 271.	                {
; 272.	                    DisInFBHead( 1 );//到头显示
	LD	A,BYTE3 DisInFBHead
	LD	HL,LWRD DisInFBHead
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 273.	                    SelectCurMusic();
	LD	A,BYTE3 SelectCurMusic
	LD	HL,LWRD SelectCurMusic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 274.	                }
; 275.	                else
	JR	?0081
?0076:
; 276.	                {
; 277.	                    g_result = DealMusicFileEnd(1);
	CALL	LWRD ?0112
; 278.	                    if (g_result == RESULT_UI_STOP) return RESULT_UI_STOP;
	JR	NZ,?0079
?0078:
?0100:
	LD	HL,102
	JR	?0090
?0079:
; 279.	                    if (!g_lyricflag)return NULL;
	LD	A,(g_lyricflag)
	OR	A
	JR	NZ,?0081
?0080:
?0093:
	LD	HL,0
; 280.	                }
?0090:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0081:
?0077:
?0074:
; 281.	            }
; 282.	
; 283.	
; 284.	            if (g_2HZ_CNT>ExproTimeDef)
	LD	BC,(g_2HZ_CNT)
	LD	HL,5
	AND	A
	SBC	HL,BC
	JR	NC,?0083
?0082:
; 285.	            {
; 286.	                ExproFlag = FALSE;
	LD	(IX-2),0
?0083:
?0013:
; 287.	            }
; 288.	
; 289.	        } while ( (ExproFlag && (g_2HZ_CNT<=ExproTimeDef))
; 290.	                    || (PlayStatus == FFPlaySta)
; 291.	                    || (PlayStatus == FBPlaySta) );
	XOR	A
	OR	(IX-2)
	JR	Z,?0085
	LD	BC,(g_2HZ_CNT)
	LD	HL,5
	SBC	HL,BC
	JP	NC,?0010
?0085:
?0084:
	LD	A,(PlayStatus)
	CP	3
	JP	Z,?0010
	CP	4
	JP	Z,?0010
?0012:
; 292.	
; 293.	
; 294.	        GetNowTime();
	LD	A,BYTE3 GetNowTime
	LD	HL,LWRD GetNowTime
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 295.	        if (lyricQueryOutof(* (long * )RT_buf))
	LD	BC,(RT_buf+2)
	LD	DE,(RT_buf)
	LD	A,BYTE3 lyricQueryOutof
	LD	HL,LWRD lyricQueryOutof
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	Z,?0089
?0088:
; 296.	        {
; 297.	            lyricSeekFor(LyricStrBuf, sizeof(LyricStrBuf), * (long * )RT_buf);
	LD	HL,(RT_buf+2)
	PUSH	HL
	LD	HL,(RT_buf)
	PUSH	HL
	CALL	LWRD ?0111
	POP	AF
	POP	AF
; 298.	            DisplayLyricStr(LyricStrBuf);
	CALL	LWRD ?0110
?0089:
; 299.	        }
; 300.	
; 301.	    }
; 302.	    //while(1)
; 303.	}     //ui_lyric
	JP	LWRD ?0010
?0102:
	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
?0110:
	LD	DE,LyricStrBuf
	LD	A,BYTE3 DisplayLyricStr
	LD	HL,LWRD DisplayLyricStr
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0111:
	LD	C,88
	LD	DE,LyricStrBuf
	LD	A,BYTE3 lyricSeekFor
	LD	HL,LWRD lyricSeekFor
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0112:
	LD	A,BYTE3 DealMusicFileEnd
	LD	HL,LWRD DealMusicFileEnd
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
	LD	A,102
	XOR	L
	OR	H
	RET
; 304.	
; 305.	
; 306.	
	RSEG	APD_UI_LRC
LyricStrBuf:
	DEFS	88
	RSEG	APD_UIA_LRC
RT_buf:
	DEFS	4
	END

⌨️ 快捷键说明

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