ui_followcompare.lst
来自「MP3 整个 SDK」· LST 代码 · 共 651 行 · 第 1/3 页
LST
651 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:00:58 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_music\ui_followcompare.c #
# List file = d:\case_i_d90f\ap\ap_music\list\ui_followcompare.lst#
# Object file = d:\case_i_d90f\ap\ap_music\obj\ui_followcompare.r01 #
# ASM file = d:\case_i_d90f\ap\ap_music\list\ui_followcompare.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_followcompare.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_followcompare(17)
\ 0000 RSEG AP_UI_FC(0)
\ 0000 RSEG UDATA0(0)
\ 0000 RSEG APC_UI_FC(0)
\ 0000 PUBLIC ABPointTimeSize
\ 0000 PUBLIC DealForExitRec
\ 0000 PUBLIC NUM_PIC1
\ 0000 PUBLIC OpenMusic
\ 0000 EXTERN RePlayStatus
\ 0000 PUBLIC Replaytimes_CNT
\ 0000 PUBLIC ReturnNotInit
\ 0000 PUBLIC Show_time_FC
\ 0000 PUBLIC TimeRateData_sav
\ 0000 EXTERN UpDisplayFlag
\ 0000 EXTERN g_ABPointTimeSize
\ 0000 EXTERN g_Openparam
\ 0000 EXTERN g_music_vars
\ 0000 EXTERN ifSelBuffToltalTimeFlag
\ 0000 EXTERN itoa_1
\ 0000 EXTERN itoa_2
\ 0000 EXTERN musicpSendCommand
\ 0000 EXTERN temp_buffer
\ 0000 EXTERN ui_compareAB
\ 0000 EXTERN ui_comparePlay
\ 0000 EXTERN ui_followAB
\ 0000 EXTERN ui_followRec
\ 0000 PUBLIC ui_follow_compare
\ 0000 EXTERN ui_run_realtime
\ 0000 EXTERN ui_show_d
\ 0000 EXTERN wavpSendCommand
\ 0000 EXTERN wavrProceed
\ 0000 EXTERN wavrSendCommand
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?US_DIV_L02
\ 0000 EXTERN ?C_S_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 AP_UI_FC
\ 0000 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 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 F4FF DEFW 65524
\ 0005 FDE5 PUSH IY
60 int result;
61
62 {
63 mp3_play_status_t status_buf;
64 WORD i;
65 i = g_ABPointTimeSize/10; //长 10%
\ 0007 010A00 LD BC,10
\ 000A ED5B0000 LD DE,(g_ABPointTimeSize)
\ 000E CD0000 CALL LWRD ?US_DIV_L02
\ 0011 DD73FE LD (IX-2),E
\ 0014 DD72FF LD (IX-1),D
66 if (i < 2)
\ 0017 0E02 LD C,2
\ 0019 EB EX DE,HL
\ 001A A7 AND A
\ 001B ED42 SBC HL,BC
\ 001D 3006 JR NC,?0003
\ 001F ?0002:
67 {
68 i = 2;
\ 001F DD71FE LD (IX-2),C
\ 0022 DD70FF LD (IX-1),B
\ 0025 ?0003:
69 }
70 ABPointTimeSize = g_ABPointTimeSize +2 + i;//2为经验补尝值
\ 0025 DD6EFE LD L,(IX-2)
\ 0028 DD66FF LD H,(IX-1)
\ 002B ED4B0000 LD BC,(g_ABPointTimeSize)
\ 002F 09 ADD HL,BC
\ 0030 23 INC HL
\ 0031 23 INC HL
\ 0032 220800 LD (ABPointTimeSize),HL
71
72 musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
\ 0035 210400 LD HL,4
\ 0038 39 ADD HL,SP
\ 0039 4D LD C,L
\ 003A 44 LD B,H
\ 003B 1E83 LD E,131
\ 003D CDE200 CALL LWRD ?0056
73 //保存用于跟读对比显示
74 TimeRateData_sav.TotalTime_sav[0] = status_buf.total_time.hour;
\ 0040 DD7EF9 LD A,(IX-7)
\ 0043 320500 LD (TimeRateData_sav+3),A
75 TimeRateData_sav.TotalTime_sav[1] = status_buf.total_time.minute;
\ 0046 DD7EFA LD A,(IX-6)
\ 0049 320600 LD (TimeRateData_sav+4),A
76 TimeRateData_sav.TotalTime_sav[2] = status_buf.total_time.second;
\ 004C DD7EFB LD A,(IX-5)
\ 004F 320700 LD (TimeRateData_sav+5),A
77 ifSelBuffToltalTimeFlag=TRUE;
\ 0052 3E01 LD A,1
\ 0054 320000 LD (ifSelBuffToltalTimeFlag),A
78 }
79
80 ReturnNotInit = FALSE; //下次需要初始化
\ 0057 AF XOR A
\ 0058 320000 LD (ReturnNotInit),A
81 Replaytimes_CNT = 0;
\ 005B 320100 LD (Replaytimes_CNT),A
82
83 musicpSendCommand(MC_STOP, 1);//1表示MP3 退出时备份的是A点时间
\ 005E 010100 LD BC,1
\ 0061 1E06 LD E,6
\ 0063 CDE200 CALL LWRD ?0056
84 musicpSendCommand(MC_BACKUP, (int)& g_music_vars.BreakPTSave);
\ 0066 013000 LD BC,g_music_vars+48
\ 0069 1E44 LD E,68
\ 006B CDD600 CALL LWRD ?0055
85 musicpSendCommand(MC_CLOSE, NULL);
\ 006E 1E02 LD E,2
\ 0070 CDE200 CALL LWRD ?0056
86
87 RePlayStatus = FollowRec;
\ 0073 3E04 LD A,4
\ 0075 320000 LD (RePlayStatus),A
\ 0078 ?0005:
88
89 //UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
90 while (1)
91 {
92 switch (RePlayStatus)//状态处理
\ 0078 ED5B0000 LD DE,(RePlayStatus)
\ 007C CD0000 CALL LWRD ?C_S_SWITCH_L06
\ 007F 00 DEFB 0
\ 0080 0800 DEFW 8
\ 0082 7800 DEFW ?0005
\ 0084 9400 DEFW ?0008
\ 0086 9400 DEFW ?0008
\ 0088 7800 DEFW ?0005
\ 008A CE00 DEFW ?0021
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?