📄 sub_playstatuskey.s01
字号:
; 411. {
; 412. musicpSendCommand(MC_STEP, 0);
LD BC,0
LD E,7
CALL LWRD ?0200
; 413. PlayStatus = PlaySta;
LD A,2
LD (PlayStatus),A
; 414. }
; 415. else
JP LWRD ?0098
?0072:
; 416. {
; 417. switch (RePlayStatus)
LD DE,(RePlayStatus)
CALL LWRD ?C_S_SWITCH_L06
DEFB 0
DEFW 4
DEFW ?0098
DEFW ?0077
DEFW ?0083
DEFW ?0084
DEFW ?0089
?0077:
; 418. {
; 419. case NormalPlay:
; 420. if (key == (AP_KEY_AB | AP_KEY_UP)) //ab key
LD A,49
XOR (IX+2)
OR (IX+3)
JR NZ,?0079
?0078:
; 421. {
; 422. musicpSendCommand(MC_SETA_B, SetAPoint); //SET_A
LD BC,1
CALL LWRD ?0202
; 423. }
; 424. else //next key
JR ?0080
?0079:
; 425. {
; 426. #ifdef OPT_Sup_FadeOut_fun
; 427. FadeOut(TRUE);
CALL LWRD ?0208
; 428. #endif
; 429.
; 430. MusicEditSelStatus=MusicEditSelSta_NoSel;
; 431. MusicEditStatus=MusicEditSta_NoFun;
; 432.
; 433. g_result = ToNextMusic(Play_key);
LD E,2
LD A,BYTE3 ToNextMusic
LD HL,LWRD ToNextMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
; 434. if(g_result != 0)
LD A,L
OR H
JP NZ,?0100
?0081:
; 435. {
; 436. return g_result;
; 437. }
?0082:
; 438. SetFullInterface();
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 439. UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ; //by zxs for not refresh the bg
LD HL,UpDisplayFlag
RES 0,(HL)
?0080:
; 440. }
; 441. break;
JR ?0098
?0083:
; 442.
; 443. case WaitSetAPointForAB:
; 444. musicpSendCommand(MC_SETA_B, SetAPoint); //SET_A
LD BC,1
CALL LWRD ?0202
; 445. break;
JR ?0098
?0084:
; 446.
; 447. case WaitSetBPointForAB:
; 448. if(g_ABMinTimeCNT == 0) //要大于AB最小时间
LD A,(g_ABMinTimeCNT)
OR A
JR NZ,?0086
?0085:
; 449. {
; 450. DEBUGP(0xa1);
; 451.
; 452. if ( musicpSendCommand(MC_SETA_B, SetBPoint) ); //SET_B
LD BC,2
CALL LWRD ?0202
?0087:
?0088:
; 453. {
; 454. g_AVSetFlag = FALSE;
XOR A
LD (g_AVSetFlag),A
?0086:
; 455. }
; 456. DEBUGP(0xa2);
; 457. }
; 458. break;
JR ?0098
?0089:
; 459.
; 460. case ABLoopPlay:
; 461. #ifdef OPT_Sup_follow_fun//支持跟读对比功能
; 462. if (g_music_vars.location.disk == 'C')
LD A,(g_music_vars+7)
CP 67
JR NZ,?0091
?0090:
; 463. {
; 464. //只有当前盘为“C”时才支持跟读对比功能
; 465. musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
LD HL,2
ADD HL,SP
LD C,L
LD B,H
LD E,131
CALL LWRD ?0200
; 466. if (status_buf.status == PLAYING_REACH_A)
LD A,(IX-8)
CP 7
JR NZ,?0093
?0092:
; 467. {
; 468. musicpSendCommand(MC_CALTIME, NULL);
LD BC,0
LD E,19
CALL LWRD ?0194
; 469. musicpSendCommand(MC_PLAY, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
?0093:
; 470. }
; 471. g_FCexitflag = FALSE;
XOR A
LD (g_FCexitflag),A
; 472. g_result = ui_follow_compare();
LD A,BYTE3 ui_follow_compare
LD HL,LWRD ui_follow_compare
CALL LWRD ?0203
; 473. g_music_vars.MusicOpenMod = Nor_Break_open;//都是以断点方式退出的
LD (g_music_vars+6),A
; 474. g_ReplayTimeCNT = 0;
XOR A
LD (g_ReplayTimeCNT),A
; 475. if (g_result != 0)
LD A,L
OR H
JR Z,?0096
?0094:
; 476. {
; 477. return g_result;
; 478. }
JR ?0100
?0095:
; 479. }
; 480. else
?0091:
; 481. {
; 482. //当插卡时不支持跟读对比功能
; 483. musicpSendCommand(MC_SETA_B, ClrABPoint); //CLEAR_AB
CALL LWRD ?0201
; 484. RePlayStatus = WaitSetAPointForAB;
LD A,1
LD (RePlayStatus),A
?0096:
; 485. }
; 486. #else//OPT_Sup_follow_fun
; 487. musicpSendCommand(MC_SETA_B, ClrABPoint); //CLEAR_AB
; 488. RePlayStatus = WaitSetAPointForAB;
; 489. #endif//OPT_Sup_follow_fun
; 490.
; 491.
; 492. SetFullInterface();
XOR A
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 493. // UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ; //by zxs for not refresh the bg
; 494. if(RePlayStatus!=NormalPlay) //zxs add for s73
LD A,(RePlayStatus)
OR A
JR Z,?0098
?0097:
; 495. UpDisplayFlag = UpDisplayFlag &clr_musicbitrate;
LD HL,UpDisplayFlag
INC HL
RES 5,(HL)
?0098:
; 496. //UpDisplayFlag=UpDisplayFlag | up_MPRLmode;
; 497. break;
?0099:
; 498.
; 499. default:
; 500. break;
?0076:
?0075:
; 501. }
; 502. }
; 503. need_draw = TRUE;
LD A,1
LD (need_draw),A
; 504. return NULL;
?0172:
LD HL,0
; 505. }
?0100:
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0195:
LD BC,5
LD E,89
?0194:
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
LD BC,0
LD E,4
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
RET
?0207:
XOR A
OUT (39),A
LD DE,(m_Mp3deFileHandle)
CALL LWRD FS_FTell
LD (MusicEdit_SelSeg+4),HL
LD (MusicEdit_SelSeg+6),BC
LD A,(c_mp3deNowTimeSencond)
LD (MusicEditEndTime+2),A
LD A,(c_mp3deNowTimeMinute)
LD (MusicEditEndTime+1),A
LD A,(c_mp3deNowTimeHour)
LD (MusicEditEndTime),A
RET
?0208:
LD E,1
LD A,BYTE3 FadeOut
LD HL,LWRD FadeOut
CALL LWRD ?BANK_CALL_DIRECT_L08
XOR A
LD (MusicEditSelStatus),A
LD (MusicEditStatus),A
RET
play_key_prev:
; 506.
; 507. //======正常播放时的PREV键处理========
; 508. int play_key_prev( int key )
; 509. {
PUSH BC
PUSH DE
; 510. wma_play_status_t status_buf;
; 511.
; 512. if (RePlayStatus != NormalPlay)
LD A,(RePlayStatus)
OR A
JR Z,?0102
?0101:
; 513. {
; 514. musicpSendCommand(MC_SETA_B, ClrABPoint); //clear AB
CALL LWRD ?0201
; 515.
; 516. RePlayStatus = WaitSetAPointForAB;
LD A,1
LD (RePlayStatus),A
; 517. UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
LD HL,UpDisplayFlag
INC HL
SET 3,(HL)
; 518. need_draw = TRUE;
LD (need_draw),A
; 519. return NULL;
JR ?0103
; 520. }
?0102:
; 521.
; 522. switch (PlayStatus)
LD A,(PlayStatus)
CP 3
JR C,?0105
CP 5
JR NC,?0105
?0104:
; 523. {
; 524. case FBPlaySta:
; 525. case FFPlaySta:
; 526. musicpSendCommand(MC_STEP, 0);
LD BC,0
LD E,7
CALL LWRD ?0200
; 527. PlayStatus = PlaySta;
LD A,2
LD (PlayStatus),A
; 528. break;
JR ?0103
?0105:
CP 2
JR NZ,?0103
; 529.
; 530. case PlaySta:
; 531. #ifdef OPT_Sup_FadeOut_fun
; 532. FadeOut(TRUE);
CALL LWRD ?0208
; 533. #endif
; 534.
; 535. MusicEditSelStatus=MusicEditSelSta_NoSel;
; 536. MusicEditStatus=MusicEditSta_NoFun;
; 537.
; 538. g_result = PrevMusicInPlay();
LD A,BYTE3 PrevMusicInPlay
LD HL,LWRD PrevMusicInPlay
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
; 539. if (g_result != 0) return g_result;
LD A,L
OR H
JR NZ,?0109
?0106:
; 540. break;
?0107:
?0108:
; 541.
; 542. default:
; 543. break;
?0103:
; 544. }
; 545. return NULL;
LD HL,0
; 546. }
?0109:
POP AF
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
ToNextMusic:
; 547.
; 548. int ToNextMusic( Music_sel_mod_t mod )
; 549. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65528
; 550. wma_play_status_t status_buf;
; 551. output8(0x27,input8(0x27)&0xbf); //For test zxs 2006.04.07
IN A,(39)
RES 6,A
OUT (39),A
; 552. musicpSendCommand(MC_STOP, NULL);
CALL LWRD ?0196
; 553. musicpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
; 554. output8(0x27,input8(0x27)|0x40); //For test zxs 2006.04.07
IN A,(39)
SET 6,A
OUT (39),A
; 555. g_result = ChangeMusic(Music_Next, mod);
LD C,(IX+2)
LD E,3
CALL LWRD ?0209
; 556. if(!g_result)
JR Z,?0178
?0110:
; 557. {
; 558. return RESULT_UI_STOP;//回到停止界面
; 559. }
?0111:
; 560. GetInformation(); //取文件信息
LD A,BYTE3 GetInformation
LD HL,LWRD GetInformation
CALL LWRD ?BANK_CALL_DIRECT_L08
; 561. musicpSendCommand( MC_OPEN, (int)& g_Openparam );
CALL LWRD ?0198
; 562. g_result = musicpSendCommand(MC_LOAD, NULL);
CALL LWRD ?0199
; 563. if(g_result)
JR Z,?0113
?0112:
; 564. {
; 565. //当是WMA时由于要提高速度,在这种情况下就不计算总时间了,
; 566. musicpSendCommand(MC_CALTIME, NULL);
LD C,H
LD B,H
LD E,19
CALL LWRD ?0200
; 567. if (g_PowerOffFlag == 0x55)
LD A,(g_PowerOffFlag)
CP 85
JR NZ,?0118
?0114:
; 568. {
; 569. if (!DisplayTimeRollback())
LD A,BYTE3 DisplayTimeRollback
LD HL,LWRD DisplayTimeRollback
CALL LWRD ?BANK_CALL_DIRECT_L08
INC L
DEC L
JR NZ,?0118
?0116:
; 570. {
; 571. musicpSendCommand(MC_STOP, NULL);
LD C,L
LD B,L
LD E,6
CALL LWRD ?0200
; 572. musicpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?0192
; 573. SetFullInterface();
; 574. need_draw = TRUE;
; 575. return RESULT_UI_STOP;
?0178:
JR ?0179
; 576. }
?0117:
?0115:
; 577. }
; 578. }
; 579.
; 580. // if(!g_result)
; 581. else
?0113:
; 582. {
; 583. musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
LD L,H
ADD HL,SP
CALL LWRD ?0193
; 584. ErrReport(PlayStatus);
; 585. PlayStatus=StopSta;
; 586. return RESULT_UI_STOP;//回到停止界面
?0179:
LD HL,102
; 587. }
JR ?0119
?0118:
; 588.
; 589. // musicpSendCommand(MC_CALTIME, NULL);
; 590.
; 591. musicpSendCommand(MC_SETPOWERCOUNT, 5); //by jmzhang
CALL LWRD ?0195
; 592.
; 593.
; 594. musicpSendCommand(MC_PLAY, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
; 595. //StartIntro(TRUE);
; 596. return NULL;
LD HL,0
; 597. }
?0119:
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0193:
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
?0196:
LD BC,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -