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

📄 file_brower.lst

📁 智原mp3 SDK 开发包 与巨力 有mp3 wma ogg decoder
💻 LST
字号:
C51 COMPILER V7.50   FILE_BROWER                                                           08/20/2008 17:10:37 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE FILE_BROWER
OBJECT MODULE PLACED IN ..\output\output_bin\output_voice\file_brower.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\code\ap_voice\src\file_brower.c LARGE OPTIMIZE(9,SIZE) BROWSE INCDIR(
                    -..\..\..\bsp\include;..\..\code\ap_voice\src\include;..\..\code\global;..\..\code\include) DEFINE(CONFIG_ASIC,dynamic_lo
                    -ad) DEBUG OBJECTEXTEND PRINT(..\output\output_bin\output_voice\file_brower.lst) OBJECT(..\output\output_bin\output_voice
                    -\file_brower.obj)

line level    source

   1          /******************
   2           *  file_brower.c
   3           ******************/
   4           
   5          #include <string.h>
   6          #include "api.h"
   7          #include "lcd.h"
   8          #include "key.h"
   9          #include "common.h"
  10          #include "ap_common.h"
  11          #include "display.h"
  12          #include "ui_pop_up_list.h"
  13          #include "prefer.h"
  14          #include "res_show.h"
  15          #include "res.h"
  16          #include "voice_utile.h"
  17          
  18          #define MAINMENU_SELECT_MAX     6
  19          #define ITEMS_PER_SCREEN        6
  20          
  21          UINT8 select_page, select_base, select_max;
  22          
  23          //extern code IMAGE image_table[];
  24          
  25          void gfx_file_line(UINT8 line)
  26          {
  27   1              gfx_bg_rectangle(22, menu_pos[line], 96, 16);
  28   1              
  29   1              lcd_max_str = 12;
  30   1              if(curr_finfo.etype == ENTRY_TYPE_FILE) {
  31   2                      if(curr_finfo.emedia == MEDIA_MUSIC)
  32   2                              bResShowPic(MUSICFIL,6,menu_pos[line]);
  33   2              }
  34   1              else
  35   1                      bResShowPic(DIR,6,menu_pos[line]);
  36   1              gfx_filename(22, menu_pos[line]);
  37   1      }
  38          
  39          static void gfx_file_browser(BOOLEAN init)
  40          {
  41   1              BOOLEAN flag;
  42   1              UINT8 data line;
  43   1              UINT16 start, order;
  44   1              
  45   1              if(init) {
  46   2                      //show background       
  47   2                      bResShowPic(MENUTWO,0,0);  
  48   2                      bResShowPic(MENU_TOP,0,140);
  49   2                      //show titiles 
  50   2                      fg_color = COLOR_WHITE;   
  51   2                      bg_color =  0x8B75;;
  52   2                      //gfx_set_bg(Color_MENU_def);   
C51 COMPILER V7.50   FILE_BROWER                                                           08/20/2008 17:10:37 PAGE 2   

  53   2                      ResShowMultiString(FILESS, tUserPreference.u8LanguageId, 
  54   2                      list_str_x_def,123);            
  55   2                      bg_color = 0xF75F;
  56   2                      gfx_set_bg(0xF75F);             
  57   2              }
  58   1              else
  59   1                      bResShowPic(CLR_MTWO,0,0);  
  60   1              
  61   1              select_page = select / ITEMS_PER_SCREEN;
  62   1              start = select_page * ITEMS_PER_SCREEN;
  63   1      
  64   1              line = 0;
  65   1              flag = 0;
  66   1                      
  67   1              if(totdir && start < totdir) {
  68   2                      if(select >= totdir)
  69   2                              if(!api_bSearchDirInDir(SEARCH_MODE_CURRDIR))
  70   2                                      return;
  71   2                      
  72   2                      for(; line < ITEMS_PER_SCREEN && start < totdir; line++) {
  73   3                              if(start == select) {
  74   4                                      fg_color = COLOR_SELECT;
  75   4                                      order = select + 1;
  76   4                                      flag = 1;
  77   4                              }
  78   3                              else
  79   3                                      fg_color = COLOR_UNSELECT;
  80   3                              if(!api_bSelectDirectory(++start, SELECT_SET) ||
  81   3                                 !api_bGetSelectFileInfo(&curr_finfo))
  82   3                                      return;
  83   3                              gfx_file_line(line);
  84   3                      }
  85   2              }
  86   1              
  87   1              /* Some files need to display, we need to research */
  88   1              if(totfile && (line < ITEMS_PER_SCREEN)) {
  89   2                      if(line) {
  90   3                              if(!api_bSearchFileInDir(SEARCH_MODE_CURRDIR, search_extstr))
  91   3                                      return;
  92   3                      }
  93   2                      
  94   2                      for(; line < ITEMS_PER_SCREEN && start < totitem; line++) {
  95   3                              fg_color = (start == select ? COLOR_SELECT : COLOR_UNSELECT);
  96   3                              if(!api_bSelectFile(++start - totdir, SELECT_SET) ||
  97   3                                 !api_bGetSelectFileInfo(&curr_finfo))
  98   3                                      return;
  99   3                              gfx_file_line(line);
 100   3                      }
 101   2                      
 102   2                      if(flag) {
 103   3                              if(!api_bSearchDirInDir(SEARCH_MODE_CURRDIR))
 104   3                                      return;
 105   3                              order = select + 1;
 106   3                      }
 107   2                      else
 108   2                              order = select - totdir + 1;
 109   2              }
 110   1                      
 111   1              if(api_bSelectFile(order, SELECT_SET)) {
 112   2                      api_bGetSelectFileInfo(&curr_finfo);
 113   2              }               
 114   1      }
C51 COMPILER V7.50   FILE_BROWER                                                           08/20/2008 17:10:37 PAGE 3   

 115          
 116          void screen_filebrowser_init(void)
 117          {
 118   1              gfx_file_browser(true);
 119   1              
 120   1              screen_level = SCREEN_LEVEL_FILE_BROWSER;
 121   1      }
 122          
 123          void screen_filebrowser(UINT8 key)
 124          {
 125   1              INT8 dir;
 126   1              UINT16 old_select, order;
 127   1              
 128   1              switch(key) {
 129   2                      case KEY_MENU:
 130   2                              if(curr_finfo.etype == ENTRY_TYPE_FILE) {
 131   3                                      api_bStop();
 132   3                                      if(!api_bSelectFileOpen())
 133   3                                              return;
 134   3                                      screen_map(SCREEN_VOICE);
 135   3                              }
 136   2                              else {
 137   3                                      if(change_dir(&curr_finfo)) {
 138   4                                              scan_dir_file(SEARCH_MODE_CURRDIR, search_extstr, 1);
 139   4                                              gfx_file_browser(true);
 140   4                                      }
 141   3                              }
 142   2                              return;                 
 143   2                      case KEY_NEXT:
 144   2                              dir = 1;
 145   2                              break;
 146   2                      case KEY_PREV:
 147   2                              dir = -1;
 148   2                              break;          
 149   2                      case KEY_EOS:
 150   2                              deal_loop();
 151   2                              break;          
 152   2                      default:
 153   2                              return;
 154   2              }
 155   1                      
 156   1              fg_color = COLOR_UNSELECT;
 157   1              gfx_file_line(select % ITEMS_PER_SCREEN);
 158   1      
 159   1              old_select = select;
 160   1              select += dir;
 161   1              
 162   1              if(select >= totitem) {
 163   2                      if(dir > 0)
 164   2                              select = 0;
 165   2                      else
 166   2                              select = totitem - 1;
 167   2              }
 168   1      
 169   1              if(old_select < totdir && select >= totdir) {
 170   2                      if(!api_bSearchFileInDir(SEARCH_MODE_CURRDIR, search_extstr))
 171   2                                      return;
 172   2              }
 173   1              else if(old_select >= totdir && select < totdir) {
 174   2                      if(!api_bSearchDirInDir(SEARCH_MODE_CURRDIR))
 175   2                              return;
 176   2              }
C51 COMPILER V7.50   FILE_BROWER                                                           08/20/2008 17:10:37 PAGE 4   

 177   1      
 178   1              if((select / ITEMS_PER_SCREEN) != select_page) {
 179   2                      /* New page */
 180   2                      gfx_file_browser(FALSE);
 181   2              }
 182   1              else {
 183   2                      if(select < totdir)
 184   2                              order = select + 1;
 185   2                      else
 186   2                              order = select - totdir + 1;
 187   2                      
 188   2                      if(!api_bSelectFile(order, SELECT_SET) || !api_bGetSelectFileInfo(&curr_finfo))
 189   2                              return;
 190   2                      
 191   2                      fg_color = COLOR_SELECT;
 192   2                      gfx_file_line(select % ITEMS_PER_SCREEN);
 193   2                      
 194   2              }
 195   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    998    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      3      10
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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