📄 ui_play.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:01:02 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_music\ui_play.c #
# List file = d:\case_i_d90f\ap\ap_music\list\ui_play.lst #
# Object file = d:\case_i_d90f\ap\ap_music\obj\ui_play.r01 #
# ASM file = d:\case_i_d90f\ap\ap_music\list\ui_play.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\ui_play.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_play(17)
\ 0000 RSEG AP_UI_PLY(0)
\ 0000 PUBLIC BackupCurrentTime
\ 0000 EXTERN CaltimeFlag
\ 0000 PUBLIC DealForABGap
\ 0000 EXTERN DealKeyForPlayStatus
\ 0000 EXTERN DealMusicFileEnd
\ 0000 EXTERN Deal_Error_Playing
\ 0000 EXTERN DisInFBHead
\ 0000 PUBLIC FadeOut
\ 0000 EXTERN GetBattery
\ 0000 EXTERN PlayStatus
\ 0000 EXTERN RePlayStatus
\ 0000 PUBLIC RealDisplay
\ 0000 EXTERN RefreshMainScreen
\ 0000 EXTERN Scroll
\ 0000 EXTERN SelectCurMusic
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetPenColor
\ 0000 PUBLIC ShowNowTime
\ 0000 PUBLIC Show_Bitrate
\ 0000 EXTERN TimeRateData_sav
\ 0000 EXTERN UpDisplayFlag
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN apepSendCommand
\ 0000 EXTERN g_2HZFlag
\ 0000 EXTERN g_2HZ_CNT
\ 0000 EXTERN g_ABMinTimeCNT
\ 0000 EXTERN g_AVSetFlag
\ 0000 EXTERN g_FCexitflag
\ 0000 EXTERN g_FadeInStepFlag
\ 0000 EXTERN g_OldSecTempBackup
\ 0000 EXTERN g_ReplayTimeCNT
\ 0000 EXTERN g_ScrollFlag
\ 0000 EXTERN g_TagInfoBuf
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_currentMusicType
\ 0000 EXTERN g_introCNT
\ 0000 EXTERN g_introCntMode
\ 0000 EXTERN g_music_vars
\ 0000 EXTERN g_result
\ 0000 EXTERN ifSelBuffToltalTimeFlag
\ 0000 EXTERN itoa_1
\ 0000 EXTERN itoa_2
\ 0000 EXTERN main_ResShowPic
\ 0000 EXTERN mp3pSendCommand
\ 0000 PUBLIC musicpSendCommand
\ 0000 EXTERN musicpSendCommand_bank
\ 0000 EXTERN need_draw
\ 0000 EXTERN oggpSendCommand
\ 0000 EXTERN return_to_play
\ 0000 EXTERN savenum
\ 0000 EXTERN temp_buffer
\ 0000 EXTERN ui_auto_update
\ 0000 PUBLIC ui_play
\ 0000 EXTERN ui_show_batt
\ 0000 EXTERN ui_show_d
\ 0000 EXTERN wmapSendCommand
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?S_MUL_L02
\ 0000 EXTERN ?SS_CMP_L02
\ 0000 EXTERN ?L_MUL_L03
\ 0000 EXTERN ?SL_DIV_L03
\ 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_PARM_DIRECT_L09
\ 0000 EXTERN ?ENT_AUTO_DIRECT_L09
\ 0000 RSEG AP_UI_PLY
\ 0000 ui_play:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * voice player stop program.
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * $Id: ui_play.c,v 1.2 2006/06/26 01:14:24 tangwh Exp $
10 *******************************************************************************
11 */
12 #include "ap_music.h"
13
14 #define IntCntValDef 10
15 extern bool g_FCexitflag;
16 extern char return_to_play;
17
18 //char test_play;
19 void ErrReport(Play_status_t status);
20
21 #pragma codeseg(AP_UI_PLY)
22
23 #pragma memory=constseg(APC_UI_PLY)
24
25
26 #pragma memory=default
27
28 extern struct TimeRateData_sav;
29 extern BYTE Bitrate_sav [];
30 extern BYTE g_OldSecTempBackup;
31 extern BYTE g_introCNT;
32
33 extern const char mychar [];
34
35 extern bool g_introCntMode; //是从头开始还是从中途开始,TRUE 为从头开始
36
37 void FadeOut( bool DisMod );
38
39
40 int main_ResShowPic( WORD id, uchar x, uchar y );
41
42 int DealKeyForPlayStatus( char key);
43 void DisInFBHead(char DisMod);//快退到头显示
44 int DealForDRMsong(void);
45 extern void Deal_Error_Playing(void);
46
47 /*
48 ********************************************************************************
49 * int ui_play( void )
50 *
51 * Description : 显示时间,滚屏,AB闪
52 *
53 * Arguments : void
54 *
55 * Returns : void
56 *
57 * Notes :
58 *
59 ********************************************************************************
60 */
61 int ui_play( void )
62 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 F6FF DEFW 65526
63 //int key;
64 char key;
65 BYTE result;
66 //int i;
67 music_play_status_t status_buf;
68 PlayStatus = PlaySta;
\ 0005 3E02 LD A,2
\ 0007 320000 LD (PlayStatus),A
69 RePlayStatus = NormalPlay;/* 播放状态 */
\ 000A AF XOR A
\ 000B 320000 LD (RePlayStatus),A
70 need_draw = TRUE;/* 需要画screen */
\ 000E 3E01 LD A,1
\ 0010 320000 LD (need_draw),A
71 SetStopToPlayInterface();
\ 0013 AF XOR A
\ 0014 320000 LD (ui_auto_update),A
\ 0017 210000 LD HL,UpDisplayFlag
\ 001A CBFE SET 7,(HL)
\ 001C 23 INC HL
\ 001D 7E LD A,(HL)
\ 001E F6FC OR 252
\ 0020 77 LD (HL),A
72 g_FadeInStepFlag = FALSE;
\ 0021 AF XOR A
\ 0022 320000 LD (g_FadeInStepFlag),A
\ 0025 ?0003:
73
74 while (1)
75 {
76 if (need_draw)
\ 0025 3A0000 LD A,(need_draw)
\ 0028 B7 OR A
\ 0029 280C JR Z,?0006
\ 002B ?0005:
77 {
78 RefreshMainScreen();
\ 002B 3E00 LD A,BYTE3 RefreshMainScreen
\ 002D 210000 LD HL,LWRD RefreshMainScreen
\ 0030 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
79 need_draw = FALSE;
\ 0033 AF XOR A
\ 0034 320000 LD (need_draw),A
\ 0037 ?0006:
\ 0037 ?0009:
80 }
81 do
82 {
83 // output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
84 key = ap_get_message(); //读键值
\ 0037 CD0000 CALL LWRD ap_get_message
\ 003A DD77F6 LD (IX-10),A
85 //这里是处理快退大文件时可能丢掉KEYUP键的问题
86 }while(((PlayStatus == FFPlaySta) || (PlayStatus == FBPlaySta))
87 &&(key!=0)
88 &&(key!=(AP_KEY_PREV | AP_KEY_UP))
89 &&(key!=(AP_KEY_NEXT | AP_KEY_UP)));
\ 003D 3A0000 LD A,(PlayStatus)
\ 0040 FE03 CP 3
\ 0042 2804 JR Z,?0010
\ 0044 FE04 CP 4
\ 0046 200E JR NZ,?0007
\ 0048 ?0010:
\ 0048 ?0011:
\ 0048 AF XOR A
\ 0049 DDB6F6 OR (IX-10)
\ 004C 2808 JR Z,?0007
\ 004E FE25 CP 37
\ 0050 2804 JR Z,?0007
\ 0052 FE26 CP 38
\ 0054 20E1 JR NZ,?0006
\ 0056 ?0007:
90 switch (key)
\ 0056 DD5EF6 LD E,(IX-10)
\ 0059 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 005C 0700 DEFW 7
\ 005E 00 DEFB 0
\ 005F 01 DEFB 1
\ 0060 05 DEFB 5
\ 0061 06 DEFB 6
\ 0062 1C DEFB 28
\ 0063 1E DEFB 30
\ 0064 80 DEFB 128
\ 0065 9C00 DEFW ?0022
\ 0067 7500 DEFW ?0015
\ 0069 7500 DEFW ?0015
\ 006B 7500 DEFW ?0015
\ 006D 7500 DEFW ?0015
\ 006F 7500 DEFW ?0015
\ 0071 7500 DEFW ?0015
\ 0073 B400 DEFW ?0014
\ 0075 ?0015:
91 {
92 case MSG_RTC2HZ://rtc
93 case AP_MSG_RTC:
94 // case MSG_BAT_V_CHG://charging & rtc
95 case AP_MSG_WAIT_TIMEOUT:
96 case AP_KEY_PLAY://当按下PLAY键时先不处理,可减少停止时的杂音
97 case AP_KEY_NEXT://当按下NEXT键时先不处理,可减少选下一首时的杂音
98 case AP_KEY_PREV://当按下PREV键时先不处理,可减少选上一首时的杂音
99
100 // FlashMotived(PowerValue);
101
102 key = ap_handle_hotkey(key);
\ 0075 CD0000 CALL LWRD ap_handle_hotkey
\ 0078 DD77F6 LD (IX-10),A
103 if (key == RESULT_REDRAW)
\ 007B FE32 CP 50
\ 007D 2015 JR NZ,?0017
\ 007F ?0016:
104 {
105 SetFullInterface();
\ 007F AF XOR A
\ 0080 320000 LD (ui_auto_update),A
\ 0083 210000 LD HL,UpDisplayFlag
\ 0086 7E LD A,(HL)
\ 0087 F6C1 OR 193
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -