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 + -
显示快捷键?