📄 ui_followcompare.s01
字号:
NAME ui_followcompare(17)
RSEG AP_UI_FC(0)
RSEG UDATA0(0)
RSEG APC_UI_FC(0)
PUBLIC ABPointTimeSize
PUBLIC DealForExitRec
PUBLIC NUM_PIC1
PUBLIC OpenMusic
EXTERN RePlayStatus
PUBLIC Replaytimes_CNT
PUBLIC ReturnNotInit
PUBLIC Show_time_FC
PUBLIC TimeRateData_sav
EXTERN UpDisplayFlag
EXTERN g_ABPointTimeSize
EXTERN g_Openparam
EXTERN g_music_vars
EXTERN ifSelBuffToltalTimeFlag
EXTERN itoa_1
EXTERN itoa_2
EXTERN musicpSendCommand
EXTERN temp_buffer
EXTERN ui_compareAB
EXTERN ui_comparePlay
EXTERN ui_followAB
EXTERN ui_followRec
PUBLIC ui_follow_compare
EXTERN ui_run_realtime
EXTERN ui_show_d
EXTERN wavpSendCommand
EXTERN wavrProceed
EXTERN wavrSendCommand
EXTERN ?CLZ80B_4_04_L00
EXTERN ?US_DIV_L02
EXTERN ?C_S_SWITCH_L06
EXTERN ?BANK_CALL_DIRECT_L08
EXTERN ?BANK_LEAVE_DIRECT_L08
EXTERN ?BANK_FAST_LEAVE_L08
EXTERN ?ENT_AUTO_DIRECT_L09
RSEG AP_UI_FC
ui_follow_compare:
; 1. /*
; 2. *******************************************************************************
; 3. * SDK30F_D1
; 4. * music player follow compare sub
; 5. *
; 6. * (c) Copyright 2002, Actions Co,Ld.
; 7. * All Right Reserved
; 8. *
; 9. * File: follow_compare.c
; 10. * By : rcmai
; 11. * Version: 1> v1.00 first version 2004-3-19 8:28
; 12. *******************************************************************************
; 13. * $Id: ui_followcompare.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
; 14. *******************************************************************************
; 15. */
; 16. #include "ap_music.h"
; 17.
; 18. bool ReturnNotInit; //TRUE:表示下一个调用不用初始化,
; 19.
; 20. BYTE Replaytimes_CNT; //
; 21. TimeRateData_sav_t TimeRateData_sav;
; 22. WORD ABPointTimeSize;
; 23.
; 24. //暂存A点显示的时间值,因为在跟读录音停止时要显示A点时间
; 25. //time_t g_APointDisTime;
; 26. //g_APointDisTime = g_music_vars.BreakPTDisTime;
; 27. #pragma memory=constseg(APC_UI_FC)
; 28. //比特率的小图标(由于比标准ASCII小,所以要另出一套图标)
; 29. const WORD NUM_PIC1 [] =
; 30. {
; 31. MBIT0,MBIT1,MBIT2, MBIT3, MBIT4, MBIT5, MBIT6, MBIT7, MBIT8, MBIT9
; 32. };
; 33. #pragma memory=default
; 34.
; 35. int main_ResShowPic( WORD id, uchar x, uchar y );
; 36. void DealForExitRec( void ); //退出录音时的处理
; 37. void Show_time_FC( void );
; 38. void OpenMusic( void );
; 39.
; 40. #pragma codeseg(AP_UI_FC)
; 41. /*
; 42. ********************************************************************************
; 43. * int ui_follow_compare( void )
; 44. *
; 45. * Description : 跟读对比主循环
; 46. *
; 47. * Arguments : void
; 48. *
; 49. * Returns : int
; 50. * RESULT_UI_STOP: 表示要进入停止状态,此时所有module已关闭
; 51. * key: 热健消息
; 52. * NULL: 表示正常退出
; 53. *
; 54. * Notes :
; 55. *
; 56. ********************************************************************************
; 57. */
; 58. int ui_follow_compare( void )
; 59. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65524
PUSH IY
; 60. int result;
; 61.
; 62. {
; 63. mp3_play_status_t status_buf;
; 64. WORD i;
; 65. i = g_ABPointTimeSize/10; //长 10%
LD BC,10
LD DE,(g_ABPointTimeSize)
CALL LWRD ?US_DIV_L02
LD (IX-2),E
LD (IX-1),D
; 66. if (i < 2)
LD C,2
EX DE,HL
AND A
SBC HL,BC
JR NC,?0003
?0002:
; 67. {
; 68. i = 2;
LD (IX-2),C
LD (IX-1),B
?0003:
; 69. }
; 70. ABPointTimeSize = g_ABPointTimeSize +2 + i;//2为经验补尝值
LD L,(IX-2)
LD H,(IX-1)
LD BC,(g_ABPointTimeSize)
ADD HL,BC
INC HL
INC HL
LD (ABPointTimeSize),HL
; 71.
; 72. musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
LD HL,4
ADD HL,SP
LD C,L
LD B,H
LD E,131
CALL LWRD ?0056
; 73. //保存用于跟读对比显示
; 74. TimeRateData_sav.TotalTime_sav[0] = status_buf.total_time.hour;
LD A,(IX-7)
LD (TimeRateData_sav+3),A
; 75. TimeRateData_sav.TotalTime_sav[1] = status_buf.total_time.minute;
LD A,(IX-6)
LD (TimeRateData_sav+4),A
; 76. TimeRateData_sav.TotalTime_sav[2] = status_buf.total_time.second;
LD A,(IX-5)
LD (TimeRateData_sav+5),A
; 77. ifSelBuffToltalTimeFlag=TRUE;
LD A,1
LD (ifSelBuffToltalTimeFlag),A
; 78. }
; 79.
; 80. ReturnNotInit = FALSE; //下次需要初始化
XOR A
LD (ReturnNotInit),A
; 81. Replaytimes_CNT = 0;
LD (Replaytimes_CNT),A
; 82.
; 83. musicpSendCommand(MC_STOP, 1);//1表示MP3 退出时备份的是A点时间
LD BC,1
LD E,6
CALL LWRD ?0056
; 84. musicpSendCommand(MC_BACKUP, (int)& g_music_vars.BreakPTSave);
LD BC,g_music_vars+48
LD E,68
CALL LWRD ?0055
; 85. musicpSendCommand(MC_CLOSE, NULL);
LD E,2
CALL LWRD ?0056
; 86.
; 87. RePlayStatus = FollowRec;
LD A,4
LD (RePlayStatus),A
?0005:
; 88.
; 89. //UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
; 90. while (1)
; 91. {
; 92. switch (RePlayStatus)//状态处理
LD DE,(RePlayStatus)
CALL LWRD ?C_S_SWITCH_L06
DEFB 0
DEFW 8
DEFW ?0005
DEFW ?0008
DEFW ?0008
DEFW ?0005
DEFW ?0021
DEFW ?0009
DEFW ?0012
DEFW ?0015
DEFW ?0018
?0008:
; 93. {
; 94. case WaitSetAPointForAB://待设A点
; 95. case NormalPlay://普通播放
; 96. musicpSendCommand(MC_SETA_B, ClrABPoint);//clear_a b
LD BC,0
LD E,65
CALL LWRD ?0056
; 97. return NULL;
JR ?0021
; 98.
; 99. case FollowRec://跟读录音
?0009:
; 100. result = ui_followRec();
LD A,BYTE3 ui_followRec
LD HL,LWRD ui_followRec
CALL LWRD ?0057
; 101. if (result != 0)
JR Z,?0005
?0010:
; 102. {
; 103. return result;
JR ?0023
; 104. }
?0011:
; 105. break;
?0012:
; 106.
; 107. case FollowAB://跟读AB
; 108. result = ui_followAB();
LD A,BYTE3 ui_followAB
LD HL,LWRD ui_followAB
CALL LWRD ?0057
; 109. if (result != 0)
JR Z,?0005
?0013:
; 110. {
; 111. return result;
JR ?0023
; 112. }
?0014:
; 113. break;
?0015:
; 114.
; 115. case ComparePlay://对比播放
; 116. result = ui_comparePlay();
LD A,BYTE3 ui_comparePlay
LD HL,LWRD ui_comparePlay
CALL LWRD ?0057
; 117. if (result != 0)
JR Z,?0005
?0016:
; 118. {
; 119. return result;
JR ?0023
; 120. }
?0017:
; 121. break;
?0018:
; 122.
; 123. case CompareAB: //对比AB
; 124. result = ui_compareAB();
LD A,BYTE3 ui_compareAB
LD HL,LWRD ui_compareAB
CALL LWRD ?0057
; 125. if (result != 0)
JR Z,?0005
?0019:
; 126. {
; 127. return result;
; 128. }
JR ?0023
?0020:
; 129. break;
?0021:
; 130.
; 131. case ABLoopPlay: //复读
; 132. return NULL;
LD HL,0
; 133.
; 134. default:
?0023:
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0055:
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
LD BC,0
RET
?0056:
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
JP LWRD ?BANK_CALL_DIRECT_L08
?0057:
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,L
OR H
RET
?0022:
; 135. break;
?0007:
; 136. }
; 137. }
; 138. }
DealForExitRec:
; 139.
; 140.
; 141.
; 142.
; 143.
; 144.
; 145. /*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -