ui_play.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,122 行 · 第 1/4 页
LST
1,122 行
166 ui_err_msg(CARDPULL,CARDPULL,g_comval.langid);//显示卡拔出
\ 020A ED4B0C00 LD BC,(g_comval+12)
\ 020E 42 LD B,D
\ 020F C5 PUSH BC
\ 0210 CD8A02 CALL LWRD ?0170
\ 0213 F1 POP AF
167 need_sel_file=TRUE;
\ 0214 3E01 LD A,1
\ 0216 320000 LD (need_sel_file),A
168 return 0;
\ 0219 ?0150:
\ 0219 210000 LD HL,0
169 }
\ 021C 1819 JR ?0083
\ 021E ?0076:
\ 021E ?0077:
170 default:
171 key = ap_handle_hotkey( key);
\ 021E FDE5 PUSH IY
\ 0220 E1 POP HL
\ 0221 5D LD E,L
\ 0222 CD0000 CALL LWRD ap_handle_hotkey
\ 0225 4F LD C,A
\ 0226 C5 PUSH BC
\ 0227 FDE1 POP IY
172 if(key == RESULT_REDRAW) need_draw = TRUE;
\ 0229 3E32 LD A,50
\ 022B A9 XOR C
\ 022C CAC000 JP Z,?0151
\ 022F ?0078:
\ 022F ?0079:
173 else if(key != 0) return key;
\ 022F FDE5 PUSH IY
\ 0231 E1 POP HL
\ 0232 7D LD A,L
\ 0233 B4 OR H
\ 0234 CAC400 JP Z,?0029
\ 0237 ?0081:
174 }
\ 0237 ?0082:
\ 0237 ?0080:
\ 0237 ?0058:
175
176 }
177 return result;
178 }
\ 0237 ?0083:
\ 0237 DDF9 LD SP,IX
\ 0239 DDE1 POP IX
\ 023B FDE1 POP IY
\ 023D D1 POP DE
\ 023E C1 POP BC
\ 023F C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0242 ?0167:
\ 0242 010000 LD BC,0
\ 0245 59 LD E,C
\ 0246 50 LD D,B
\ 0247 CD0000 CALL LWRD SetBackgdColor
\ 024A 1E00 LD E,BYTE3 PicViewInit
\ 024C 0600 LD B,0
\ 024E 48 LD C,B
\ 024F CD0000 CALL LWRD BankSwitch
\ 0252 111E00 LD DE,g_viewpic_vars+30
\ 0255 CD0000 CALL LWRD FS_FOpen
\ 0258 220700 LD (fp),HL
\ 025B 111E00 LD DE,g_viewpic_vars+30
\ 025E 3E00 LD A,BYTE3 CheckPicType
\ 0260 210000 LD HL,LWRD CheckPicType
\ 0263 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0266 7D LD A,L
\ 0267 321D00 LD (PictureType),A
\ 026A 110000 LD DE,0
\ 026D CD0000 CALL LWRD ClearScreen
\ 0270 C9 RET
\ 0271 ?0168:
\ 0271 220000 LD (active),HL
\ 0274 1E01 LD E,1
\ 0276 3E00 LD A,BYTE3 sel_next
\ 0278 210000 LD HL,LWRD sel_next
\ 027B C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 027E ?0169:
\ 027E CD0000 CALL LWRD ap_get_message
\ 0281 4F LD C,A
\ 0282 0600 LD B,0
\ 0284 C5 PUSH BC
\ 0285 FDE1 POP IY
\ 0287 59 LD E,C
\ 0288 50 LD D,B
\ 0289 C9 RET
\ 028A ?0170:
\ 028A 019101 LD BC,401
\ 028D ?0171:
\ 028D 59 LD E,C
\ 028E 50 LD D,B
\ 028F 3E00 LD A,BYTE3 ui_err_msg
\ 0291 210000 LD HL,LWRD ui_err_msg
\ 0294 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0297 Auto_play:
179
180 int Auto_play(void)
181 {
\ 0297 C5 PUSH BC
\ 0298 D5 PUSH DE
\ 0299 FDE5 PUSH IY
\ 029B DDE5 PUSH IX
\ 029D DD210000 LD IX,0
\ 02A1 DD39 ADD IX,SP
\ 02A3 F5 PUSH AF
\ 02A4 F5 PUSH AF
182 bool need_draw=TRUE;
183 char tmp;
184
185 int key;
186 int result;
187
188 err_id=0;
\ 02A5 AF XOR A
\ 02A6 320900 LD (err_id),A
189 //Stop_display=0;
190 count_autoplay=0;
\ 02A9 320B00 LD (count_autoplay),A
191 Delaytime=g_viewpic_vars.autoplaytime*2;
\ 02AC 3A0300 LD A,(g_viewpic_vars+3)
\ 02AF 87 ADD A,A
\ 02B0 320C00 LD (Delaytime),A
\ 02B3 DD36FD01 LD (IX-3),1
\ 02B7 ?0085:
192 while(ap_get_message() != 0);
\ 02B7 CD0000 CALL LWRD ap_get_message
\ 02BA B7 OR A
\ 02BB 20FA JR NZ,?0085
\ 02BD ?0086:
193 while(1)
\ 02BD ?0084:
\ 02BD ?0088:
194 {
195 if(need_draw)
\ 02BD AF XOR A
\ 02BE DDB6FD OR (IX-3)
\ 02C1 285C JR Z,?0091
\ 02C3 ?0090:
196 {
197 SetBackgdColor(Color_BLACK_def);
\ 02C3 CD4202 CALL LWRD ?0167
198 //fselGetByNO(g_viewpic_vars.location.filename, active+1);
199 BankSwitch((ulong)address_24_of(PicViewInit) >> 16);
200 fp=FS_FOpen(g_viewpic_vars.location.filename,FS_OPEN_NORMAL);
201 PictureType=CheckPicType(g_viewpic_vars.location.filename);
202 ClearScreen(NULL);
203 tmp=JpegDec(&Dscinf,PictureType,fp,1); // decoder the jpeg file
\ 02C6 0E01 LD C,1
\ 02C8 C5 PUSH BC
\ 02C9 2A0700 LD HL,(fp)
\ 02CC E5 PUSH HL
\ 02CD ED4B1D00 LD BC,(PictureType)
\ 02D1 110000 LD DE,Dscinf
\ 02D4 CD0000 CALL LWRD JpegDec
\ 02D7 E1 POP HL
\ 02D8 E1 POP HL
\ 02D9 DD77FC LD (IX-4),A
204 FS_FClose(fp);
\ 02DC ED5B0700 LD DE,(fp)
\ 02E0 CD0000 CALL LWRD FS_FClose
205
206 if(tmp==0)
\ 02E3 AF XOR A
\ 02E4 DDB6FC OR (IX-4)
\ 02E7 2008 JR NZ,?0093
\ 02E9 ?0092:
207 {
208 err_id=1;
\ 02E9 3E01 LD A,1
\ 02EB 320900 LD (err_id),A
209 return 0;
\ 02EE C37803 JP LWRD ?0156
210 }
\ 02F1 ?0093:
211 count_autoplay=0;
\ 02F1 AF XOR A
\ 02F2 320B00 LD (count_autoplay),A
212 if(tmp==57)return 0;
\ 02F5 DD7EFC LD A,(IX-4)
\ 02F8 FE39 CP 57
\ 02FA 287C JR Z,?0156
\ 02FC ?0094:
\ 02FC ?0095:
213 if(tmp == RESULT_REDRAW) need_draw = TRUE;
\ 02FC FE32 CP 50
\ 02FE 2811 JR Z,?0100
\ 0300 ?0096:
214 else
\ 0300 ?0097:
215 {
216 if((tmp!=1)&&(tmp!=56))return tmp;
\ 0300 47 LD B,A
\ 0301 05 DEC B
\ 0302 280D JR Z,?0100
\ 0304 DD7EFC LD A,(IX-4)
\ 0307 FE38 CP 56
\ 0309 2806 JR Z,?0100
\ 030B ?0102:
\ 030B ?0101:
\ 030B ?0099:
\ 030B 6F LD L,A
\ 030C 2600 LD H,0
217 }
\ 030E C3C303 JP LWRD ?0130
\ 0311 ?0100:
\ 0311 ?0098:
\ 0311 ?0104:
218 while(1)
219 {
220 key=ap_get_message();
\ 0311 CD0000 CALL LWRD ap_get_message
\ 0314 4F LD C,A
\ 0315 0600 LD B,0
221 if(key==AP_MSG_RTC)continue;
\ 0317 3E1C LD A,28
\ 0319 A9 XOR C
\ 031A 28F5 JR Z,?0100
\ 031C ?0106:
\ 031C ?0107:
222 else
223 break;
\ 031C ?0103:
224 }
225 need_draw = FALSE;
\ 031C DD70FD LD (IX-3),B
\ 031F ?0091:
226 }
227
228 key=ap_get_message(); // get the user message
\ 031F CD7E02 CALL LWRD ?0169
229 switch(key)
\ 0322 CD0000 CALL LWRD ?S_V_SWITCH_L06
\ 0325 0900 DEFW 9
\ 0327 0100 DEFW 1
\ 0329 1000 DEFW 16
\ 032B 1100 DEFW 17
\ 032D 1B00 DEFW 27
\ 032F 1C00 DEFW 28
\ 0331 1D00 DEFW 29
\ 0333 2100 DEFW 33
\ 0335 3000 DEFW 48
\ 0337 3700 DEFW 55
\ 0339 7D03 DEFW ?0118
\ 033B 5D03 DEFW ?0116
\ 033D 9A03 DEFW ?0124
\ 033F 7803 DEFW ?0156
\ 0341 9A03 DEFW ?0124
\ 0343 4D03 DEFW ?0110
\ 0345 4D03 DEFW ?0110
\ 0347 9A03 DEFW ?0124
\ 0349 9A03 DEFW ?0124
\ 034B 9A03 DEFW ?0124
\ 034D ?0109:
230 {
231 case AP_MSG_STANDBY:
232 break;
\ 034D ?0110:
233 case AP_MSG_RTC:
234 case AP_MSG_CHARGING:
235 count_autoplay++;
\ 034D 210B00 LD HL,count_autoplay
\ 0350 34 INC (HL)
236 if(count_autoplay>=Delaytime)need_draw = TRUE;
\ 0351 3A0C00 LD A,(Delaytime)
\ 0354 47 LD B,A
\ 0355 3A0B00 LD A,(count_autoplay)
\ 0358 B8 CP B
\ 0359 383F JR C,?0124
\ 035B ?0111:
\ 035B 1830 JR ?0157
\ 035D ?0112:
237 break;
\ 035D ?0113:
238
239 case AP_KEY_PLAY:
240 case AP_KEY_MODE:
241 case AP_KEY_AB:
242 //Stop_display=1;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?