ui_stop.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,133 行 · 第 1/4 页
LST
1,133 行
273 UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ;
274 need_draw = TRUE;
\ 039A ?0080:
275
276 //清除多出的HOLD消息,防止按键停了还跳几曲
277 while(ap_get_message() != 0);
\ 039A CD0000 CALL LWRD ap_get_message
\ 039D B7 OR A
\ 039E 20FA JR NZ,?0080
\ 03A0 ?0081:
278 break;
\ 03A0 ?0079:
\ 03A0 C36604 JP LWRD ?0027
\ 03A3 ?0082:
\ 03A3 ?0084:
279
280 case AP_KEY_NEXT | AP_KEY_UP:
281 while(ap_get_message() != 0);
\ 03A3 CD0000 CALL LWRD ap_get_message
\ 03A6 B7 OR A
\ 03A7 20FA JR NZ,?0082
\ 03A9 ?0085:
282 break;
\ 03A9 ?0083:
\ 03A9 C36604 JP LWRD ?0027
\ 03AC ?0086:
283
284 case AP_KEY_NEXT:
285 case AP_KEY_NEXT | AP_KEY_HOLD:
286 musicpSendCommand(MC_CLOSE, NULL);
\ 03AC 4F LD C,A
\ 03AD 47 LD B,A
\ 03AE 1E02 LD E,2
\ 03B0 CDA701 CALL LWRD ?0143
287 g_result = ChangeMusic(Music_Next, Stop_key);
\ 03B3 0E00 LD C,0
\ 03B5 1E03 LD E,3
288 FSELSetMode( FSEL_ALL_REPEATALL );
289 FSELGetNext(g_music_vars.location.filename);
290 fselGetLocation(& g_music_vars.location);
291 GetInformation();
\ 03B7 CD6201 CALL LWRD ?0141
292 memcpy(g_TagInfoBuf1,g_TagInfoBuf,20);
293 FSELGetPrev(g_music_vars.location.filename);
294 fselGetLocation(& g_music_vars.location);
295 FSELSetMode(g_music_vars.repeat_mode);
296 GetInformation(); //取文件信息
\ 03BA CDE800 CALL LWRD ?0137
297 musicpSendCommand(MC_OPEN, (int)& g_Openparam);
298 g_result = musicpSendCommand(MC_LOAD, NULL);
299 CaltimeFlag = FALSE;//等待计时间
300 WaitForCaltimeCNT = 0;
301
302 SetFullInterface();
303 UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ;
304
305 need_draw = TRUE;
\ 03BD ?0088:
306 while(ap_get_message() != 0);
\ 03BD CD0000 CALL LWRD ap_get_message
\ 03C0 B7 OR A
\ 03C1 20FA JR NZ,?0088
\ 03C3 ?0089:
307 break;
\ 03C3 ?0087:
\ 03C3 C36604 JP LWRD ?0027
\ 03C6 ?0090:
308
309 case AP_KEY_VOLSUB:
310 case AP_KEY_VOLADD:
311
312 slider.min = 0;
\ 03C6 6F LD L,A
\ 03C7 67 LD H,A
\ 03C8 220200 LD (slider+2),HL
313 slider.max = 31;
\ 03CB 2E1F LD L,31
\ 03CD 220400 LD (slider+4),HL
314 slider.value = g_music_vars.volume;
\ 03D0 ED4B0000 LD BC,(g_music_vars)
\ 03D4 79 LD A,C
\ 03D5 07 RLCA
\ 03D6 9F SBC A,A
\ 03D7 47 LD B,A
\ 03D8 ED430600 LD (slider+6),BC
315 slider.step = 1;
\ 03DC 2E01 LD L,1
\ 03DE 220800 LD (slider+8),HL
316 slider.title=CHANGEVO;
\ 03E1 21E901 LD HL,489
\ 03E4 220000 LD (slider),HL
317 slider.string_id=g_comval.langid;
\ 03E7 3A0C00 LD A,(g_comval+12)
\ 03EA 320A00 LD (slider+10),A
318 ui_auto_update = FALSE;
\ 03ED AF XOR A
\ 03EE 320000 LD (ui_auto_update),A
319
320 //在停止状态时调音量没必要实时改变IO号的值
321 g_result = ui_slider(& slider, NULL);
\ 03F1 4F LD C,A
\ 03F2 C5 PUSH BC
\ 03F3 69 LD L,C
\ 03F4 61 LD H,C
\ 03F5 E5 PUSH HL
\ 03F6 110000 LD DE,slider
\ 03F9 3E00 LD A,BYTE3 ui_slider
\ 03FB 210000 LD HL,LWRD ui_slider
\ 03FE CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0401 F1 POP AF
\ 0402 F1 POP AF
\ 0403 220000 LD (g_result),HL
322
323 g_music_vars.volume = slider.value;//退出时再改变音量的值
\ 0406 3A0600 LD A,(slider+6)
\ 0409 320000 LD (g_music_vars),A
324 ui_auto_update = TRUE;
\ 040C 3E01 LD A,1
\ 040E 320000 LD (ui_auto_update),A
325 if (g_result != 0)return g_result;
\ 0411 7D LD A,L
\ 0412 B4 OR H
\ 0413 282F JR Z,?0122
\ 0415 ?0091:
\ 0415 ?0116:
\ 0415 2A0000 LD HL,(g_result)
\ 0418 1847 JR ?0109
\ 041A ?0092:
326 SetFullInterface();
327 need_draw = TRUE;
328 break;
\ 041A ?0093:
329
330 case AP_MSG_SD_OUT:
331 if (g_music_vars.location.disk == 'H')
\ 041A 3A0700 LD A,(g_music_vars+7)
\ 041D FE48 CP 72
\ 041F 2045 JR NZ,?0027
\ 0421 ?0094:
332 {
333 g_music_vars.location.disk = 'C';
\ 0421 3E43 LD A,67
\ 0423 320700 LD (g_music_vars+7),A
334
335 DisplayErrMsg(CARDPULL);//显示卡拔出
\ 0426 119101 LD DE,401
\ 0429 3E00 LD A,BYTE3 DisplayErrMsg
\ 042B 210000 LD HL,LWRD DisplayErrMsg
\ 042E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
336 PlayStatus=StopSta;
\ 0431 AF XOR A
\ 0432 320000 LD (PlayStatus),A
337 return RESULT_CURR_UI;
\ 0435 ?0115:
\ 0435 6F LD L,A
\ 0436 67 LD H,A
338
339 }
\ 0437 1828 JR ?0109
\ 0439 ?0095:
340 break;
\ 0439 ?0096:
341
342 case AP_MSG_SD_IN:
343 break;
\ 0439 ?0097:
344
345
346 default:
347 key = ap_handle_hotkey(key);
\ 0439 CD0000 CALL LWRD ap_handle_hotkey
\ 043C DD77F8 LD (IX-8),A
348 if (key == RESULT_REDRAW)
\ 043F FE32 CP 50
\ 0441 2015 JR NZ,?0099
\ 0443 ?0098:
349 {
350 SetFullInterface();
\ 0443 ?0123:
\ 0443 AF XOR A
\ 0444 ?0122:
\ 0444 320000 LD (ui_auto_update),A
\ 0447 210000 LD HL,UpDisplayFlag
\ 044A 7E LD A,(HL)
\ 044B F6C1 OR 193
\ 044D 77 LD (HL),A
\ 044E 23 INC HL
\ 044F 36FF LD (HL),255
351 need_draw = TRUE;
\ 0451 3E01 LD A,1
\ 0453 320000 LD (need_draw),A
\ 0456 180E JR ?0027
\ 0458 ?0099:
352 }
353 else if (key != 0)
\ 0458 AF XOR A
\ 0459 DDB6F8 OR (IX-8)
\ 045C 2808 JR Z,?0027
\ 045E ?0101:
354 {
355 return key;
\ 045E 6F LD L,A
\ 045F 2600 LD H,0
356 }
\ 0461 ?0109:
\ 0461 FDE1 POP IY
\ 0463 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0466 ?0102:
\ 0466 ?0100:
357 break;
\ 0466 ?0027:
358 } //switch(key)
359 if (g_ScrollFlag)
\ 0466 3A0000 LD A,(g_ScrollFlag)
\ 0469 B7 OR A
\ 046A 280E JR Z,?0104
\ 046C ?0103:
360 {
361 g_ScrollFlag = FALSE;
\ 046C AF XOR A
\ 046D 320000 LD (g_ScrollFlag),A
362 UpDisplayFlag = UpDisplayFlag | up_musicbattery;
\ 0470 210000 LD HL,UpDisplayFlag
\ 0473 CBFE SET 7,(HL)
363 need_draw = TRUE;
\ 0475 3E01 LD A,1
\ 0477 320000 LD (need_draw),A
\ 047A ?0104:
364 }
365 if ((!CaltimeFlag)) // && (WaitForCaltimeCNT >= CaltimeCNT_def))
\ 047A 3A0100 LD A,(CaltimeFlag)
\ 047D B7 OR A
\ 047E 2016 JR NZ,?0108
\ 0480 ?0105:
366 {
367 musicpSendCommand(MC_CALTIME, NULL);
\ 0480 CDA301 CALL LWRD ?0145
368 if(PlayStatus!=PauseSta)
\ 0483 3A0000 LD A,(PlayStatus)
\ 0486 3D DEC A
\ 0487 280D JR Z,?0108
\ 0489 ?0107:
369 {
370 UpDisplayFlag = UpDisplayFlag | up_musiccurrenttime | up_musicbitrate|up_musictotaltime;
\ 0489 210000 LD HL,UpDisplayFlag
\ 048C 23 INC HL
\ 048D 7E LD A,(HL)
\ 048E F623 OR 35
\ 0490 77 LD (HL),A
371 need_draw = TRUE;
\ 0491 3E01 LD A,1
\ 0493 320000 LD (need_draw),A
\ 0496 ?0108:
\ 0496 ?0106:
372 }
373 }
374
375 } //while(1)
376 }
\ 0496 C3D201 JP LWRD ?0015
377
378
\ 0000 RSEG UDATA0
\ 0000 WaitForCaltimeCNT:
\ 0001 DEFS 1
\ 0001 CaltimeFlag:
\ 0002 DEFS 1
\ 0000 RSEG IDATA0
\ 0000 testram:
\ 0001 DEFS 1
\ 0000 RSEG CDATA0
\ 0000 00 DEFB 0
\ 0001 END
Errors: none
Warnings: none
Code size: 1177
Constant size: 1
Static variable size: Data(3) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?