📄 ui_menu.lst
字号:
C51 COMPILER V7.50 UI_MENU 08/18/2008 13:43:41 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE UI_MENU
OBJECT MODULE PLACED IN ..\output\output_bin\output_mp3\ui_menu.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\code\common\ui_menu.c LARGE OPTIMIZE(9,SIZE) BROWSE INCDIR(..\..\..\b
-sp\include;..\..\code\ap_mp3\src\include;..\..\code\global;..\..\code\include) DEFINE(CONFIG_ASIC,dynamic_load) DEBUG OB
-JECTEXTEND PRINT(..\output\output_bin\output_mp3\ui_menu.lst) OBJECT(..\output\output_bin\output_mp3\ui_menu.obj)
line level source
1 #include <string.h>
2 #include "api.h"
3 #include "lcd.h"
4 #include "key.h"
5 #include "res_show.h"
6 #include "res.h"
7 #include "ui_menu.h"
8 #include "display.h"
9 #include "prefer.h"
10 //#include "mp3_utile.h"
11
12 function_menu_t globle_menu;
13
14 code UINT8 menu_pos_menu[7] = { POSITION_MENU1, POSITION_MENU2, POSITION_MENU3,
15 POSITION_MENU4 , POSITION_MENU5 , POSITION_MENU6 , POSITION_MENU7};
16
17 UINT8 menu_need_draw=1;
18 UINT8 menu_value_changed=1;
19 UINT8 menu_active,menu_old_active;
20
21 void show_active_menu(int old_active, int active)
22 {
23 1 int tmp;
24 1
25 1 tmp = old_active%7;
26 1 tmp = active%7;
27 1 gfx_bg_rectangle(4,menu_pos_menu[tmp], 120, 16);
28 1 bResShowPic(MENUARR, menu_ptr_x_def,menu_pos_menu[tmp]+2);
29 1 fg_color = COLOR_SELECT;
30 1 ResShowMultiString(globle_menu.title[active], tUserPreference.u8LanguageId, menu_str_x_def, menu_pos_menu
-[tmp]);
31 1
32 1 tmp = old_active%7;
33 1 gfx_bg_rectangle(4,menu_pos_menu[tmp], 120, 16);
34 1 bResShowPic(MENURDOT, menu_ptr_x_def,menu_pos_menu[tmp]+2);
35 1 fg_color = COLOR_UNSELECT;
36 1 ResShowMultiString(globle_menu.title[old_active], tUserPreference.u8LanguageId, menu_str_x_def, me
-nu_pos_menu[tmp]);
37 1 }
38
39 void screen_menu(UINT8 key)
40 {
41 1 int i;
42 1 int cur_group;
43 1 int n;
44 1
45 1
46 1 switch( key)
47 1 {
48 2 case KEY_NEXT:
49 2 if(menu_active < globle_menu.total - 1)
50 2 {
51 3 menu_active++;
C51 COMPILER V7.50 UI_MENU 08/18/2008 13:43:41 PAGE 2
52 3 if(menu_active/7==cur_group)
53 3 {
54 4 menu_old_active=menu_active-1;
55 4 menu_value_changed=TRUE;
56 4 }
57 3 else
58 3 menu_need_draw = TRUE;
59 3 }
60 2 else
61 2 {
62 3 menu_active = 0;
63 3 menu_need_draw = TRUE;
64 3 }
65 2 break;
66 2
67 2 case KEY_PREV:
68 2 if(menu_active > 0)
69 2 {
70 3 menu_active--;
71 3 if(menu_active/7==cur_group)
72 3 {
73 4 menu_old_active=menu_active+1;
74 4 menu_value_changed=TRUE;
75 4 }
76 3 else
77 3 menu_need_draw = TRUE;
78 3 }
79 2 else
80 2 {
81 3 menu_active = globle_menu.total - 1;
82 3 menu_need_draw = TRUE;
83 3 }
84 2
85 2 break;
86 2
87 2 case KEY_MENU:
88 2 globle_menu.active = menu_active;
89 2 globle_menu.action(globle_menu.active);
90 2 return;
91 2 //case KEY_EOS:
92 2 // deal_loop();
93 2 // break;
94 2 // default:
95 2 }
96 1
97 1 if(menu_need_draw)
98 1 {
99 2 bResShowPic(MENUONE,0,0);
100 2 bResShowPic(MENU_TOP,0,140);
101 2 menu_old_active=menu_active;
102 2 cur_group = menu_active / 7;
103 2 n = cur_group*7;
104 2 for(i=0; i<7; i++)
105 2 {
106 3 if(n+i >= globle_menu.total) break; //处理不足5个的情况
107 3 if(n+i==menu_active)
108 3 {
109 4 bResShowPic(MENUARR, menu_ptr_x_def,menu_pos_menu[i]+2);
110 4 fg_color = COLOR_SELECT;
111 4 ResShowMultiString(globle_menu.title[menu_active],tUserPreference.u8LanguageId,
112 4 menu_str_x_def, menu_pos_menu[i]);
113 4 }
C51 COMPILER V7.50 UI_MENU 08/18/2008 13:43:41 PAGE 3
114 3 else
115 3 {
116 4 bResShowPic(MENURDOT, menu_ptr_x_def,menu_pos_menu[i]+2);
117 4 fg_color = COLOR_UNSELECT;
118 4 ResShowMultiString(globle_menu.title[n+i],tUserPreference.u8LanguageId,
119 4 menu_str_x_def, menu_pos_menu[i]);
120 4 }
121 3 }
122 2 menu_need_draw = 0;
123 2 }//need draw
124 1
125 1 if(menu_value_changed)
126 1 {
127 2 show_active_menu(menu_old_active,menu_active);
128 2 menu_value_changed=0;
129 2 }
130 1 }
131
132
133
134 void ui_menu_init(void)
135 {
136 1 menu_need_draw=1;
137 1 menu_value_changed = 0;
138 1 menu_active = globle_menu.active;
139 1 bg_color = 0x0000F77F;
140 1 gfx_set_bg(0x0000F77F);
141 1 screen_menu(KEY_PLAY);
142 1 }
143
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 748 ----
CONSTANT SIZE = 7 ----
XDATA SIZE = 16 12
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -