📄 sub_playstatuskey.s01
字号:
CALL LWRD ?0219
; 428. g_result = musicpSendCommand(MC_LOAD, NULL);
CALL LWRD ?0220
; 429. if(g_result)
JR Z,?0115
?0114:
; 430. {
; 431. //当是WMA时由于要提高速度,在这种情况下就不计算总时间了,
; 432. musicpSendCommand(MC_CALTIME, NULL);
LD C,H
LD B,H
LD E,19
CALL LWRD ?0221
; 433. if (g_PowerOffFlag == 0x55)
LD A,(g_PowerOffFlag)
CP 85
JR NZ,?0120
?0116:
; 434. {
; 435. if (!DisplayTimeRollback())
LD A,BYTE3 DisplayTimeRollback
LD HL,LWRD DisplayTimeRollback
CALL LWRD ?BANK_CALL_DIRECT_L08
INC L
DEC L
JR NZ,?0120
?0118:
; 436. {
; 437. musicpSendCommand(MC_STOP, NULL);
LD C,L
LD B,L
LD E,6
CALL LWRD ?0221
; 438. musicpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?0213
; 439. SetFullInterface();
; 440. need_draw = TRUE;
; 441. return RESULT_UI_STOP;
JR ?0195
; 442. }
?0119:
?0117:
; 443. }
; 444. }
; 445.
; 446. // if(!g_result)
; 447. else
?0115:
; 448. {
; 449. musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
LD L,H
ADD HL,SP
CALL LWRD ?0214
; 450. ErrReport(PlayStatus);
; 451. PlayStatus=StopSta;
; 452. return RESULT_UI_STOP;//回到停止界面
?0195:
LD HL,102
; 453. }
JR ?0121
?0120:
; 454.
; 455. // musicpSendCommand(MC_CALTIME, NULL);
; 456.
; 457. musicpSendCommand(MC_SETPOWERCOUNT, 5); //by jmzhang
CALL LWRD ?0216
; 458.
; 459.
; 460. musicpSendCommand(MC_PLAY, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
; 461. //StartIntro(TRUE);
; 462. return NULL;
LD HL,0
; 463. }
?0121:
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0214:
LD C,L
LD B,H
LD E,131
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
LD DE,(PlayStatus)
LD A,BYTE3 ErrReport
LD HL,LWRD ErrReport
CALL LWRD ?BANK_CALL_DIRECT_L08
XOR A
LD (PlayStatus),A
RET
?0217:
LD BC,0
LD E,6
?0218:
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
?0219:
LD BC,g_Openparam
LD E,1
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
LD BC,0
LD E,3
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
RET
?0220:
CALL LWRD ?BANK_CALL_DIRECT_L08
LD H,0
LD (g_result),HL
LD A,L
OR A
RET
?0224:
LD E,4
LD A,BYTE3 fselSetMode
LD HL,LWRD fselSetMode
CALL LWRD ?BANK_CALL_DIRECT_L08
LD DE,g_music_vars+33
LD A,BYTE3 fselGetNextFile
LD HL,LWRD fselGetNextFile
CALL LWRD ?BANK_CALL_DIRECT_L08
LD DE,g_music_vars+7
LD A,BYTE3 fselGetLocation
LD HL,LWRD fselGetLocation
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,BYTE3 GetInformation
LD HL,LWRD GetInformation
CALL LWRD ?BANK_CALL_DIRECT_L08
LD BC,20
LD DE,g_TagInfoBuf1
LD HL,g_TagInfoBuf
LDIR
LD DE,g_music_vars+33
LD A,BYTE3 fselGetPrevFile
LD HL,LWRD fselGetPrevFile
CALL LWRD ?BANK_CALL_DIRECT_L08
LD DE,g_music_vars+7
LD A,BYTE3 fselGetLocation
LD HL,LWRD fselGetLocation
CALL LWRD ?BANK_CALL_DIRECT_L08
LD DE,(g_music_vars+1)
LD A,BYTE3 fselSetMode
LD HL,LWRD fselSetMode
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,BYTE3 GetInformation
LD HL,LWRD GetInformation
RET
?0229:
LD A,BYTE3 ChangeMusic
LD HL,LWRD ChangeMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
LD H,0
LD (g_result),HL
LD A,L
OR A
RET
PrevMusicInPlay:
; 464.
; 465.
; 466. int PrevMusicInPlay(void)
; 467. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65528
; 468. wma_play_status_t status_buf;
; 469.
; 470. musicpSendCommand(MC_STOP, NULL);
CALL LWRD ?0217
; 471. musicpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
; 472. g_result = ChangeMusic(Music_Prev, Play_key);
LD C,2
LD E,4
CALL LWRD ?0229
; 473. if(!g_result)
JR Z,?0199
?0122:
; 474. {
; 475. return RESULT_UI_STOP;//回到停止界面
; 476. }
?0123:
; 477. FSELSetMode( FSEL_ALL_REPEATALL );
; 478. FSELGetNext(g_music_vars.location.filename);
; 479. fselGetLocation(& g_music_vars.location);
; 480. GetInformation();
CALL LWRD ?0224
; 481. memcpy(g_TagInfoBuf1,g_TagInfoBuf,20);
; 482. //g_TagInfoBuf1[19]=0;
; 483. FSELGetPrev(g_music_vars.location.filename);
; 484. fselGetLocation(& g_music_vars.location);
; 485. FSELSetMode(g_music_vars.repeat_mode);
; 486. GetInformation(); //取文件信息
CALL LWRD ?BANK_CALL_DIRECT_L08
; 487. g_music_vars.MusicOpenMod = Nor_open;
XOR A
LD (g_music_vars+6),A
; 488. musicpSendCommand( MC_OPEN, (int)& g_Openparam );
CALL LWRD ?0219
; 489. g_result = musicpSendCommand( MC_LOAD, NULL );
CALL LWRD ?0220
; 490. if (g_result)
JR Z,?0125
?0124:
; 491. {
; 492.
; 493. musicpSendCommand(MC_CALTIME, NULL); // 算时间判断是否掉电
LD C,H
LD B,H
LD E,19
CALL LWRD ?0221
; 494. if (g_PowerOffFlag == 0x55)
LD A,(g_PowerOffFlag)
CP 85
JR NZ,?0130
?0126:
; 495. {
; 496. if (!DisplayTimeRollback())
LD A,BYTE3 DisplayTimeRollback
LD HL,LWRD DisplayTimeRollback
CALL LWRD ?BANK_CALL_DIRECT_L08
INC L
DEC L
JR NZ,?0130
?0128:
; 497. {
; 498. musicpSendCommand(MC_STOP, NULL);
LD C,L
LD B,L
LD E,6
CALL LWRD ?0221
; 499. musicpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?0213
; 500. SetFullInterface();
; 501. need_draw = TRUE;
; 502. return RESULT_UI_STOP;
JR ?0199
; 503. }
?0129:
?0127:
; 504. }
; 505.
; 506.
; 507.
; 508. }
; 509. // if(!g_result)
; 510. else
?0125:
; 511. {
; 512. musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
LD L,H
ADD HL,SP
CALL LWRD ?0214
; 513.
; 514. ErrReport(PlayStatus);
; 515. PlayStatus=StopSta;
; 516. return RESULT_UI_STOP;//回到停止界面
?0199:
LD HL,102
; 517. //}
; 518. }
JR ?0131
?0130:
; 519. SetFullInterface();
XOR A
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 520. UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ; //by zxs for not refresh the bg
LD HL,UpDisplayFlag
RES 0,(HL)
; 521. need_draw = TRUE;
LD A,1
LD (need_draw),A
; 522. // musicpSendCommand(MC_CALTIME, NULL);
; 523.
; 524. musicpSendCommand(MC_SETPOWERCOUNT, 5); //by jmzhang
CALL LWRD ?0216
; 525. musicpSendCommand(MC_PLAY, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
; 526. //StartIntro(TRUE);
; 527. return NULL;
LD HL,0
; 528. }
?0131:
JP LWRD ?BANK_LEAVE_DIRECT_L08
DealPlayKey:
; 529.
; 530. //===================================================
; 531. int DealPlayKey( void )
; 532. {
PUSH BC
PUSH DE
; 533. if (g_FCexitflag)
LD A,(g_FCexitflag)
OR A
JR Z,?0133
?0132:
; 534. {
; 535. //关闭音量(在有此情况下退出时不想发声)
; 536. musicpSendCommand(MC_SETVOLUME, 0);
LD BC,0
LD E,64
CALL LWRD ?0221
; 537. OutPutVolume(0);
LD DE,0
LD A,BYTE3 OutPutVolume
LD HL,LWRD OutPutVolume
CALL LWRD ?BANK_CALL_DIRECT_L08
; 538. musicpSendCommand(MC_FADEINOUT, FadeOut2_def);//调用快速FADEOUT
LD BC,3
LD E,13
CALL LWRD ?0221
?0133:
; 539. }
; 540. if (RePlayStatus != NormalPlay)
LD A,(RePlayStatus)
OR A
JR Z,?0135
?0134:
; 541. {
; 542. //clear set ab point
; 543. musicpSendCommand(MC_SETA_B, ClrABPoint);
CALL LWRD ?0222
; 544. RePlayStatus = NormalPlay;
XOR A
LD (RePlayStatus),A
; 545. main_ResShowPic(BBCK2,0,0);
LD C,A
PUSH BC
LD DE,29
LD A,BYTE3 main_ResShowPic
LD HL,LWRD main_ResShowPic
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
?0135:
; 546. // Show_MusicType();
; 547. // Show_Bitrate();
; 548. }
; 549. #ifdef OPT_Sup_FadeOut_fun
; 550. if (!g_FCexitflag)
LD A,(g_FCexitflag)
OR A
JR NZ,?0137
?0136:
; 551. {
; 552. FadeOut(TRUE);
CALL LWRD ?0228
?0137:
; 553. }
; 554. #endif
; 555. g_FCexitflag = FALSE;
XOR A
LD (g_FCexitflag),A
; 556. musicpSendCommand(MC_STOP, NULL);
LD C,A
LD B,A
LD E,6
CALL LWRD ?0221
; 557. musicpSendCommand(MC_BACKUP, NULL);
LD BC,0
LD E,68
CALL LWRD ?0218
; 558. musicpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
; 559. // SetStopToPlayInterface();
; 560. g_music_vars.MusicOpenMod = Nor_Break_open;
LD A,1
LD (g_music_vars+6),A
; 561. // RefreshMainScreen();
; 562. ifSelBuffToltalTimeFlag = TRUE;
LD (ifSelBuffToltalTimeFlag),A
; 563. //return RESULT_NULL; //退回上一层
; 564. PlayStatus=PauseSta; // zxs add for not refresh the background
LD (PlayStatus),A
; 565. return RESULT_UI_STOP;//退回到停止状态
LD HL,102
; 566. }
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
ErrReport:
; 567.
; 568. /******************************************************************************
; 569. ** 名字:
; 570. ** 接口:
; 571. ** 描述: 在 play 状态下碰到 错的报告
; 572. ** 输入参数:
; 573. ** 输出参数:
; 574. ** 使用说明:
; 575. ********************************************************************************/
; 576. void ErrReport(Play_status_t status)
; 577. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65510
; 578. wma_inf_t drminfbuff;
; 579. if (musicpSendCommand(MC_GETINF, (int)&drminfbuff))
LD HL,0
ADD HL,SP
LD C,L
LD B,H
LD E,16
CALL LWRD ?0221
INC L
DEC L
JR Z,?0141
?0138:
; 580. {
; 581. if (drminfbuff.drmmode == INF_DRMNOLICENSE)
LD B,(IX-26)
DEC B
DEC B
JR NZ,?0141
?0140:
; 582. {
; 583. DisplayErrMsg(NOLICENS);//显示无licens
LD DE,433
JR ?0202
; 584. goto ErrReport_exit;
?0141:
?0139:
; 585. //musicpSendCommand(MC_CLOSE, NULL);
; 586. //SetFullInterface();
; 587. //return;
; 588. }
; 589. }
; 590. if ( (g_music_vars.location.disk == 'H')
; 591. && (DRV_DetectUD(1) != 0x20) )
LD A,(g_music_vars+7)
CP 72
JR NZ,?0144
LD E,1
CALL LWRD DRV_DetectUD
CP 32
JR Z,?0144
?0146:
?0145:
?0143:
; 592. {
; 593. DisplayErrMsg(CARDPULL);//显示卡拔出
LD DE,401
JR ?0202
; 594. }
; 595. else
?0144:
; 596. {
; 597. DisplayErrMsg(MFMTERR);//显示格式错
LD DE,398
?0202:
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
CALL LWRD ?BANK_CALL_DIRECT_L08
?0147:
?0142:
; 598. }
; 599.
; 600. //common exit
; 601. ErrReport_exit:
; 602. if ((status != StopSta)&&(status != PauseSta))
XOR A
OR (IX+2)
JR Z,?0149
LD B,A
DEC B
JR Z,?0149
?0151:
?0150:
?0148:
; 603. {
; 604. musicpSendCommand(MC_STOP, NULL);
LD BC,0
LD E,6
CALL LWRD ?0221
?0149:
; 605. }
; 606. musicpSendCommand(MC_CLOSE, NULL);
LD BC,0
LD E,2
CALL LWRD ?0221
; 607. SetFullInterface();
XOR A
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 608. return;
; 609. }
JP LWRD ?BANK_LEAVE_DIRECT_L08
Deal_Error_Playing:
; 610. void Deal_Error_Playing(void)
; 611. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65510
; 612. wma_inf_t drminfbuff;
; 613. if (musicpSendCommand(MC_GETINF, (int)&drminfbuff))
LD HL,0
ADD HL,SP
LD C,L
LD B,H
LD E,16
CALL LWRD ?0221
INC L
DEC L
JR Z,?0153
?0152:
; 614. {
; 615.
; 616. if (drminfbuff.drmmode == INF_DRMNOLICENSE)
LD B,(IX-26)
DEC B
DEC B
JR NZ,?0161
?0154:
; 617. {
; 618. DisplayErrMsg(NOLICENS);//显示无licens
LD DE,433
JR ?0208
?0155:
?0153:
; 619. }
; 620. }
; 621.
; 622. else if ( (g_music_vars.location.disk == 'H')
; 623. && (DRV_DetectUD(1) != 0x20) )
LD A,(g_music_vars+7)
CP 72
JR NZ,?0158
LD E,1
CALL LWRD DRV_DetectUD
CP 32
JR Z,?0158
?0160:
?0159:
?0157:
; 624. {
; 625. DisplayErrMsg(CARDPULL);//显示卡拔出
LD DE,401
JR ?0208
; 626. }
; 627. else
?0158:
; 628. {
; 629. DisplayErrMsg(MFMTERR);//显示格式错
LD DE,398
?0208:
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
CALL LWRD ?BANK_CALL_DIRECT_L08
?0161:
?0156:
; 630. }
; 631. musicpSendCommand(MC_STOP, NULL);
LD BC,0
LD E,6
CALL LWRD ?0221
; 632. musicpSendCommand(MC_CLOSE, NULL);
JP LWRD ?0149
; 633. SetFullInterface();
; 634. }
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -