📄 ui_lyric.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:57:35 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_music\ui_lyric.c #
# List file = d:\case_i_d913f\ap\ap_music\list\ui_lyric.lst #
# Object file = d:\case_i_d913f\ap\ap_music\obj\ui_lyric.r01 #
# ASM file = d:\case_i_d913f\ap\ap_music\list\ui_lyric.s01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_music\Obj\ -e -K #
# -w -gA -z9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d913f\ap\ap_music\List\ -q -t8 #
# -AD:\case_i_d913f\ap\ap_music\List\ #
# -ND:\case_i_d913f\ap\ap_music\List\ -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# d:\case_i_d913f\AP\AP_MUSIC\ui_lyric.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_lyric(17)
\ 0000 RSEG AP_UIA_LRC(0)
\ 0000 RSEG APD_UI_LRC(0)
\ 0000 RSEG APD_UIA_LRC(0)
\ 0000 EXTERN BackupCurrentTime
\ 0000 EXTERN DealMusicFileEnd
\ 0000 EXTERN DisInFBHead
\ 0000 EXTERN DisplayErrMsg
\ 0000 PUBLIC DisplayLyricStr
\ 0000 EXTERN FadeOut
\ 0000 PUBLIC GetNowTime
\ 0000 PUBLIC LyricStrBuf
\ 0000 EXTERN PlayStatus
\ 0000 EXTERN PrevMusicInPlay
\ 0000 EXTERN PutS
\ 0000 PUBLIC RT_buf
\ 0000 EXTERN RefreshMainScreen
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SelectCurMusic
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextPos
\ 0000 EXTERN ToNextMusic
\ 0000 EXTERN UpDisplayFlag
\ 0000 EXTERN VMRead
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN ap_message_init
\ 0000 EXTERN g_2HZ_CNT
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_lyricflag
\ 0000 EXTERN g_music_vars
\ 0000 EXTERN g_result
\ 0000 EXTERN lyricGetNext
\ 0000 EXTERN lyricGetPrev
\ 0000 EXTERN lyricQueryOutof
\ 0000 EXTERN lyricSeekFor
\ 0000 EXTERN musicpSendCommand
\ 0000 EXTERN need_draw
\ 0000 EXTERN ui_auto_update
\ 0000 PUBLIC ui_lyric
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?S_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_UIA_LRC
\ 0000 GetNowTime:
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_lyric.c,v 1.2 2006/06/26 01:14:24 tangwh Exp $
10 *******************************************************************************
11 */
12
13 #pragma codeseg(AP_UIA_LRC)
14 #include "ap_music.h"
15
16 #define ExproTimeDef 5//浏览的延时值
17
18 #pragma memory=dataseg(APD_UI_LRC)
19 char LyricStrBuf[88]; //
20 #pragma memory=default
21
22
23 #pragma memory=dataseg(APD_UIA_LRC)
24
25
26 BYTE RT_buf[4]; //当前时间
27
28 #pragma memory=default
29
30 #pragma memory=constseg(APC_UIA_LRC)
31 #pragma memory=default
32
33 void DisInFBHead(char DisMod);
34
35
36 void GetNowTime( void )
37 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 FAFF DEFW 65530
38 Full_time_t curtime_buf;
39
40 BYTE temp;
41
42 if (!musicpSendCommand(MC_GETTIME, (int)& curtime_buf))
\ 0005 210000 LD HL,0
\ 0008 39 ADD HL,SP
\ 0009 4D LD C,L
\ 000A 44 LD B,H
\ 000B 1E80 LD E,128
\ 000D CD4900 CALL LWRD ?0103
\ 0010 2C INC L
\ 0011 2D DEC L
\ 0012 200C JR NZ,?0003
\ 0014 ?0002:
43 {
44 *(long *)RT_buf = 0;
\ 0014 4D LD C,L
\ 0015 45 LD B,L
\ 0016 ED430000 LD (RT_buf),BC
\ 001A ED430200 LD (RT_buf+2),BC
45 return;
46 }
\ 001E 1823 JR ?0004
\ 0020 ?0003:
47 //以下三句是把时间分,秒,毫秒合成LONG形与表中数据进行比较(只比较大小)
48 * (WORD* )RT_buf = curtime_buf.TimeMs;
\ 0020 DD6EFA LD L,(IX-6)
\ 0023 DD66FB LD H,(IX-5)
\ 0026 220000 LD (RT_buf),HL
49 //由于原来的MS不是按WORD方式送出的,所以这里要倒一下
50 temp = RT_buf[0];
\ 0029 3A0000 LD A,(RT_buf)
\ 002C 5F LD E,A
51 RT_buf[0] = RT_buf[1];
\ 002D 3A0100 LD A,(RT_buf+1)
\ 0030 320000 LD (RT_buf),A
52 RT_buf[1] = temp;
\ 0033 7B LD A,E
\ 0034 320100 LD (RT_buf+1),A
53
54 //时间格式|MIN|SEC|MS_L|MS_H| //取出实时时间表
55 RT_buf[2] = curtime_buf.TimeSecond;
\ 0037 DD7EFC LD A,(IX-4)
\ 003A 320200 LD (RT_buf+2),A
56 RT_buf[3] = curtime_buf.TimeMinute;
\ 003D DD7EFD LD A,(IX-3)
\ 0040 320300 LD (RT_buf+3),A
57 return;
58 }
\ 0043 ?0004:
\ 0043 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0046 ?0105:
\ 0046 48 LD C,B
\ 0047 ?0104:
\ 0047 1E07 LD E,7
\ 0049 ?0103:
\ 0049 3E00 LD A,BYTE3 musicpSendCommand
\ 004B 210000 LD HL,LWRD musicpSendCommand
\ 004E C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0051 DisplayLyricStr:
59
60
61 void DisplayLyricStr( char * str ) //显示驱自动换行
62 {
\ 0051 CD0000 CALL LWRD ?ENT_PARM_DIRECT_L09
63 ResShowPic(MLRCBCK,0,0);
\ 0054 0E00 LD C,0
\ 0056 C5 PUSH BC
\ 0057 11CE00 LD DE,206
\ 005A 3E00 LD A,BYTE3 ResShowPic
\ 005C 210000 LD HL,LWRD ResShowPic
\ 005F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0062 F1 POP AF
64 ///-SetTextOutMode(0x0f);
65 /*
66 SetTextPos(42, 14);
67 SetPenColor(Color_WHITE_def);
68 PutS(g_TagInfoBuf, -1);
69 */
70 SetTextPos(POSITION_LRCMID, POSITIONY_LRCMID);
\ 0063 0E31 LD C,49
\ 0065 1E05 LD E,5
\ 0067 CD0000 CALL LWRD SetTextPos
71 SetPenColor(Color_BULE1_def);
\ 006A 010000 LD BC,0
\ 006D 113E75 LD DE,30014
\ 0070 CD0000 CALL LWRD SetPenColor
72 PutS(str, -1);
\ 0073 0EFF LD C,255
\ 0075 DD5E02 LD E,(IX+2)
\ 0078 DD5603 LD D,(IX+3)
\ 007B CD0000 CALL LWRD PutS
73
74 SetPenColor(0x00008410);
\ 007E 010000 LD BC,0
\ 0081 111084 LD DE,33808
\ 0084 CD0000 CALL LWRD SetPenColor
75 if(lyricGetPrev(LyricStrBuf, sizeof(LyricStrBuf)))//前一句
\ 0087 CDD300 CALL LWRD ?0107
\ 008A 280D JR Z,?0006
\ 008C ?0005:
76 {
77 SetTextPos(POSITION_LRCTOP, POSITIONY_LRCTOP);
\ 008C 0E0A LD C,10
\ 008E CDC000 CALL LWRD ?0106
78 PutS(LyricStrBuf, -1);
79 lyricGetNext(LyricStrBuf, sizeof(LyricStrBuf));
\ 0091 3E00 LD A,BYTE3 lyricGetNext
\ 0093 210000 LD HL,LWRD lyricGetNext
\ 0096 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0099 ?0006:
80 }
81 if(lyricGetNext(LyricStrBuf, sizeof(LyricStrBuf)))//后一句
\ 0099 0E58 LD C,88
\ 009B 110000 LD DE,LyricStrBuf
\ 009E 3E00 LD A,BYTE3 lyricGetNext
\ 00A0 210000 LD HL,LWRD lyricGetNext
\ 00A3 CDDD00 CALL LWRD ?0108
\ 00A6 280D JR Z,?0008
\ 00A8 ?0007:
82 {
83 SetTextPos(POSITION_LRCBOT, POSITIONY_LRCBOT);
\ 00A8 0E56 LD C,86
\ 00AA CDC000 CALL LWRD ?0106
84 PutS(LyricStrBuf, -1);
85 lyricGetPrev(LyricStrBuf, sizeof(LyricStrBuf));
\ 00AD 3E00 LD A,BYTE3 lyricGetPrev
\ 00AF 210000 LD HL,LWRD lyricGetPrev
\ 00B2 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00B5 ?0008:
86 }
87 ///-SetTextOutMode(NOCLARITY);
88
89 SetPenColor(Color_BLACK_def);
\ 00B5 010000 LD BC,0
\ 00B8 59 LD E,C
\ 00B9 50 LD D,B
\ 00BA CD0000 CALL LWRD SetPenColor
90 }
\ 00BD C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 00C0 ?0106:
\ 00C0 1E05 LD E,5
\ 00C2 CD0000 CALL LWRD SetTextPos
\ 00C5 0EFF LD C,255
\ 00C7 110000 LD DE,LyricStrBuf
\ 00CA CD0000 CALL LWRD PutS
\ 00CD 0E58 LD C,88
\ 00CF 110000 LD DE,LyricStrBuf
\ 00D2 C9 RET
\ 00D3 ?0107:
\ 00D3 0E58 LD C,88
\ 00D5 110000 LD DE,LyricStrBuf
\ 00D8 3E00 LD A,BYTE3 lyricGetPrev
\ 00DA 210000 LD HL,LWRD lyricGetPrev
\ 00DD ?0108:
\ 00DD CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00E0 2C INC L
\ 00E1 2D DEC L
\ 00E2 C9 RET
\ 00E3 ui_lyric:
91
92
93 int ui_lyric( void )
94 {
\ 00E3 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 00E6 F4FF DEFW 65524
95 int key;
96
97 bool KeyUpFlag = FALSE;
98 //lyric_t *LRCTimeTabPT;
99 bool ExproFlag = FALSE; //true: 在浏览模式
100
101 wma_play_status_t status_buf;
102
103 //先刷屏
104 //关闭背光时间
105 VMRead(& g_comval, VM_SYSTEM, sizeof(g_comval));
\ 00E8 212000 LD HL,32
\ 00EB E5 PUSH HL
\ 00EC 010002 LD BC,512
\ 00EF 110000 LD DE,g_comval
\ 00F2 CD0000 CALL LWRD VMRead
\ 00F5 E1 POP HL
106 g_comval.LightTime = 0;
\ 00F6 AF XOR A
\ 00F7 320900 LD (g_comval+9),A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -