📄 ui_lyric.lst
字号:
107 ap_message_init(& g_comval);
\ 00FA 110000 LD DE,g_comval
\ 00FD 3E00 LD A,BYTE3 ap_message_init
\ 00FF 210000 LD HL,LWRD ap_message_init
\ 0102 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
108
109 need_draw = TRUE;
\ 0105 3E01 LD A,1
\ 0107 320000 LD (need_draw),A
\ 010A DD36FF00 LD (IX-1),0
\ 010E DD36FE00 LD (IX-2),0
\ 0112 ?0010:
110
111 while (1)
\ 0112 ?0014:
112 {
113 do
114 {
115 if (need_draw)
\ 0112 3A0000 LD A,(need_draw)
\ 0115 B7 OR A
\ 0116 281C JR Z,?0016
\ 0118 ?0015:
116 {
117 GetNowTime();
\ 0118 3E00 LD A,BYTE3 GetNowTime
\ 011A 210000 LD HL,LWRD GetNowTime
\ 011D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
118 ///-ResShowPic(MLRCBCK,0,0);
119 lyricSeekFor(LyricStrBuf, sizeof(LyricStrBuf), * (long * )RT_buf);
\ 0120 2A0200 LD HL,(RT_buf+2)
\ 0123 E5 PUSH HL
\ 0124 2A0000 LD HL,(RT_buf)
\ 0127 E5 PUSH HL
\ 0128 CD9203 CALL LWRD ?0110
\ 012B F1 POP AF
\ 012C F1 POP AF
120 DisplayLyricStr(LyricStrBuf);
\ 012D CD8703 CALL LWRD ?0109
121 need_draw = FALSE;
\ 0130 AF XOR A
\ 0131 320000 LD (need_draw),A
\ 0134 ?0016:
\ 0134 ?0019:
122 }
123
124 //key = ap_get_message();
125 do
126 {
127 key = ap_get_message(); //读键值
\ 0134 CD0000 CALL LWRD ap_get_message
\ 0137 4F LD C,A
\ 0138 0600 LD B,0
128 //这里是处理快退大文件时可能丢掉KEYUP键的问题
129 }while(((PlayStatus == FFPlaySta) || (PlayStatus == FBPlaySta))
130 &&(key!=0)
131 &&(key!=(AP_KEY_PREV | AP_KEY_UP))
132 &&(key!=(AP_KEY_NEXT | AP_KEY_UP)));
\ 013A 3A0000 LD A,(PlayStatus)
\ 013D FE03 CP 3
\ 013F 2804 JR Z,?0020
\ 0141 FE04 CP 4
\ 0143 200E JR NZ,?0017
\ 0145 ?0020:
\ 0145 ?0021:
\ 0145 79 LD A,C
\ 0146 B7 OR A
\ 0147 280A JR Z,?0017
\ 0149 3E25 LD A,37
\ 014B A9 XOR C
\ 014C 2805 JR Z,?0017
\ 014E 3E26 LD A,38
\ 0150 A9 XOR C
\ 0151 20E1 JR NZ,?0016
\ 0153 ?0017:
133
134 switch (key)
\ 0153 59 LD E,C
\ 0154 50 LD D,B
\ 0155 CD0000 CALL LWRD ?S_V_SWITCH_L06
\ 0158 0C00 DEFW 12
\ 015A 1D00 DEFW 29
\ 015C 2100 DEFW 33
\ 015E 2300 DEFW 35
\ 0160 2400 DEFW 36
\ 0162 2500 DEFW 37
\ 0164 2600 DEFW 38
\ 0166 3000 DEFW 48
\ 0168 3100 DEFW 49
\ 016A 3700 DEFW 55
\ 016C 5000 DEFW 80
\ 016E 8500 DEFW 133
\ 0170 8600 DEFW 134
\ 0172 A402 DEFW ?0061
\ 0174 0202 DEFW ?0037
\ 0176 0B02 DEFW ?0038
\ 0178 7902 DEFW ?0055
\ 017A 8202 DEFW ?0058
\ 017C BD02 DEFW ?0024
\ 017E F201 DEFW ?0034
\ 0180 1902 DEFW ?0039
\ 0182 4D02 DEFW ?0047
\ 0184 CC01 DEFW ?0028
\ 0186 DD01 DEFW ?0031
\ 0188 8C01 DEFW ?0027
\ 018A BD02 DEFW ?0024
\ 018C ?0025:
135 {
136 case AP_MSG_STANDBY: //standby 不响应
137 break;
\ 018C ?0026:
138
139 case AP_KEY_AB | AP_KEY_UP: //rec 不响应
140 break;
\ 018C ?0027:
141
142 case AP_KEY_PLAY | AP_KEY_UP:
143 #ifdef OPT_Sup_FadeOut_fun
144 FadeOut(FALSE);
\ 018C 58 LD E,B
\ 018D 3E00 LD A,BYTE3 FadeOut
\ 018F 210000 LD HL,LWRD FadeOut
\ 0192 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
145 #endif
146 //RealDisplay();
147 BackupCurrentTime();
\ 0195 3E00 LD A,BYTE3 BackupCurrentTime
\ 0197 210000 LD HL,LWRD BackupCurrentTime
\ 019A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
148 musicpSendCommand(MC_STOP, NULL);
\ 019D 48 LD C,B
\ 019E 1E06 LD E,6
\ 01A0 CD4900 CALL LWRD ?0103
149 musicpSendCommand(MC_BACKUP, (int)& g_music_vars.BreakPTSave);
\ 01A3 013200 LD BC,g_music_vars+50
\ 01A6 1E44 LD E,68
\ 01A8 CD7403 CALL LWRD ?0102
150 musicpSendCommand(MC_CLOSE, NULL);
\ 01AB CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
151 SetFullInterface();
\ 01AE AF XOR A
\ 01AF 320000 LD (ui_auto_update),A
\ 01B2 210000 LD HL,UpDisplayFlag
\ 01B5 7E LD A,(HL)
\ 01B6 F6C1 OR 193
\ 01B8 77 LD (HL),A
\ 01B9 23 INC HL
\ 01BA 36FF LD (HL),255
152 RefreshMainScreen();
\ 01BC 3E00 LD A,BYTE3 RefreshMainScreen
\ 01BE 210000 LD HL,LWRD RefreshMainScreen
\ 01C1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
153 g_music_vars.MusicOpenMod = Nor_Break_open;
\ 01C4 3E01 LD A,1
\ 01C6 320600 LD (g_music_vars+6),A
154 return RESULT_UI_STOP; //退回上一层
\ 01C9 C30503 JP LWRD ?0100
155
156 case AP_KEY_VOLADD | AP_KEY_UP: //下一屏歌词
\ 01CC ?0028:
157 if (lyricGetNext(LyricStrBuf, sizeof(LyricStrBuf)))
\ 01CC 0E58 LD C,88
\ 01CE 110000 LD DE,LyricStrBuf
\ 01D1 3E00 LD A,BYTE3 lyricGetNext
\ 01D3 210000 LD HL,LWRD lyricGetNext
\ 01D6 CDDD00 CALL LWRD ?0108
\ 01D9 280A JR Z,?0033
\ 01DB ?0029:
158 {
159 DisplayLyricStr(LyricStrBuf); //显示歌词内容
\ 01DB 1805 JR ?0101
\ 01DD ?0030:
160 }
161 ExproFlag = TRUE;
162 g_2HZ_CNT = 0;
163 break;
\ 01DD ?0031:
164
165 case AP_KEY_VOLSUB | AP_KEY_UP: //上一屏歌词
166 if (lyricGetPrev(LyricStrBuf, sizeof(LyricStrBuf)))
\ 01DD CDD300 CALL LWRD ?0107
\ 01E0 2803 JR Z,?0033
\ 01E2 ?0032:
167 {
168 DisplayLyricStr(LyricStrBuf); //显示歌词内容
\ 01E2 ?0101:
\ 01E2 CD8703 CALL LWRD ?0109
\ 01E5 ?0033:
169 }
170 ExproFlag = TRUE;
171 g_2HZ_CNT = 0;
\ 01E5 210000 LD HL,0
\ 01E8 220000 LD (g_2HZ_CNT),HL
\ 01EB DD36FE01 LD (IX-2),1
172 break;
\ 01EF C3BD02 JP LWRD ?0024
\ 01F2 ?0034:
173
174 case AP_KEY_MODE | AP_KEY_UP:
175 if (!KeyUpFlag)
\ 01F2 AF XOR A
\ 01F3 DDB6FF OR (IX-1)
\ 01F6 2007 JR NZ,?0036
\ 01F8 ?0035:
176 {
177 KeyUpFlag = TRUE;
\ 01F8 DD36FF01 LD (IX-1),1
178 break;
\ 01FC C3BD02 JP LWRD ?0024
\ 01FF ?0036:
179 }
180 return NULL;
\ 01FF C31003 JP LWRD ?0093
181
182 case AP_KEY_NEXT | AP_KEY_LONG: //快进
\ 0202 ?0037:
183 PlayStatus = FFPlaySta;
\ 0202 3E03 LD A,3
\ 0204 320000 LD (PlayStatus),A
184 musicpSendCommand(MC_STEP, 4);
\ 0207 0E04 LD C,4
\ 0209 1808 JR ?0092
185 break;
\ 020B ?0038:
186
187 case AP_KEY_PREV | AP_KEY_LONG: //快退
188 PlayStatus = FBPlaySta;
\ 020B 3E04 LD A,4
\ 020D 320000 LD (PlayStatus),A
189 musicpSendCommand(MC_STEP, -4);
\ 0210 01FCFF LD BC,65532
\ 0213 ?0092:
\ 0213 CD4700 CALL LWRD ?0104
190 break;
\ 0216 C3BD02 JP LWRD ?0024
\ 0219 ?0039:
191
192 case AP_KEY_NEXT | AP_KEY_UP: //快进
193 if (PlayStatus == PlaySta)
\ 0219 3A0000 LD A,(PlayStatus)
\ 021C 3D DEC A
\ 021D 3D DEC A
\ 021E 2023 JR NZ,?0041
\ 0220 ?0040:
194 {
195 FadeOut(FALSE);
\ 0220 58 LD E,B
\ 0221 3E00 LD A,BYTE3 FadeOut
\ 0223 210000 LD HL,LWRD FadeOut
\ 0226 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
196 g_result = ToNextMusic(Play_key); //选下一首
\ 0229 1E02 LD E,2
\ 022B 3E00 LD A,BYTE3 ToNextMusic
\ 022D 210000 LD HL,LWRD ToNextMusic
\ 0230 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0233 220000 LD (g_result),HL
197 //main_ResShowPic(FMHEAD,0,107);
198 if ( g_result != 0 )
\ 0236 7D LD A,L
\ 0237 B4 OR H
\ 0238 2029 JR NZ,?0098
\ 023A ?0042:
199 {
200 return g_result;
201 }
\ 023A ?0043:
202 if ( !g_lyricflag )return NULL;
\ 023A 3A0000 LD A,(g_lyricflag)
\ 023D B7 OR A
\ 023E 200B JR NZ,?0046
\ 0240 ?0044:
\ 0240 C31003 JP LWRD ?0093
203 }
\ 0243 ?0045:
204 else
\ 0243 ?0041:
205 {
206 musicpSendCommand(MC_STEP, 0);
\ 0243 CD4600 CALL LWRD ?0105
207 PlayStatus = PlaySta;
\ 0246 3E02 LD A,2
\ 0248 320000 LD (PlayStatus),A
\ 024B ?0046:
208 }
209 break;
\ 024B 1870 JR ?0024
\ 024D ?0047:
210
211 case AP_KEY_PREV | AP_KEY_UP:
212 if (PlayStatus == PlaySta)
\ 024D 3A0000 LD A,(PlayStatus)
\ 0250 3D DEC A
\ 0251 3D DEC A
\ 0252 201B JR NZ,?0049
\ 0254 ?0048:
213 {
214 g_result = PrevMusicInPlay();
\ 0254 3E00 LD A,BYTE3 PrevMusicInPlay
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -