📄 ui_lyric.lst
字号:
\ 0113 AF XOR A
\ 0114 320900 LD (g_comval+9),A
106 ap_message_init(& g_comval);
\ 0117 110000 LD DE,g_comval
\ 011A 3E00 LD A,BYTE3 ap_message_init
\ 011C 210000 LD HL,LWRD ap_message_init
\ 011F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
107
108 need_draw = TRUE;
\ 0122 3E01 LD A,1
\ 0124 320000 LD (need_draw),A
\ 0127 DD36FF00 LD (IX-1),0
\ 012B DD36FE00 LD (IX-2),0
\ 012F ?0010:
109
110 while (1)
\ 012F ?0014:
111 {
112 do
113 {
114 if (need_draw)
\ 012F 3A0000 LD A,(need_draw)
\ 0132 B7 OR A
\ 0133 2823 JR Z,?0016
\ 0135 ?0015:
115 {
116 GetNowTime();
\ 0135 3E00 LD A,BYTE3 GetNowTime
\ 0137 210000 LD HL,LWRD GetNowTime
\ 013A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
117 //ResShowPic(FMHEAD,0,107);
118 ResShowPic(MLRCBCK,0,0);
\ 013D 0E00 LD C,0
\ 013F C5 PUSH BC
\ 0140 CDD200 CALL LWRD ?0106
\ 0143 F1 POP AF
119 lyricSeekFor(LyricStrBuf, sizeof(LyricStrBuf), * (long * )RT_buf);
\ 0144 2A0200 LD HL,(RT_buf+2)
\ 0147 E5 PUSH HL
\ 0148 2A0000 LD HL,(RT_buf)
\ 014B E5 PUSH HL
\ 014C CDB603 CALL LWRD ?0111
\ 014F F1 POP AF
\ 0150 F1 POP AF
120 DisplayLyricStr(LyricStrBuf);
\ 0151 CDAB03 CALL LWRD ?0110
121 need_draw = FALSE;
\ 0154 AF XOR A
\ 0155 320000 LD (need_draw),A
\ 0158 ?0016:
\ 0158 ?0019:
122 }
123
124 //key = ap_get_message();
125
126
127 do
128 {
129 key = ap_get_message(); //读键值
\ 0158 CD0000 CALL LWRD ap_get_message
\ 015B 4F LD C,A
\ 015C 0600 LD B,0
130 //这里是处理快退大文件时可能丢掉KEYUP键的问题
131 }while(((PlayStatus == FFPlaySta) || (PlayStatus == FBPlaySta))
132 &&(key!=0)
133 &&(key!=(AP_KEY_PREV | AP_KEY_UP))
134 &&(key!=(AP_KEY_NEXT | AP_KEY_UP)));
\ 015E 3A0000 LD A,(PlayStatus)
\ 0161 FE03 CP 3
\ 0163 2804 JR Z,?0020
\ 0165 FE04 CP 4
\ 0167 200E JR NZ,?0017
\ 0169 ?0020:
\ 0169 ?0021:
\ 0169 79 LD A,C
\ 016A B7 OR A
\ 016B 280A JR Z,?0017
\ 016D 3E25 LD A,37
\ 016F A9 XOR C
\ 0170 2805 JR Z,?0017
\ 0172 3E26 LD A,38
\ 0174 A9 XOR C
\ 0175 20E1 JR NZ,?0016
\ 0177 ?0017:
135
136 switch (key)
\ 0177 59 LD E,C
\ 0178 50 LD D,B
\ 0179 CD0000 CALL LWRD ?S_V_SWITCH_L06
\ 017C 0C00 DEFW 12
\ 017E 1D00 DEFW 29
\ 0180 2100 DEFW 33
\ 0182 2300 DEFW 35
\ 0184 2400 DEFW 36
\ 0186 2500 DEFW 37
\ 0188 2600 DEFW 38
\ 018A 3000 DEFW 48
\ 018C 3100 DEFW 49
\ 018E 3700 DEFW 55
\ 0190 5000 DEFW 80
\ 0192 8500 DEFW 133
\ 0194 8600 DEFW 134
\ 0196 C802 DEFW ?0061
\ 0198 2602 DEFW ?0037
\ 019A 2F02 DEFW ?0038
\ 019C 9D02 DEFW ?0055
\ 019E A602 DEFW ?0058
\ 01A0 E102 DEFW ?0024
\ 01A2 1602 DEFW ?0034
\ 01A4 3D02 DEFW ?0039
\ 01A6 7102 DEFW ?0047
\ 01A8 F001 DEFW ?0028
\ 01AA 0102 DEFW ?0031
\ 01AC B001 DEFW ?0027
\ 01AE E102 DEFW ?0024
\ 01B0 ?0025:
137 {
138 case AP_MSG_STANDBY: //standby 不响应
139 break;
\ 01B0 ?0026:
140
141 case AP_KEY_AB | AP_KEY_UP: //rec 不响应
142 break;
\ 01B0 ?0027:
143
144 case AP_KEY_PLAY | AP_KEY_UP:
145 #ifdef OPT_Sup_FadeOut_fun
146 FadeOut(FALSE);
\ 01B0 58 LD E,B
\ 01B1 3E00 LD A,BYTE3 FadeOut
\ 01B3 210000 LD HL,LWRD FadeOut
\ 01B6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
147 #endif
148 //RealDisplay();
149 BackupCurrentTime();
\ 01B9 3E00 LD A,BYTE3 BackupCurrentTime
\ 01BB 210000 LD HL,LWRD BackupCurrentTime
\ 01BE CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
150 musicpSendCommand(MC_STOP, NULL);
\ 01C1 48 LD C,B
\ 01C2 1E06 LD E,6
\ 01C4 CD4900 CALL LWRD ?0103
151 musicpSendCommand(MC_BACKUP, (int)& g_music_vars.BreakPTSave);
\ 01C7 013000 LD BC,g_music_vars+48
\ 01CA 1E44 LD E,68
\ 01CC CD9803 CALL LWRD ?0102
152 musicpSendCommand(MC_CLOSE, NULL);
\ 01CF CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
153 SetFullInterface();
\ 01D2 AF XOR A
\ 01D3 320000 LD (ui_auto_update),A
\ 01D6 210000 LD HL,UpDisplayFlag
\ 01D9 7E LD A,(HL)
\ 01DA F6C1 OR 193
\ 01DC 77 LD (HL),A
\ 01DD 23 INC HL
\ 01DE 36FF LD (HL),255
154 RefreshMainScreen();
\ 01E0 3E00 LD A,BYTE3 RefreshMainScreen
\ 01E2 210000 LD HL,LWRD RefreshMainScreen
\ 01E5 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
155 g_music_vars.MusicOpenMod = Nor_Break_open;
\ 01E8 3E01 LD A,1
\ 01EA 320600 LD (g_music_vars+6),A
156 return RESULT_UI_STOP; //退回上一层
\ 01ED C32903 JP LWRD ?0100
157
158 case AP_KEY_VOLADD | AP_KEY_UP: //下一屏歌词
\ 01F0 ?0028:
159 if (lyricGetNext(LyricStrBuf, sizeof(LyricStrBuf)))
\ 01F0 0E58 LD C,88
\ 01F2 110000 LD DE,LyricStrBuf
\ 01F5 3E00 LD A,BYTE3 lyricGetNext
\ 01F7 210000 LD HL,LWRD lyricGetNext
\ 01FA CDFA00 CALL LWRD ?0109
\ 01FD 280A JR Z,?0033
\ 01FF ?0029:
160 {
161 DisplayLyricStr(LyricStrBuf); //显示歌词内容
\ 01FF 1805 JR ?0101
\ 0201 ?0030:
162 }
163 ExproFlag = TRUE;
164 g_2HZ_CNT = 0;
165 break;
\ 0201 ?0031:
166
167 case AP_KEY_VOLSUB | AP_KEY_UP: //上一屏歌词
168 if (lyricGetPrev(LyricStrBuf, sizeof(LyricStrBuf)))
\ 0201 CDF000 CALL LWRD ?0108
\ 0204 2803 JR Z,?0033
\ 0206 ?0032:
169 {
170 DisplayLyricStr(LyricStrBuf); //显示歌词内容
\ 0206 ?0101:
\ 0206 CDAB03 CALL LWRD ?0110
\ 0209 ?0033:
171 }
172 ExproFlag = TRUE;
173 g_2HZ_CNT = 0;
\ 0209 210000 LD HL,0
\ 020C 220000 LD (g_2HZ_CNT),HL
\ 020F DD36FE01 LD (IX-2),1
174 break;
\ 0213 C3E102 JP LWRD ?0024
\ 0216 ?0034:
175
176 case AP_KEY_MODE | AP_KEY_UP:
177 if (!KeyUpFlag)
\ 0216 AF XOR A
\ 0217 DDB6FF OR (IX-1)
\ 021A 2007 JR NZ,?0036
\ 021C ?0035:
178 {
179 KeyUpFlag = TRUE;
\ 021C DD36FF01 LD (IX-1),1
180 break;
\ 0220 C3E102 JP LWRD ?0024
\ 0223 ?0036:
181 }
182 //SetStopInterface();
183 //RefreshMainScreen();
184 return NULL;
\ 0223 C33403 JP LWRD ?0093
185
186 case AP_KEY_NEXT | AP_KEY_LONG: //快进
\ 0226 ?0037:
187 PlayStatus = FFPlaySta;
\ 0226 3E03 LD A,3
\ 0228 320000 LD (PlayStatus),A
188 musicpSendCommand(MC_STEP, 4);
\ 022B 0E04 LD C,4
\ 022D 1808 JR ?0092
189 break;
\ 022F ?0038:
190
191 case AP_KEY_PREV | AP_KEY_LONG: //快退
192 PlayStatus = FBPlaySta;
\ 022F 3E04 LD A,4
\ 0231 320000 LD (PlayStatus),A
193 musicpSendCommand(MC_STEP, -4);
\ 0234 01FCFF LD BC,65532
\ 0237 ?0092:
\ 0237 CD4700 CALL LWRD ?0104
194 break;
\ 023A C3E102 JP LWRD ?0024
\ 023D ?0039:
195
196 case AP_KEY_NEXT | AP_KEY_UP: //快进
197 if (PlayStatus == PlaySta)
\ 023D 3A0000 LD A,(PlayStatus)
\ 0240 3D DEC A
\ 0241 3D DEC A
\ 0242 2023 JR NZ,?0041
\ 0244 ?0040:
198 {
199 FadeOut(FALSE);
\ 0244 58 LD E,B
\ 0245 3E00 LD A,BYTE3 FadeOut
\ 0247 210000 LD HL,LWRD FadeOut
\ 024A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
200 g_result = ToNextMusic(Play_key); //选下一首
\ 024D 1E02 LD E,2
\ 024F 3E00 LD A,BYTE3 ToNextMusic
\ 0251 210000 LD HL,LWRD ToNextMusic
\ 0254 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0257 220000 LD (g_result),HL
201 //main_ResShowPic(FMHEAD,0,107);
202 if ( g_result != 0 )
\ 025A 7D LD A,L
\ 025B B4 OR H
\ 025C 2029 JR NZ,?0098
\ 025E ?0042:
203 {
204 return g_result;
205 }
\ 025E ?0043:
206 if ( !g_lyricflag )return NULL;
\ 025E 3A0000 LD A,(g_lyricflag)
\ 0261 B7 OR A
\ 0262 200B JR NZ,?0046
\ 0264 ?0044:
\ 0264 C33403 JP LWRD ?0093
207 }
\ 0267 ?0045:
208 else
\ 0267 ?0041:
209 {
210 musicpSendCommand(MC_STEP, 0);
\ 0267 CD4600 CALL LWRD ?0105
211 PlayStatus = PlaySta;
\ 026A 3E02 LD A,2
\ 026C 320000 LD (PlayStatus),A
\ 026F ?0046:
212 }
213 break;
\ 026F 1870 JR ?0024
\ 0271 ?0047:
214
215 case AP_KEY_PREV | AP_KEY_UP:
216 if (PlayStatus == PlaySta)
\ 0271 3A0000 LD A,(PlayStatus)
\ 0274 3D DEC A
\ 0275 3D DEC A
\ 0276 201B JR NZ,?0049
\ 0278 ?0048:
217 {
218 g_result = PrevMusicInPlay();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -