sub_function1.s01
来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 1,819 行 · 第 1/3 页
S01
1,819 行
?0197:
LD (RePlayStatus),A
; 434. UpDisplayFlag = UpDisplayFlag | up_MPRLmode;//刷新复读图标
LD HL,UpDisplayFlag
INC HL
SET 3,(HL)
; 435. need_draw = TRUE;
LD A,1
LD (need_draw),A
; 436. break;
JR ?0121
?0128:
; 437.
; 438. default:
; 439. break;
?0125:
; 440. }
; 441. break;
?0129:
; 442.
; 443. case MC_PLAY:
; 444. if (result)
XOR A
OR (IX-2)
JR Z,?0121
?0130:
; 445. {
; 446. PlayStatus = PlaySta;
LD A,2
LD (PlayStatus),A
?0131:
; 447. }
; 448. break;
JR ?0121
?0132:
; 449.
; 450. case MC_STOP:
; 451. PlayStatus = StopSta;
XOR A
LD (PlayStatus),A
; 452. CaltimeFlag = FALSE;//等待计时间
JR ?0198
; 453. WaitForCaltimeCNT = 0;
; 454. break;
?0133:
; 455.
; 456. case MC_CALTIME:
; 457. CaltimeFlag = TRUE;
LD A,1
?0198:
LD (CaltimeFlag),A
; 458. WaitForCaltimeCNT = 0;
XOR A
LD (WaitForCaltimeCNT),A
; 459.
; 460. break;
?0134:
; 461.
; 462. default:
; 463. break;
?0121:
; 464. }
; 465. return result;
LD L,(IX-2)
; 466. }
?0135:
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0208:
CALL LWRD ?BANK_CALL_DIRECT_L08
LD BC,(g_music_vars+3)
LD A,C
RLCA
SBC A,A
LD B,A
LD E,70
RET
?0210:
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (IX-2),L
LD A,(IX+2)
CP 3
RET
?0211:
CALL LWRD ?BANK_CALL_DIRECT_L08
LD BC,(g_music_vars+2)
LD B,0
LD E,67
RET
?0212:
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,(g_music_vars+2)
LD B,A
LD A,8
CP B
RET
?0213:
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,(g_music_vars+2)
LD B,A
LD A,16
CP B
RET
?0219:
CALL LWRD BankSwitch
PUSH IY
POP BC
LD E,(IX+2)
RET
SelectCurMusic:
; 467.
; 468. //===================重选当前歌曲=========================
; 469. void SelectCurMusic(void)
; 470. {
PUSH BC
PUSH DE
; 471. musicpSendCommand(MC_STOP, NULL);
CALL LWRD ?0209
; 472. musicpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
; 473. ChangeMusic(Music_Cur, Play_play); //播放当前歌曲
LD C,1
LD E,2
LD A,BYTE3 ChangeMusic
LD HL,LWRD ChangeMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
; 474. GetInformation(); //取文件信息
LD A,BYTE3 GetInformation
LD HL,LWRD GetInformation
CALL LWRD ?BANK_CALL_DIRECT_L08
; 475. musicpSendCommand( MC_OPEN, (int)& g_Openparam );
LD BC,g_Openparam
LD E,1
CALL LWRD ?0214
; 476. musicpSendCommand(MC_LOAD, NULL);
LD E,3
CALL LWRD ?0214
; 477. musicpSendCommand(MC_CALTIME, NULL);
LD E,19
CALL LWRD ?0214
; 478. musicpSendCommand(MC_PLAY, NULL);
LD E,4
CALL LWRD ?0215
; 479. //StartIntro(TRUE);
; 480. }
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
?0209:
LD BC,0
LD E,6
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
LD BC,0
LD E,2
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
RET
?0214:
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
LD BC,0
RET
ui_delete_Music:
; 481. //========================================================
; 482.
; 483.
; 484.
; 485. int ui_delete_Music( int type )
; 486. {
CALL LWRD ?ENT_PARM_DIRECT_L09
; 487. g_music_vars.location.ID3buffer = g_TagInfoBuf;
LD HL,g_TagInfoBuf
LD (g_music_vars+45),HL
; 488.
; 489.
; 490. if (g_music_vars.location.disk == 'H')
LD A,(g_music_vars+7)
CP 72
JR NZ,?0137
?0136:
; 491. {
; 492. DRV_ActiveUD(1, MODE_SLOW); //04-2-28 16:29
LD C,1
LD E,C
JR ?0199
?0137:
; 493. }
; 494. else if (g_music_vars.location.disk == 'C')
CP 67
JR NZ,?0140
?0139:
; 495. {
; 496. DRV_ActiveUD(0, MODE_SLOW); //04-2-28 16:29
LD C,1
LD E,0
?0199:
CALL LWRD DRV_ActiveUD
?0140:
?0138:
; 497. }
; 498.
; 499. if(type==DELETE_MUSIC)
LD A,1
XOR (IX+2)
OR (IX+3)
JR NZ,?0142
?0141:
; 500. {
; 501. FSELSetMode(FSEL_ALL_REPEATALL);
LD E,4
CALL LWRD ?0222
; 502. g_result=ui_delete_all(& g_music_vars.location, DELETE_MUSIC,g_comval.langid);
LD HL,g_comval+12
LD C,(HL)
PUSH BC
LD C,1
LD DE,g_music_vars+7
LD A,BYTE3 ui_delete_all
LD HL,LWRD ui_delete_all
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
LD (g_result),HL
; 503. FSELSetMode(g_music_vars.repeat_mode);
CALL LWRD ?0223
; 504. }
; 505. else
JR ?0143
?0142:
; 506. g_result = ui_delete(& g_music_vars.location, type, g_comval.langid);
LD HL,g_comval+12
LD C,(HL)
PUSH BC
LD C,(IX+2)
LD DE,g_music_vars+7
LD A,BYTE3 ui_delete
LD HL,LWRD ui_delete
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
LD (g_result),HL
?0143:
; 507.
; 508. if (g_result == RESULT_SD_OUT)
LD HL,(g_result)
LD A,54
XOR L
OR H
JR NZ,?0145
?0144:
; 509. {
; 510. DisplayErrMsg(CARDPULL);//显示卡拔出
LD DE,394
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
CALL LWRD ?BANK_CALL_DIRECT_L08
; 511. g_music_vars.location.disk = 'C';
LD A,67
LD (g_music_vars+7),A
; 512. return RESULT_IGNORE;
LD HL,52
; 513. }
JR ?0152
?0145:
; 514.
; 515. if (g_result != 0)
LD A,L
OR H
JR NZ,?0152
?0146:
; 516. {
; 517. return g_result;
; 518. }
?0147:
; 519.
; 520. if (!ChangeMusic(Music_Next, Stop_key))
LD C,A
LD E,3
LD A,BYTE3 ChangeMusic
LD HL,LWRD ChangeMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
INC L
DEC L
JR NZ,?0151
?0148:
; 521. {
; 522. if (UpdateFileSelector() == 0)
LD A,BYTE3 UpdateFileSelector
LD HL,LWRD UpdateFileSelector
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,L
OR H
JR Z,?0200
?0150:
; 523. {
; 524. return 0;
; 525. }
?0151:
?0149:
; 526.
; 527.
; 528. }
; 529.
; 530. fselGetLocation(& g_music_vars.location);
CALL LWRD ?0225
; 531.
; 532. return 0; //RESULT_RESTART;
?0200:
LD HL,0
; 533. }
?0152:
JP LWRD ?BANK_LEAVE_DIRECT_L08
NoCardCaseInStopMenu:
; 534.
; 535. int NoCardCaseInStopMenu(int active)
; 536. {
PUSH BC
PUSH IX
PUSH DE
; 537. int result;
; 538. switch (active)
CALL LWRD ?S_S_SWITCH_L06
DEFW 0
DEFW 3
DEFW ?0169
DEFW ?0154
DEFW ?0163
DEFW ?0168
?0154:
; 539. {
; 540. case 0: //主目录
; 541. if (g_music_vars.location.disk == 'H')
LD A,(g_music_vars+7)
CP 72
JR NZ,?0156
?0155:
; 542. {
; 543. g_music_vars.location.disk = 'C';
LD A,67
LD (g_music_vars+7),A
; 544. FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
LD C,A
PUSH BC
LD C,0
PUSH BC
CALL LWRD ?0221
POP AF
POP AF
; 545. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
XOR A
LD (g_music_vars+81),A
?0156:
; 546. }
; 547.
; 548. 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,?0159
LD A,(g_music_vars+81)
DEC A
DEC A
JR NZ,?0158
?0159:
?0160:
?0157:
; 549. {
; 550. fselPlayListExit();
LD A,BYTE3 fselPlayListExit
LD HL,LWRD fselPlayListExit
CALL LWRD ?BANK_CALL_DIRECT_L08
; 551. FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
LD HL,g_music_vars+7
LD C,(HL)
PUSH BC
LD C,0
PUSH BC
CALL LWRD ?0221
POP AF
POP AF
; 552. 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
; 553. fselGetLocation(&g_music_vars.location);
CALL LWRD ?0225
; 554. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
XOR A
LD (g_music_vars+81),A
?0158:
; 555. }
; 556.
; 557. result = ui_directory(& g_music_vars.location, DIRECTORY_MUSIC, g_comval.langid);
LD HL,g_comval+12
LD C,(HL)
PUSH BC
LD C,0
LD DE,g_music_vars+7
LD A,BYTE3 ui_directory
LD HL,LWRD ui_directory
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
PUSH HL
POP IX
; 558. FSELSetMode(FSEL_ALL_SEQUENCE);
LD E,0
CALL LWRD ?0222
; 559. if (result == 0)
PUSH IX
POP HL
LD A,L
OR H
JR NZ,?0162
?0161:
; 560. {
; 561. //当选中目录后用普通模式播放
; 562. g_music_vars.play_listmod = mlistnor;
LD A,5
LD (g_music_vars+80),A
; 563. g_music_vars.file_list_type = 0xff;
LD A,255
LD (g_music_vars+92),A
?0162:
; 564. }
; 565. break;
JR ?0153
?0163:
; 566.
; 567. case 1: //删除文件
; 568. 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,?0166
LD A,(g_music_vars+81)
DEC A
DEC A
JR NZ,?0165
?0166:
?0167:
?0164:
; 569. {
; 570. fselPlayListExit();
LD A,BYTE3 fselPlayListExit
LD HL,LWRD fselPlayListExit
CALL LWRD ?BANK_CALL_DIRECT_L08
; 571. 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,0
PUSH BC
LD C,4
LD E,0
CALL LWRD ?0220
POP AF
POP AF
; 572. 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
; 573. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
XOR A
LD (g_music_vars+81),A
; 574. g_music_vars.play_listmod = mlistnor;//改为普通目录模式
LD A,5
LD (g_music_vars+80),A
; 575. fselGetLocation(&g_music_vars.location);
CALL LWRD ?0225
?0165:
; 576. }
; 577. result = ui_delete_Music(DELETE_FILE);
LD DE,0
CALL LWRD ?0227
; 578. g_music_vars.file_list_type = 0xff;
; 579. break;
JR ?0153
?0168:
; 580.
; 581. case 2: //删除全部
; 582. FSELSetMode(FSEL_ALL_REPEATALL);
LD E,4
CALL LWRD ?0222
; 583. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
XOR A
LD (g_music_vars+81),A
; 584. result = ui_delete_Music(DELETE_MUSIC);
LD DE,1
CALL LWRD ?0227
; 585. g_music_vars.file_list_type = 0xff;
; 586. FSELSetMode(g_music_vars.repeat_mode);
CALL LWRD ?0223
; 587. break;
JR ?0153
?0169:
; 588.
; 589. default://退出
; 590. //result = 0;
; 591. result = RESULT_IGNORE;
LD IX,52
; 592. break;
?0153:
; 593. }
; 594. return result;
PUSH IX
POP HL
; 595. }
POP AF
POP IX
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
?0227:
LD A,BYTE3 ui_delete_Music
LD HL,LWRD ui_delete_Music
CALL LWRD ?BANK_CALL_DIRECT_L08
PUSH HL
POP IX
LD A,255
LD (g_music_vars+92),A
RET
Deal_Error_Playing:
; 596. void Deal_Error_Playing(void)
; 597. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65510
; 598. wma_inf_t drminfbuff;
; 599. if (musicpSendCommand(MC_GETINF, (int)&drminfbuff))
LD HL,0
ADD HL,SP
LD C,L
LD B,H
LD E,16
CALL LWRD ?0215
INC L
DEC L
JR Z,?0171
?0170:
; 600. {
; 601.
; 602. if (drminfbuff.drmmode == INF_DRMNOLICENSE)
LD B,(IX-26)
DEC B
DEC B
JR NZ,?0179
?0172:
; 603. {
; 604. DisplayErrMsg(NOLICENS);//显示无licens
LD DE,599
JR ?0203
?0173:
?0171:
; 605. }
; 606. }
; 607.
; 608. else if ( (g_music_vars.location.disk != 'C') //zxs modify for card
; 609. && (DRV_DetectUD(1) != 0x20) )
LD A,(g_music_vars+7)
CP 67
JR Z,?0176
LD E,1
CALL LWRD DRV_DetectUD
CP 32
JR Z,?0176
?0178:
?0177:
?0175:
; 610. {
; 611. DisplayErrMsg(CARDPULL);//显示卡拔出
LD DE,394
JR ?0203
; 612. }
; 613. else
?0176:
; 614. {
; 615. DisplayErrMsg(MFMTERR);//显示格式错
LD DE,538
?0203:
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
CALL LWRD ?BANK_CALL_DIRECT_L08
?0179:
?0174:
; 616. }
; 617. musicpSendCommand(MC_STOP, NULL);
CALL LWRD ?0209
; 618. musicpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
; 619. SetFullInterface();
XOR A
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 620. }
JP LWRD ?BANK_LEAVE_DIRECT_L08
RSEG CSTR
?0007:
DEFB ':'
DEFB 0
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?