⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 show_stop.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 4 页
字号:
     85          /*
     86          ********************************************************************************
     87          * Description : 计算当前目录下的总录音文件个数
     88          *
     89          * Arguments   :
     90          *
     91          * Returns     : 全局变量
     92                  g_file_num, 总录音文件个数
     93          *
     94          * Notes       :
     95          *
     96          ********************************************************************************
     97          */
     98          void parse_total_num(void)
     99          {
   \   00F0  C5                PUSH    BC
   \   00F1  D5                PUSH    DE
   \   00F2  21F4FF            LD      HL,65524
   \   00F5  39                ADD     HL,SP
   \   00F6  F9                LD      SP,HL
    100              char name[12];
    101          
    102              g_file_num = 0;
   \   00F7  AF                XOR     A
   \   00F8  320000            LD      (g_file_num),A
    103              
    104                  if(FS_Dir(name,  voice_ext[0], FS_DIR_FILE))
   \   00FB  0E80              LD      C,128
   \   00FD  C5                PUSH    BC
   \   00FE  010800            LD      BC,voice_ext
   \   0101  EB                EX      DE,HL
   \   0102  CD0000            CALL    LWRD FS_Dir
   \   0105  E1                POP     HL
   \   0106  B7                OR      A
   \   0107  2822              JR      Z,?0012
   \   0109            ?0010:
    105                  {
    106                      g_file_num++;
   \   0109  210000            LD      HL,g_file_num
   \   010C  34                INC     (HL)
   \   010D            ?0013:
    107                  
    108                      while( FS_Dir(name, voice_ext[0], FS_DIR_FILE_CONT))
   \   010D  0E00              LD      C,0
   \   010F  C5                PUSH    BC
   \   0110  010800            LD      BC,voice_ext
   \   0113  210200            LD      HL,2
   \   0116  39                ADD     HL,SP
   \   0117  EB                EX      DE,HL
   \   0118  CD0000            CALL    LWRD FS_Dir
   \   011B  E1                POP     HL
   \   011C  B7                OR      A
   \   011D  280C              JR      Z,?0012
   \   011F            ?0014:
    109                      {
    110                              g_file_num++;
   \   011F  210000            LD      HL,g_file_num
   \   0122  34                INC     (HL)
    111                              CLEAR_WATCHDOG();
   \   0123  DB4E              IN      A,(78)
   \   0125  CBDF              SET     3,A
   \   0127  D34E              OUT     (78),A
    112                      }
    113                  }
   \   0129  18E2              JR      ?0013
   \   012B            ?0012:
   \   012B            ?0011:
    114              
    115          }
   \   012B  210C00            LD      HL,12
   \   012E  39                ADD     HL,SP
   \   012F  F9                LD      SP,HL
   \   0130  D1                POP     DE
   \   0131  C1                POP     BC
   \   0132  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0135            format_filename:
    116          /*
    117          ********************************************************************************
    118          * Description : 格式化文件名
    119          *
    120          * Arguments   : 全局变量
    121                  g_record_vars.rec_type
    122          *
    123          * Returns     : 全局变量
    124                  g_record_vars.location.filename
    125          *
    126          * Notes       : RECxx.WAV or RECxx.ACT
    127          *
    128          ********************************************************************************
    129          */
    130          void format_filename(void)
    131          {
   \   0135  C5                PUSH    BC
   \   0136  D5                PUSH    DE
    132              //date_t date;
    133              
    134              strcpy(g_record_vars.location.filename, "REC");
   \   0137  110000            LD      DE,?0015
   \   013A  212400            LD      HL,g_record_vars+36
   \   013D  CD0000            CALL    LWRD ?STRCPY_L11
    135                  //REC000.WAV
    136                  itoa_3(g_record_vars.wav_num, &g_record_vars.location.filename[3]);
   \   0140  012700            LD      BC,g_record_vars+39
   \   0143  ED5B0600          LD      DE,(g_record_vars+6)
   \   0147  3E00              LD      A,BYTE3 itoa_3
   \   0149  210000            LD      HL,LWRD itoa_3
   \   014C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    137                  strcat(g_record_vars.location.filename, "  WAV");
   \   014F  110400            LD      DE,?0016
   \   0152  212400            LD      HL,g_record_vars+36
   \   0155  CD0000            CALL    LWRD ?STRCAT_L11
    138           
    139          }
   \   0158  D1                POP     DE
   \   0159  C1                POP     BC
   \   015A  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   015D            gen_filename:
    140          /*
    141          ********************************************************************************
    142          * Description : 生成新的录音文件名
    143          *
    144          * Arguments   : 全局变量
    145                  g_record_vars.rec_type
    146          *
    147          * Returns     : TRUE, 成功
    148                  FALSE, 编号01~99 文件都存在
    149                  全局变量
    150                  g_record_vars.location
    151                  g_record_vars.wav_num
    152                  g_file_name_time[], 文件名,文件时间字符串
    153          *
    154          * Notes       :
    155          *
    156          ********************************************************************************
    157          */
    158          BOOL gen_filename(void)
    159          {
   \   015D  C5                PUSH    BC
   \   015E  D5                PUSH    DE
   \   015F  DDE5              PUSH    IX
   \   0161  F5                PUSH    AF
   \   0162  F5                PUSH    AF
    160              date_t date;
    161              
    162              int num = GenNewName(&g_record_vars.location);
   \   0163  110A00            LD      DE,g_record_vars+10
   \   0166  3E00              LD      A,BYTE3 GenNewName
   \   0168  210000            LD      HL,LWRD GenNewName
   \   016B  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    163          
    164              //check 01~99 full
    165              if(num == 0) return FALSE;
   \   016E  7D                LD      A,L
   \   016F  B4                OR      H
   \   0170  2003              JR      NZ,?0018
   \   0172            ?0017:
   \   0172  6F                LD      L,A
   \   0173  1853              JR      ?0020
   \   0175            ?0018:
    166                 g_record_vars.wav_num = num;
   \   0175  220600            LD      (g_record_vars+6),HL
    167              
    168              //build g_file_name_time for display
    169              memcpy(g_file_name_time, g_record_vars.location.filename, sizeof("REC00"));
   \   0178  010600            LD      BC,6
   \   017B  110000            LD      DE,g_file_name_time
   \   017E  212400            LD      HL,g_record_vars+36
   \   0181  EDB0              LDIR
    170              TM_GetDate(&date, 0);
   \   0183  69                LD      L,C
   \   0184  60                LD      H,B
   \   0185  39                ADD     HL,SP
   \   0186  EB                EX      DE,HL
   \   0187  CD0000            CALL    LWRD TM_GetDate
    171              //g_file_build_time[5] = ' ';    //"WAVxx "
    172              itoa_4(date.year, &g_file_build_time[0]);
   \   018A  010000            LD      BC,g_file_build_time
   \   018D  210000            LD      HL,0
   \   0190  39                ADD     HL,SP
   \   0191  5E                LD      E,(HL)
   \   0192  23                INC     HL
   \   0193  56                LD      D,(HL)
   \   0194  3E00              LD      A,BYTE3 itoa_4
   \   0196  210000            LD      HL,LWRD itoa_4
   \   0199  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    173              g_file_build_time[4] = '/';    //"WAVxx 2004/"
   \   019C  3E2F              LD      A,47
   \   019E  320400            LD      (g_file_build_time+4),A
    174              itoa_2(date.month, &g_file_build_time[5]);
   \   01A1  010500            LD      BC,g_file_build_time+5
   \   01A4  210200            LD      HL,2
   \   01A7  39                ADD     HL,SP
   \   01A8  5E                LD      E,(HL)
   \   01A9  3E00              LD      A,BYTE3 itoa_2
   \   01AB  210000            LD      HL,LWRD itoa_2
   \   01AE  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    175              g_file_build_time[7] = '/';    //"WAVxx 2004/01/"
   \   01B1  3E2F              LD      A,47
   \   01B3  320700            LD      (g_file_build_time+7),A
    176              itoa_2(date.day, &g_file_build_time[8]);
   \   01B6  010800            LD      BC,g_file_build_time+8
   \   01B9  210300            LD      HL,3
   \   01BC  39                ADD     HL,SP
   \   01BD  5E                LD      E,(HL)
   \   01BE  3E00              LD      A,BYTE3 itoa_2
   \   01C0  210000            LD      HL,LWRD itoa_2
   \   01C3  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    177              //"WAVxx 2004/01/01"
    178          
    179              return TRUE;
   \   01C6  2E01              LD      L,1
    180          }
   \   01C8            ?0020:
   \   01C8  F1                POP     AF
   \   01C9  F1                POP     AF
   \   01CA  DDE1              POP     IX
   \   01CC  D1                POP     DE
   \   01CD  C1                POP     BC
   \   01CE  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   01D1            show_stop:
    181           
    182          /*
    183          ********************************************************************************
    184          * Description : 停止界面
    185          *
    186          * Arguments   : auto_start, 是否自动开始录音
    187          *
    188          * Returns     :
    189          *
    190          * Notes       :
    191          *
    192          ********************************************************************************
    193          */
    194          int show_stop(BOOL auto_start)
    195          {
   \   01D1  C5                PUSH    BC
   \   01D2  FDE5              PUSH    IY
   \   01D4  DDE5              PUSH    IX
   \   01D6  DD210000          LD      IX,0
   \   01DA  DD39              ADD     IX,SP
   \   01DC  D5                PUSH    DE
   \   01DD  F5                PUSH    AF
   \   01DE  F5                PUSH    AF
   \   01DF  F5                PUSH    AF
    196              int result;
    197              char key;
    198              //int i=0;    //loop counter
    199              BOOL need_draw=TRUE;
    200              BOOL need_parse=TRUE;    //需要分析文件个数,总时间
    201              BYTE rec_bitrate;        //改变前保存旧的
    202              BOOL waiting_keyup=FALSE;    //录音后在等待用户按键抬起
    203              
    204              g_menu_active = TRUE;
   \   01E0  3E01              LD      A,1
   \   01E2  320B00            LD      (g_menu_active),A
    205              
    206              Open_RecRoute(g_rec_from);               //根据当前录音源,打开及设置录音通道
   \   01E5  ED5B0000          LD      DE,(g_rec_from)
   \   01E9  3E00              LD      A,BYTE3 Open_RecRoute
   \   01EB  210000            LD      HL,LWRD Open_RecRoute
   \   01EE  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01F1  DD36FA01          LD      (IX-6),1
   \   01F5  DD36F901          LD      (IX-7),1
   \   01F9            ?0090:
   \   01F9  DD36FB00          LD      (IX-5),0
   \   01FD            ?0022:
    207              
    208              while(1)
    209              {
    210                  //check if need count num & time
    211                  if(need_parse)
   \   01FD  AF                XOR     A
   \   01FE  DDB6F9            OR      (IX-7)
   \   0201  CAF102            JP      Z,?0025
   \   0204            ?0024:
    212                  {
    213                      parse_total_num();
   \   0204  3E00              LD      A,BYTE3 parse_total_num
   \   0206  21F000            LD      HL,LWRD parse_total_num
   \   0209  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    214          
    215                      //recommend by ryan
    216                      if(g_file_num >= 200)
   \   020C  3A0000            LD      A,(g_file_num)
   \   020F  FEC8              CP      200
   \   0211  383A              JR      C,?0027
   \   0213            ?0026:
    217                      {
    218                          //print some error message
    219                          show_error(MDIROUT);
   \   0213  111902            LD      DE,537
   \   0216  3E00              LD      A,BYTE3 show_error
   \   0218  210000            LD      HL,LWRD show_error
   \   021B  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    220                          
    221                          //进入选项让用户选择其他目录,或者改类型
    222                          rec_bitrate = g_record_vars.rec_bitrate;
   \   021E  3A0300            LD      A,(g_record_vars+3)
   \   0221  DD77FC            LD      (IX-4),A
    223          
    224                          result = show_stop_menu();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -