📄 sub_playstatuskey.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:00:51 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_music\sub_playstatuskey.c #
# List file = d:\case_i_d90f\ap\ap_music\list\sub_playstatuskey.lst#
# Object file = d:\case_i_d90f\ap\ap_music\obj\sub_playstatuskey.r01#
# ASM file = d:\case_i_d90f\ap\ap_music\list\sub_playstatuskey.s01#
# Command line = -v0 -mb -OD:\case_i_d90f\ap\ap_music\Obj\ -e -K -w #
# -gA -z9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d90f\ap\ap_music\List\ -q -t8 #
# -AD:\case_i_d90f\ap\ap_music\List\ #
# -ND:\case_i_d90f\ap\ap_music\List\ -X #
# -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\ #
# d:\case_i_d90f\AP\AP_MUSIC\sub_playstatuskey.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME sub_playstatuskey(17)
\ 0000 RSEG CODE(0)
\ 0000 EXTERN ChangeMusic
\ 0000 EXTERN ChangeVolume
\ 0000 EXTERN DRV_DetectUD
\ 0000 PUBLIC DealKeyForPlayStatus
\ 0000 EXTERN DealMusicFileEnd
\ 0000 PUBLIC DealPlayKey
\ 0000 PUBLIC Deal_Error_Playing
\ 0000 EXTERN DisplayErrMsg
\ 0000 EXTERN DisplayTimeRollback
\ 0000 PUBLIC ErrReport
\ 0000 EXTERN FadeOut
\ 0000 EXTERN GetBattery
\ 0000 EXTERN GetInformation
\ 0000 EXTERN OutPutVolume
\ 0000 EXTERN PlayStatus
\ 0000 PUBLIC PrevMusicInPlay
\ 0000 EXTERN RePlayStatus
\ 0000 PUBLIC ToNextMusic
\ 0000 EXTERN UpDisplayFlag
\ 0000 EXTERN VMRead
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN ap_message_init
\ 0000 EXTERN fselGetLocation
\ 0000 EXTERN fselGetNextFile
\ 0000 EXTERN fselGetPrevFile
\ 0000 EXTERN fselSetMode
\ 0000 EXTERN g_ABMinTimeCNT
\ 0000 EXTERN g_AVSetFlag
\ 0000 EXTERN g_FCexitflag
\ 0000 EXTERN g_Openparam
\ 0000 EXTERN g_PowerOffFlag
\ 0000 EXTERN g_ReplayTimeCNT
\ 0000 EXTERN g_TagInfoBuf
\ 0000 EXTERN g_TagInfoBuf1
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_lyricflag
\ 0000 EXTERN g_music_vars
\ 0000 EXTERN g_result
\ 0000 EXTERN ifSelBuffToltalTimeFlag
\ 0000 EXTERN main_ResShowPic
\ 0000 EXTERN musicpSendCommand
\ 0000 EXTERN need_draw
\ 0000 PUBLIC play_key_next
\ 0000 PUBLIC play_key_prev
\ 0000 EXTERN return_to_play
\ 0000 EXTERN ui_EQ_menu
\ 0000 EXTERN ui_auto_update
\ 0000 EXTERN ui_follow_compare
\ 0000 EXTERN ui_loop_menu
\ 0000 EXTERN ui_lyric
\ 0000 EXTERN ui_play_menu
\ 0000 EXTERN ui_run_realtime
\ 0000 EXTERN ui_show_batt
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?C_S_SWITCH_L06
\ 0000 EXTERN ?C_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_LEAVE_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?ENT_AUTO_DIRECT_L09
\ 0000 RSEG CODE
\ 0000 DealKeyForPlayStatus:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * This program demostrates how to build an AP
5 *
6 * (c) Copyright Actions Co,Ld.
7 *
8 * $Id: sub_playstatuskey.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
9 *******************************************************************************
10 */
11
12 #include "ap_music.h"
13
14
15 extern bool g_FCexitflag;
16 extern char return_to_play;
17 void ui_show_vol(BYTE volume);
18 void OutPutVolume(int vol);
19 void ErrReport(Play_status_t status);
20 extern bool DisplayTimeRollback(void);
21
22 /*
23 ********************************************************************************
24 * Description : 处理在播放状态下对按键的判断处理(因为ui_play.c空间太紧张了)
25 *
26 * input : 键值 key
27 *
28 * output: 返回值 == 0: 正常返回
29 * != 0: 不是正常返回(如热键)
30 * Notes :
31 ********************************************************************************
32 */
33
34 int DealKeyForPlayStatus(char key)
35 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 F4FF DEFW 65524
\ 0005 FDE5 PUSH IY
36
37 int g_result_bak;
38 music_play_status_t status_buf;
39 switch (key)
\ 0007 DD5E02 LD E,(IX+2)
\ 000A CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 000D 0E00 DEFW 14
\ 000F 02 DEFB 2
\ 0010 03 DEFB 3
\ 0011 04 DEFB 4
\ 0012 12 DEFB 18
\ 0013 1B DEFB 27
\ 0014 1D DEFB 29
\ 0015 21 DEFB 33
\ 0016 25 DEFB 37
\ 0017 26 DEFB 38
\ 0018 30 DEFB 48
\ 0019 31 DEFB 49
\ 001A 85 DEFB 133
\ 001B 86 DEFB 134
\ 001C 90 DEFB 144
\ 001D 5D02 DEFW ?0066
\ 001F AE01 DEFW ?0047
\ 0021 3B00 DEFW ?0004
\ 0023 5600 DEFW ?0007
\ 0025 F400 DEFW ?0029
\ 0027 0201 DEFW ?0033
\ 0029 F000 DEFW ?0028
\ 002B DB00 DEFW ?0024
\ 002D 0402 DEFW ?0054
\ 002F 8A02 DEFW ?0002
\ 0031 4502 DEFW ?0065
\ 0033 7100 DEFW ?0010
\ 0035 0E02 DEFW ?0055
\ 0037 0E02 DEFW ?0055
\ 0039 9D00 DEFW ?0017
\ 003B ?0003:
40 {
41 case AP_MSG_STANDBY:
42 break;
\ 003B ?0004:
43
44 case AP_KEY_NEXT | AP_KEY_LONG: //快进
45
46 ui_run_realtime=TRUE;
\ 003B 3E01 LD A,1
\ 003D 320000 LD (ui_run_realtime),A
47 //if (g_music_vars.location.disk == 'C')
48 {
49 //只有在"C"盘时才能快进退
50 if (RePlayStatus == NormalPlay)
\ 0040 3A0000 LD A,(RePlayStatus)
\ 0043 B7 OR A
\ 0044 200D JR NZ,?0006
\ 0046 ?0005:
51 {
52 PlayStatus = FFPlaySta;
\ 0046 3E03 LD A,3
\ 0048 320000 LD (PlayStatus),A
53 musicpSendCommand(MC_STEP, 4);
\ 004B 010400 LD BC,4
\ 004E 1E07 LD E,7
\ 0050 CDB802 CALL LWRD ?0221
\ 0053 ?0006:
54 }
55 }
56 break;
\ 0053 C38A02 JP LWRD ?0002
\ 0056 ?0007:
57
58 case AP_KEY_PREV | AP_KEY_LONG: //快退
59 ui_run_realtime=TRUE;
\ 0056 3E01 LD A,1
\ 0058 320000 LD (ui_run_realtime),A
60 //if (g_music_vars.location.disk == 'C')
61 {
62 //只有在"C"盘时才能快进退
63 if (RePlayStatus == NormalPlay)
\ 005B 3A0000 LD A,(RePlayStatus)
\ 005E B7 OR A
\ 005F 200D JR NZ,?0009
\ 0061 ?0008:
64 {
65 PlayStatus = FBPlaySta;
\ 0061 3E04 LD A,4
\ 0063 320000 LD (PlayStatus),A
66 musicpSendCommand(MC_STEP, -4);
\ 0066 01FCFF LD BC,65532
\ 0069 1E07 LD E,7
\ 006B CDB802 CALL LWRD ?0221
\ 006E ?0009:
67 }
68
69 }
70 break;
\ 006E C38A02 JP LWRD ?0002
\ 0071 ?0010:
71
72 case AP_KEY_EQ:
73 if (RePlayStatus == NormalPlay)
\ 0071 3A0000 LD A,(RePlayStatus)
\ 0074 B7 OR A
\ 0075 2023 JR NZ,?0012
\ 0077 ?0011:
74 {
75 g_result = ui_EQ_menu();
\ 0077 3E00 LD A,BYTE3 ui_EQ_menu
\ 0079 210000 LD HL,LWRD ui_EQ_menu
\ 007C CDC002 CALL LWRD ?0225
76
77 if (g_result == RESULT_RECORD )//响应AB键
\ 007F 282C JR Z,?0163
\ 0081 ?0013:
78 {
79 SetFullInterface();
80 return play_key_next(AP_KEY_AB | AP_KEY_UP);
81 }
\ 0081 ?0014:
82 else
83 {
84 if (g_result != 0)
\ 0081 7D LD A,L
\ 0082 B4 OR H
\ 0083 203C JR NZ,?0165
\ 0085 ?0015:
85 {
86 return g_result;
87 }
\ 0085 ?0016:
88 }
89
90 SetFullInterface();
\ 0085 320000 LD (ui_auto_update),A
\ 0088 210000 LD HL,UpDisplayFlag
\ 008B 7E LD A,(HL)
\ 008C F6C1 OR 193
\ 008E 77 LD (HL),A
\ 008F 23 INC HL
\ 0090 36FF LD (HL),255
91 return_to_play = 1;
\ 0092 3E01 LD A,1
\ 0094 320000 LD (return_to_play),A
92 need_draw = TRUE;
\ 0097 320000 LD (need_draw),A
\ 009A ?0012:
93 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -