ui_stop_menu.s01
来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 1,223 行 · 第 1/3 页
S01
1,223 行
CALL LWRD ?0139
; 361. tmpflag = TRUE;
?0059:
; 362. }
; 363. //fselGetLocation(&g_music_vars.location);
; 364. //g_music_vars.file_list_type = 0xff;
; 365. result = ui_directory(& g_music_vars.location, FSEL_TYPE_MUSIC, g_comval.langid);
LD HL,g_comval+12
LD C,(HL)
PUSH BC
CALL LWRD ?0145
POP AF
; 366. FSELSetMode(FSEL_ALL_SEQUENCE);
CALL LWRD ?0146
; 367. if (result == 0)
JR NZ,?0065
?0064:
; 368. {
; 369. if (tmpflag)
?0066:
; 370. {
; 371. tmpflag = FALSE;
?0067:
; 372. }
; 373. //fselGetLocation(&g_music_vars.location);
; 374. //当选中目录后用普通模式播放
; 375. g_music_vars.play_listmod = mlistnor;
LD A,5
LD (g_music_vars+80),A
; 376. g_music_vars.file_list_type = 0xff;
LD A,255
LD (g_music_vars+92),A
?0065:
; 377. }
; 378.
; 379. if (result == RESULT_SD_OUT)
LD A,54
XOR (IX-4)
OR (IX-3)
JR NZ,?0069
?0068:
; 380. {
; 381. DisplayErrMsg(CARDPULL);//显示卡拔出
CALL LWRD ?0140
; 382. g_music_vars.location.disk = 'C';
LD A,67
LD (g_music_vars+7),A
; 383. result = RESULT_IGNORE;
LD (IX-4),52
LD (IX-3),0
?0069:
; 384. }
; 385. if(g_music_vars.play_rate!=0&&g_music_vars.location.disk == 'H')
LD A,(g_music_vars+3)
OR A
JR Z,?0071
LD A,(g_music_vars+7)
CP 72
JR NZ,?0071
?0073:
?0072:
?0070:
; 386. g_music_vars.play_rate=0;
XOR A
LD (g_music_vars+3),A
?0071:
; 387. break;
JR ?0081
?0074:
; 388.
; 389. case 2: //删除文件
; 390. if(g_music_vars.fselmod == FSEL_TYPE_PLAYLIST||g_music_vars.fselmod ==FSEL_TYPE_USERPL)
LD A,(g_music_vars+81)
DEC A
JR Z,?0077
LD A,(g_music_vars+81)
DEC A
DEC A
JR NZ,?0076
?0077:
?0078:
?0075:
; 391. {
; 392. fselPlayListExit();
LD A,BYTE3 fselPlayListExit
LD HL,LWRD fselPlayListExit
CALL LWRD ?BANK_CALL_DIRECT_L08
; 393. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
XOR A
LD (g_music_vars+81),A
; 394. FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_REPEATALL, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);//初始化文件选择器
LD HL,g_music_vars+7
LD C,(HL)
PUSH BC
LD C,A
PUSH BC
LD C,4
LD E,A
CALL LWRD ?0142
POP AF
POP AF
; 395. FSELGetNext(g_music_vars.location.filename);
LD DE,g_music_vars+33
LD A,BYTE3 fselGetNextFile
LD HL,LWRD fselGetNextFile
CALL LWRD ?BANK_CALL_DIRECT_L08
; 396. g_music_vars.play_listmod = mlistnor;//改为普通目录模式
LD A,5
LD (g_music_vars+80),A
; 397. fselGetLocation(&g_music_vars.location);
CALL LWRD ?0139
?0076:
; 398. }
; 399. result = ui_delete_Music(DELETE_FILE);
LD DE,0
JR ?0110
; 400. g_music_vars.file_list_type = 0xff;
; 401. break;
?0079:
; 402.
; 403. case 3: //删除全部
; 404. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
XOR A
LD (g_music_vars+81),A
; 405. result = ui_delete_Music(DELETE_MUSIC);
LD DE,1
?0110:
LD A,BYTE3 ui_delete_Music
LD HL,LWRD ui_delete_Music
CALL LWRD ?0137
; 406. g_music_vars.file_list_type = 0xff;
LD A,255
LD (g_music_vars+92),A
; 407. break;
JR ?0081
?0080:
; 408.
; 409. default://退出
; 410. //return 0;
; 411. result = RESULT_IGNORE;
LD (IX-4),52
LD (IX-3),0
; 412. break;
?0049:
; 413. }
; 414. }
; 415. else
JR ?0081
?0048:
; 416. {
; 417. //无卡的情况
; 418. result = NoCardCaseInStopMenu(list.active);
LD A,BYTE3 NoCardCaseInStopMenu
LD HL,LWRD NoCardCaseInStopMenu
CALL LWRD ?0137
?0081:
; 419. }
; 420. /*
; 421. }
; 422. */
; 423. if (result == RESULT_IGNORE)
LD A,52
XOR (IX-4)
OR (IX-3)
JR NZ,?0083
?0082:
; 424. {
; 425. result = 0;
LD (IX-4),A
LD (IX-3),A
?0083:
; 426. }
; 427.
; 428. //注,如 result != 0表示退出时一些时间参数不用清0
; 429. // 但如果 ==0 则表示退出时目录已改,时间要清0
; 430. if (result != 0)
LD A,(IX-4)
OR (IX-3)
JR Z,?0085
?0084:
; 431. {
; 432. return result;
?0111:
LD L,(IX-4)
LD H,(IX-3)
; 433. }
JR ?0086
?0085:
; 434. ClearTimePara();//清0时间及断点
LD A,BYTE3 ClearTimePara
LD HL,LWRD ClearTimePara
CALL LWRD ?BANK_CALL_DIRECT_L08
; 435. return 0;
LD HL,0
; 436.
; 437. }
?0086:
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0136:
LD E,1
?0135:
CALL LWRD DRV_DetectUD
CP 32
RET
?0137:
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (IX-4),L
LD (IX-3),H
RET
?0138:
LD DE,(g_comval+12)
LD A,BYTE3 UI_DeleteAllSelSegment
LD HL,LWRD UI_DeleteAllSelSegment
JP LWRD ?BANK_CALL_DIRECT_L08
?0139:
LD DE,g_music_vars+7
LD A,BYTE3 fselGetLocation
LD HL,LWRD fselGetLocation
JP LWRD ?BANK_CALL_DIRECT_L08
?0140:
LD DE,394
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
JP LWRD ?BANK_CALL_DIRECT_L08
?0141:
LD E,C
?0142:
LD A,BYTE3 fselInit
LD HL,LWRD fselInit
JP LWRD ?BANK_CALL_DIRECT_L08
?0145:
LD C,0
LD DE,g_music_vars+7
LD A,BYTE3 ui_directory
LD HL,LWRD ui_directory
JP LWRD ?BANK_CALL_DIRECT_L08
?0146:
LD (IX-4),L
LD (IX-3),H
LD E,0
LD A,BYTE3 fselSetMode
LD HL,LWRD fselSetMode
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,(IX-4)
OR (IX-3)
RET
UI_DeleteAllSelSegment:
; 438.
; 439.
; 440. void UI_DeleteAllSelSegment(BYTE lang_id)
; 441. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65534
; 442. char key;
; 443. char delete_flag=0;
; 444. ClearScreen(NULL);
LD DE,0
CALL LWRD ClearScreen
; 445. ResShowPic(DELNO,56,32);
LD C,32
PUSH BC
LD C,56
CALL LWRD ?0143
POP AF
; 446. ResShowMultiString(DELSELLS,lang_id, 255, 100);
LD C,100
PUSH BC
LD C,255
PUSH BC
LD C,(IX+2)
LD DE,418
LD A,BYTE3 ResShowMultiString
LD HL,LWRD ResShowMultiString
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
?0131:
POP AF
LD (IX-2),0
?0088:
; 447. while(1)
; 448. {
; 449. key = ap_get_message(); //获取消息
CALL LWRD ap_get_message
; 450. switch(key)
LD E,A
CALL LWRD ?C_V_SWITCH_L06
DEFW 7
DEFB 5
DEFB 6
DEFB 30
DEFB 33
DEFB 48
DEFB 69
DEFB 70
DEFW ?0088
DEFW ?0091
DEFW ?0091
DEFW ?0095
DEFW ?BANK_LEAVE_DIRECT_L08
DEFW ?BANK_LEAVE_DIRECT_L08
DEFW ?0091
DEFW ?0091
?0091:
; 451. {
; 452. case AP_KEY_NEXT: //YES和NO之间切换
; 453. case AP_KEY_PREV:
; 454. case AP_KEY_NEXT | AP_KEY_HOLD:
; 455. case AP_KEY_PREV | AP_KEY_HOLD:
; 456. if(delete_flag==0)
XOR A
OR (IX-2)
LD C,32
PUSH BC
LD C,56
JR NZ,?0093
?0092:
; 457. {
; 458. delete_flag=1;
; 459. ResShowPic(DELYES,56,32);
LD DE,2
CALL LWRD ?0144
POP AF
LD (IX-2),1
; 460. }
; 461. else
JR ?0088
?0093:
; 462. {
; 463. delete_flag=0;
; 464. ResShowPic(DELNO,56,32);
CALL LWRD ?0143
JR ?0131
?0094:
; 465. }
; 466. break;
?0095:
; 467.
; 468. case AP_KEY_MODE | AP_KEY_UP:
; 469. if(delete_flag==1)
LD B,(IX-2)
DEC B
JR NZ,?0099
?0096:
; 470. {
; 471. DeleteAllSelSegment();
LD A,BYTE3 DeleteAllSelSegment
LD HL,LWRD DeleteAllSelSegment
CALL LWRD ?BANK_CALL_DIRECT_L08
; 472. return;
; 473. }
?0097:
; 474. else
; 475. return;
; 476.
; 477. case AP_MSG_WAIT_TIMEOUT: //8秒退出
?0098:
; 478. return;
; 479.
; 480. case AP_KEY_PLAY | AP_KEY_UP:
?0099:
; 481. return;
; 482.
; 483. default:
?0101:
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0143:
LD DE,1
?0144:
LD A,BYTE3 ResShowPic
LD HL,LWRD ResShowPic
JP LWRD ?BANK_CALL_DIRECT_L08
?0100:
; 484. break;
?0090:
; 485. } //swith
; 486. } //while
; 487. }
RSEG IDATA0
?0015:
DEFS 1
RSEG CDATA0
DEFB 0
RSEG APC_UI_MNU_STOP
PLFileName:
DEFB 'MYLIST A3L'
DEFB 0
DEFB 'ARTIST A3L'
DEFB 0
DEFB 'ALBUM A3L'
DEFB 0
DEFB 'GENRE A3L'
DEFB 0
DEFB 'COMPOSERA3L'
DEFB 0
dir_string_card:
DEFW 461
DEFW 462
DEFW 463
DEFW 464
DEFW 465
dir_string:
DEFW 461
DEFW 463
DEFW 464
DEFW 465
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?