📄 ui_compare.s01
字号:
NAME ui_compare(17)
RSEG CODE(0)
RSEG CSTR(0)
EXTERN BankSwitch
EXTERN ChangeVolume
EXTERN DealPlayKey
EXTERN GetBattery
EXTERN OpenMusic
EXTERN RePlayStatus
EXTERN RefreshMainScreen
EXTERN Replaytimes_CNT
EXTERN ReturnNotInit
EXTERN ShowNowTime
EXTERN Show_time_FC
EXTERN UpDisplayFlag
EXTERN ap_get_message
EXTERN ap_handle_hotkey
PUBLIC fade_out
EXTERN g_FCexitflag
EXTERN g_comval
EXTERN g_music_vars
EXTERN g_result
EXTERN musicpSendCommand
EXTERN need_draw
EXTERN ui_auto_update
PUBLIC ui_compareAB
PUBLIC ui_comparePlay
EXTERN ui_show_batt
EXTERN wavpSendCommand
EXTERN ?CLZ80B_4_04_L00
EXTERN ?S_V_SWITCH_L06
EXTERN ?BANK_CALL_DIRECT_L08
EXTERN ?BANK_LEAVE_DIRECT_L08
EXTERN ?BANK_FAST_LEAVE_L08
EXTERN ?ENT_AUTO_DIRECT_L09
RSEG CODE
fade_out:
; 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: ui_compare.c
; 10. * By : rcmai
; 11. * Version: 1> v1.00 first version 2004-3-19 8:28
; 12. *******************************************************************************
; 13. * $Id: ui_compare.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
; 14. *******************************************************************************
; 15. */
; 16.
; 17. #include "ap_music.h"
; 18.
; 19. extern BYTE Replaytimes_CNT; //
; 20. extern bool ReturnNotInit; //TRUE:表示下一个调用不用初始化,
; 21. extern char return_to_play; //为一表示从其他界面返回播放界面
; 22. void Show_time_FC( void );
; 23. void OpenMusic( void );
; 24. extern bool g_FCexitflag;
; 25.
; 26. BOOL fade_out(void)
; 27. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65534
?0003:
; 28. BOOL status;
; 29.
; 30. while(!(status = wavpSendCommand(MC_FADEOUT, 0)))
LD BC,0
LD E,15
CALL LWRD ?0078
INC L
DEC L
JR NZ,?0002
?0004:
; 31. {
; 32. output8(0x4e,input8(0x4e)|0x8);
IN A,(78)
SET 3,A
OUT (78),A
JR ?0003
?0002:
; 33. }
; 34. return TRUE;
LD L,1
; 35.
; 36. }
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0078:
LD A,BYTE3 wavpSendCommand
LD HL,LWRD wavpSendCommand
JP LWRD ?BANK_CALL_DIRECT_L08
ui_comparePlay:
; 37. /*
; 38. ********************************************************************************
; 39. * int ui_comparePlay( void )
; 40. *
; 41. * Description : 对比--------对比录音播放子状态
; 42. *
; 43. * Arguments : void
; 44. *
; 45. * Returns : int
; 46. *
; 47. * Notes : 在此状态下,按play到stop状态;按mode到play;按PREV到跟读状态;
; 48. *
; 49. ********************************************************************************
; 50. */
; 51. int ui_comparePlay( void )
; 52. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65526
; 53. int key;
; 54.
; 55. wma_play_status_t status_buf;
; 56. BankSwitch((unsigned long)wavpSendCommand >> 16);
LD B,0
LD E,BYTE3 wavpSendCommand
LD C,B
CALL LWRD BankSwitch
; 57. wavpSendCommand(MC_OPEN, NULL);
LD E,1
CALL LWRD ?0078
; 58. wavpSendCommand(MC_LOAD, (int)FollowReadTempFileName);
LD BC,?0005
LD E,3
CALL LWRD ?0078
; 59. wavpSendCommand(MC_SETVOLUME, g_music_vars.volume);
LD BC,(g_music_vars)
LD A,C
RLCA
SBC A,A
LD B,A
LD E,64
CALL LWRD ?0076
; 60. wavpSendCommand(MC_FADEIN, 0);
LD E,14
CALL LWRD ?0076
; 61. wavpSendCommand(MC_PLAY, NULL);
LD E,4
CALL LWRD ?0078
; 62. UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
LD HL,UpDisplayFlag
INC HL
SET 3,(HL)
; 63. need_draw = TRUE;
LD A,1
LD (need_draw),A
?0007:
; 64.
; 65. while (1)
; 66. {
; 67. if (need_draw)
LD A,(need_draw)
OR A
JR Z,?0010
?0009:
; 68. {
; 69. //显示比特率
; 70. // Show_time_FC();
; 71. RefreshMainScreen();
CALL LWRD ?0081
; 72. Show_time_FC();
CALL LWRD ?0080
; 73. need_draw = FALSE;
XOR A
LD (need_draw),A
?0010:
; 74. }
; 75.
; 76. key = ap_get_message();
CALL LWRD ap_get_message
LD C,A
LD E,C
LD B,0
LD (IX-9),B
; 77.
; 78. switch (key)
LD D,B
CALL LWRD ?S_V_SWITCH_L06
DEFW 8
DEFW 25
DEFW 28
DEFW 29
DEFW 33
DEFW 37
DEFW 38
DEFW 48
DEFW 49
DEFW ?0018
DEFW ?0014
DEFW ?0015
DEFW ?0014
DEFW ?0016
DEFW ?0013
DEFW ?0011
DEFW ?0017
DEFW ?0011
?0012:
; 79. {
; 80. case AP_MSG_STANDBY:
; 81. case AP_MSG_LOCK: //不响应锁键
; 82. break;
?0013:
; 83.
; 84. case AP_KEY_PLAY | AP_KEY_UP:
; 85. //fade_out();
; 86. wavpSendCommand(MC_STOP, NULL);
CALL LWRD ?0073
; 87. wavpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
; 88. RePlayStatus = NormalPlay;
XOR A
LD (RePlayStatus),A
; 89. /*
; 90. //************
; 91. //注:因为这里退出时外面要淡出,所以会发出声音,
; 92. //这里把音量设为0就相当于不淡出,这只是权余之计
; 93. //以后希望能改掉
; 94. SetPAVolume(0);
; 95.
; 96. //由于在MC_PLAY命令中用这个标志来判断是否要设音量,这里送
; 97. //个非0就是为了认音量为0,从而在开始放MUSIC后不送出声音
; 98. g_FadeInStatusFlag = 2;
; 99. OpenMusic();
; 100. g_FadeInStatusFlag = 0;
; 101. //*************
; 102. */
; 103. g_FCexitflag = TRUE;
; 104. OpenMusic();
CALL LWRD ?0079
; 105. //musicpSendCommand(MC_SETVOLUME, 0); //让音量为0,这可在淡出时没声
; 106.
; 107. //UpDisplayFlag=UpDisplayFlag | up_MPRLmode;
; 108. SetFullInterface();
; 109. need_draw = TRUE;
; 110. return RESULT_UI_STOP2; //选关播放后回到停止界面
LD HL,103
; 111.
; 112. case AP_KEY_AB | AP_KEY_UP:
JP LWRD ?0026
?0014:
; 113. case AP_KEY_NEXT | AP_KEY_UP:
; 114. //fade_out();
; 115. wavpSendCommand(MC_STOP, NULL);
CALL LWRD ?0073
; 116. wavpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?0075
; 117. OpenMusic();
; 118. RePlayStatus = WaitSetAPointForAB;
LD A,1
LD (RePlayStatus),A
; 119. SetFullInterface();
XOR A
JR ?0059
; 120. return NULL;
; 121.
; 122. case AP_KEY_MODE | AP_KEY_UP:
?0015:
; 123. //fade_out();
; 124. wavpSendCommand(MC_STOP, NULL);
CALL LWRD ?0073
; 125. wavpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?0075
; 126. OpenMusic();
; 127. RePlayStatus = NormalPlay;
XOR A
LD (RePlayStatus),A
; 128. SetFullInterface();
?0059:
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 129. return NULL;
JP LWRD ?0055
; 130.
; 131. case AP_KEY_PREV | AP_KEY_UP:
?0016:
; 132. //fade_out();
; 133. wavpSendCommand(MC_STOP, NULL);
CALL LWRD ?0073
; 134. wavpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
; 135. Replaytimes_CNT = 0; //重新开始计复读次数
XOR A
LD (Replaytimes_CNT),A
; 136. RePlayStatus = FollowAB;
LD A,5
JR ?0058
; 137. return NULL;
; 138.
; 139. case AP_MSG_RTC:
?0017:
; 140.
; 141.
; 142. UpDisplayFlag = UpDisplayFlag | up_musiccurrenttime;
LD HL,UpDisplayFlag
INC HL
SET 1,(HL)
; 143. Show_time_FC();
CALL LWRD ?0080
; 144. ui_show_batt( GetBattery(), g_comval.BatteryType,0);
LD C,B
PUSH BC
LD BC,(g_comval+15)
CALL LWRD GetBattery
LD E,A
LD A,BYTE3 ui_show_batt
LD HL,LWRD ui_show_batt
CALL LWRD ?BANK_CALL_DIRECT_L08
POP HL
; 145. break;
JR ?0011
?0018:
; 146.
; 147.
; 148. default:
; 149. key = ap_handle_hotkey(key);
LD E,C
CALL LWRD ap_handle_hotkey
LD C,A
LD (IX-10),C
; 150. if (key == RESULT_REDRAW)
LD A,50
XOR C
JR NZ,?0020
?0019:
; 151. {
; 152. //ui_auto_update = TRUE;
; 153. SetFullInterface();
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 154. need_draw = TRUE;
LD A,1
LD (need_draw),A
JR ?0011
?0020:
; 155. // return_to_play=1;
; 156. }
; 157. else if (key != 0)
LD A,C
OR A
JR Z,?0011
?0022:
; 158. {
; 159. // fade_out();
; 160. wavpSendCommand(MC_STOP, NULL);
CALL LWRD ?0073
; 161. wavpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
; 162.
; 163. /*
; 164. //************
; 165. //注:因为这里退出时外面要淡出,所以会发出声音,
; 166. //这里把音量设为0就相当于不淡出,这只是权余之计
; 167. //以后希望能改掉
; 168. SetPAVolume(0);
; 169.
; 170. //由于在MC_PLAY命令中用这个标志来判断是否要设音量,这里送
; 171. //个非0就是为了认音量为0,从而在开始放MUSIC后不送出声音
; 172. g_FadeInStatusFlag = 2;
; 173. OpenMusic();
; 174. g_FadeInStatusFlag = 0;
; 175.
; 176. ClosePA();
; 177. //!!!!!!!!!!!!!!!
; 178. */
; 179. g_FCexitflag = TRUE;
; 180. OpenMusic();
CALL LWRD ?0079
; 181. //musicpSendCommand(MC_SETVOLUME, 0); //让音量为0,这可在淡出时没声
; 182.
; 183. SetFullInterface();
; 184. need_draw = TRUE;
; 185. return key;
LD L,(IX-10)
LD H,(IX-9)
; 186. }
JR ?0026
?0023:
?0021:
; 187. break;
?0011:
; 188. } //switch(key)
; 189.
; 190. wavpSendCommand(MC_GETSTATUS, (int)& status_buf);
LD HL,2
ADD HL,SP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -