ui_play_menu.s01
来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 1,505 行 · 第 1/3 页
S01
1,505 行
JR NZ,?0079
?0077:
?0078:
; 375. return 0;
LD L,B
LD H,B
; 376. }
?0079:
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
srs_default_set:
; 377. void srs_default_set(void)
; 378. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65526
; 379. char temp[10];
; 380. g_music_vars.eq_type = 0x4f;
LD A,79
LD (g_music_vars+2),A
; 381. musicpSendCommand(MC_SETEQ, 0x4f);
LD BC,79
LD E,67
CALL LWRD ?0158
; 382.
; 383. temp[0]=8;
LD (IX-10),8
; 384. temp[1]=8;
LD (IX-9),8
; 385. temp[2]=4;
LD (IX-8),4
; 386. musicpSendCommand(MC_SETUSEREQ, (int)&temp);
LD HL,0
ADD HL,SP
LD C,L
LD B,H
LD E,66
CALL LWRD ?0158
; 387. }
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0158:
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
JP LWRD ?BANK_CALL_DIRECT_L08
music_list_menu:
; 388. int music_list_menu(void)
; 389. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW -34
PUSH IY
; 390. int result;
; 391. BYTE IO27Bak;
; 392. char Backbuf[32];
; 393. list_playmenu.strid = music_list_string;
LD HL,music_list_string
LD (list_playmenu),HL
; 394. list_playmenu.total = sizeof(music_list_string)/2;
LD HL,5
LD (list_playmenu+2),HL
; 395. if(g_music_vars.file_list_type!=0xff)
LD A,(g_music_vars+92)
INC A
JR Z,?0081
?0080:
; 396. list_playmenu.active = g_music_vars.file_list_type;
LD BC,(g_music_vars+92)
LD B,H
LD (list_playmenu+4),BC
; 397. else
JR ?0082
?0081:
; 398. list_playmenu.active=0;
LD L,H
LD (list_playmenu+4),HL
?0082:
; 399. list_playmenu.string_id = g_comval.langid;
LD A,(g_comval+12)
LD (list_playmenu+8),A
; 400. list_playmenu.headid=MPLAYLS;
LD HL,415
LD (list_playmenu+6),HL
; 401. result = ui_popup_list(&list_playmenu,NULL);
LD C,0
PUSH BC
LD L,C
LD H,C
PUSH HL
CALL LWRD ?0157
POP AF
POP AF
; 402. if(result!=0)
LD A,L
OR H
JP NZ,?0099
?0083:
; 403. return result;
?0084:
; 404.
; 405. if((list_playmenu.active==4) || (g_file_list_total==0))
LD HL,(list_playmenu+4)
LD A,4
XOR L
OR H
JR Z,?0144
LD HL,(g_file_list_total)
LD A,L
OR H
JR Z,?0144
?0087:
?0088:
?0085:
; 406. return RESULT_IGNORE;
?0086:
; 407. //记录列表类型
; 408. IO27Bak = input8(0x27);
IN A,(39)
LD (IX-34),A
; 409. output8(0x27,IO27Bak&0xfe); //关DSP中断
RES 0,A
OUT (39),A
; 410. FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
LD L,C
LD H,C
PUSH HL
LD C,2
LD L,6
ADD HL,SP
EX DE,HL
CALL LWRD FS_Backup
POP HL
; 411. FS_CD(":"); //返回根目录查找列表
LD DE,?0089
CALL LWRD FS_CD
; 412. switch(list_playmenu.active)
LD DE,(list_playmenu+4)
CALL LWRD ?S_S_SWITCH_L06
DEFW 0
DEFW 4
DEFW ?0090
DEFW ?0091
DEFW ?0092
DEFW ?0093
DEFW ?0094
?0091:
; 413. {
; 414. case 0:
; 415. list_fp = FS_FOpen(TIT2FileName,FS_OPEN_NORMAL);
LD C,0
LD DE,TIT2FileName
JR ?0142
; 416. break;
?0092:
; 417. case 1:
; 418. list_fp = FS_FOpen(TPE1FileName,FS_OPEN_NORMAL);
LD C,0
LD DE,TPE1FileName
JR ?0142
; 419. break;
?0093:
; 420. case 2:
; 421. list_fp = FS_FOpen(TALBFileName,FS_OPEN_NORMAL);
LD C,0
LD DE,TALBFileName
JR ?0142
; 422. break;
?0094:
; 423. case 3:
; 424. list_fp = FS_FOpen(FILENAMELSIT,FS_OPEN_NORMAL);
LD C,0
LD DE,FILENAMELSIT
?0142:
CALL LWRD FS_FOpen
LD (list_fp),HL
; 425. break;
?0095:
; 426. default:
; 427. break;
?0090:
; 428. }
; 429. output8(0x27,IO27Bak);
LD A,(IX-34)
OUT (39),A
; 430. if(NULL==list_fp) //列表没找到
LD HL,(list_fp)
LD A,L
OR H
JR NZ,?0097
?0096:
; 431. {
; 432. // FS_FClose(list_fp);
; 433. DisplayErrMsg(NOLIST);
LD DE,417
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
CALL LWRD ?BANK_CALL_DIRECT_L08
; 434. FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
LD HL,0
PUSH HL
LD C,2
LD L,6
ADD HL,SP
EX DE,HL
CALL LWRD FS_Restore
POP HL
; 435. return RESULT_IGNORE;
?0144:
LD HL,52
; 436. }
JR ?0099
?0097:
; 437. result = show_music_list(list_playmenu.active,music_list_string[list_playmenu.active]);
LD HL,(list_playmenu+4)
ADD HL,HL
LD BC,music_list_string
ADD HL,BC
LD C,(HL)
INC HL
LD B,(HL)
LD DE,(list_playmenu+4)
LD A,BYTE3 show_music_list
LD HL,LWRD show_music_list
CALL LWRD ?BANK_CALL_DIRECT_L08
PUSH HL
POP IY
; 438. FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
LD BC,0
PUSH BC
LD C,2
LD HL,6
ADD HL,SP
EX DE,HL
CALL LWRD FS_Restore
POP HL
; 439. if(result==0)
PUSH IY
POP HL
LD A,L
OR H
JR NZ,?0099
?0098:
; 440. g_music_vars.file_list_type = list_playmenu.active;
LD A,(list_playmenu+4)
LD (g_music_vars+92),A
?0099:
; 441. return result;
; 442. }
?0100:
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
ui_relpay_set_menu:
; 443. int ui_relpay_set_menu(void)
; 444. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65524
; 445. slider_t slider_playmenu;
; 446. list_playmenu.strid = replay_string;
LD HL,replay_string
LD (list_playmenu),HL
; 447. list_playmenu.total = 3;
LD HL,3
LD (list_playmenu+2),HL
; 448. list_playmenu.active = 0;
LD L,H
LD (list_playmenu+4),HL
; 449. list_playmenu.string_id = g_comval.langid;
LD A,(g_comval+12)
LD (list_playmenu+8),A
; 450. list_playmenu.headid=SMAIN5;
LD HL,501
LD (list_playmenu+6),HL
; 451. g_result = ui_popup_list(&list_playmenu, srs_callback);
LD C,BYTE3 srs_callback
PUSH BC
LD HL,LWRD srs_callback
PUSH HL
CALL LWRD ?0157
POP AF
POP AF
LD (g_result),HL
; 452. if (g_result == RESULT_IGNORE)return 0;
LD A,52
XOR L
OR H
JP Z,?0117
?0101:
?0102:
; 453. if (g_result != 0)return g_result;
LD A,L
OR H
JP NZ,?0118
?0103:
?0104:
; 454. if(list_playmenu.active==0)
LD HL,(list_playmenu+4)
LD A,L
OR H
JR NZ,?0106
?0105:
; 455. {
; 456. if(musicpSendCommand(MC_SETA_B, ClrABPoint))
LD C,A
LD B,A
LD E,65
CALL LWRD ?0158
INC L
DEC L
JR Z,?0108
?0107:
; 457. RePlayStatus = WaitSetAPointForAB;
LD A,1
LD (RePlayStatus),A
?0108:
; 458. }
; 459. else
JP LWRD ?0117
?0106:
; 460. {
; 461. slider_playmenu.max = 10;
LD (IX-8),10
LD (IX-7),0
; 462. slider_playmenu.min = 1;
LD (IX-10),1
LD (IX-9),0
; 463. slider_playmenu.step = 1;
LD (IX-4),1
LD (IX-3),0
; 464. CheckReplaytimesLimit();
LD A,BYTE3 CheckReplaytimesLimit
LD HL,LWRD CheckReplaytimesLimit
CALL LWRD ?BANK_CALL_DIRECT_L08
; 465. if(list_playmenu.active == 1)
LD HL,(list_playmenu+4)
LD A,1
XOR L
OR H
JR NZ,?0111
?0110:
; 466. slider_playmenu.value = g_music_vars.replaytimes;
LD BC,(g_music_vars+4)
JR ?0150
; 467. else
?0111:
; 468. slider_playmenu.value = g_music_vars.replaygap;
LD BC,(g_music_vars+5)
?0150:
LD B,0
LD (IX-6),C
LD (IX-5),B
?0112:
; 469. slider_playmenu.string_id = g_comval.langid;
LD A,(g_comval+12)
LD (IX-2),A
; 470. slider_playmenu.title=play_string[list.active];
LD HL,(list+4)
ADD HL,HL
LD BC,play_string
ADD HL,BC
LD B,(HL)
LD (IX-12),B
INC HL
LD H,(HL)
LD (IX-11),H
; 471. g_result = ui_slider(& slider_playmenu, NULL);
LD C,0
PUSH BC
LD L,C
LD H,C
PUSH HL
LD L,4
ADD HL,SP
EX DE,HL
LD A,BYTE3 ui_slider
LD HL,LWRD ui_slider
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
LD (g_result),HL
; 472. if(list_playmenu.active == 1)
LD HL,(list_playmenu+4)
LD A,1
XOR L
OR H
LD A,(IX-6)
JR NZ,?0114
?0113:
; 473. g_music_vars.replaytimes = slider_playmenu.value;
LD (g_music_vars+4),A
; 474. else
JR ?0115
?0114:
; 475. g_music_vars.replaygap = slider_playmenu.value;
LD (g_music_vars+5),A
?0115:
; 476. if (g_result != 0)return g_result;
LD HL,(g_result)
LD A,L
OR H
JR NZ,?0118
?0116:
; 477. }
?0117:
?0109:
; 478. return 0;
LD HL,0
; 479. }
?0118:
JP LWRD ?BANK_LEAVE_DIRECT_L08
; 480. /*
; 481. void felseltype_check(void) //解决从DRM 的播放列表模式进入打开时其他文件是同时存在三个句柄时的冲突 zhangxs 2007.04.29
; 482. {
; 483. if(g_music_vars.fselmod == FSEL_TYPE_PLAYLIST) //DRM 播放列表模式不支持此功能
; 484. {
; 485. fsel_mode_change_flag = 1;
; 486. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
; 487. FS_FClose(fpPlaylist);
; 488. }
; 489. }
; 490. */
RSEG CSTR
?0089:
DEFB ':'
DEFB 0
RSEG UDATA0
list_fp:
DEFS 2
Navifp:
DEFS 2
list_playmenu:
DEFS 9
RSEG IDATA0
fsel_mode_change_flag:
DEFS 1
?0002:
DEFS 1
RSEG CDATA0
DEFB 0
DEFB 0
RSEG APC_UI_MNU
eq_string:
DEFW 479
DEFW 480
DEFW 481
DEFW 482
DEFW 483
DEFW 484
DEFW 485
srsuser_string:
DEFW 407
DEFW 621
DEFW 408
DEFW 579
srs_string:
DEFW 409
DEFW 623
DEFW 410
play_string:
DEFW 466
DEFW 467
DEFW 619
DEFW 468
DEFW 501
DEFW 579
play_string_ME:
DEFW 466
DEFW 467
DEFW 619
DEFW 468
DEFW 501
DEFW 579
repeat_string:
DEFW 472
DEFW 473
DEFW 474
DEFW 475
DEFW 476
DEFW 477
DEFW 478
replay_string:
DEFW 469
DEFW 470
DEFW 471
music_list_string:
DEFW 411
DEFW 412
DEFW 413
DEFW 414
DEFW 465
TIT2FileName:
DEFB 'TIT2 BIN'
DEFB 0
TPE1FileName:
DEFB 'TPE1 BIN'
DEFB 0
TALBFileName:
DEFB 'TALB BIN'
DEFB 0
FILENAMELSIT:
DEFB 'FILENAMEBIN'
DEFB 0
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?