app_save.h
6.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
#ifndef _APP_STORE_H_1
#define _APP_STORE_H_1
extern U8 ROM_SAVE_DATA1_START[];
extern U8 ROM_SAVE_DATA2_START[];
#if 0
#define TIMER_ALARM_POINTER_USED
//used 12 pages.
#define APP_SAVE_BT_MULTI_LINK_PAGE_ADDR 0
#define APP_SAVE_DATA_PAGE_ADDR ((EEPROM_PAGE_BYTE_16*EEPROM_PAGE_SIZE) * (0+12))
#define APP_SAVE_SYS_PAGE_ADDR ((EEPROM_PAGE_BYTE_16*EEPROM_PAGE_SIZE) * (1+12))
//#define APP_SAVE_SYS_PAGE_ADDR ((EEPROM_PAGE_BYTE_16*1) //16*4 bytes in address "0"
#define TUNER_PROG_PRESET_PAGE_ADDR ((EEPROM_PAGE_BYTE_16*EEPROM_PAGE_SIZE) * (2+12))
//#define APP_SAVE_SYS_PAGE_ADDR ((EEPROM_PAGE_BYTE_16*2) //16*4 bytes in address "1"
#else
#define TIMER_ALARM_POINTER_USED
#define RESUME_SAVE_TO_EEPROM
#define RESUME_VOLUME_NAME_LEN 11
#define BT_DATA_SAVE_TO_EEPROM
#if defined EEPROM_AT24C01
#define APP_PAGE_OFFSET 0
#elif defined EEPROM_AT24C02
#define APP_PAGE_OFFSET 0
#elif defined EEPROM_AT24C04
#define APP_PAGE_OFFSET 0
#elif defined EEPROM_AT24C08
#if 1
#define BT_EEPROM_OFFSET (0)
//used 12 pages(12*64=768) in EEPROM_AT24C08:EEPROM_PAGE_BYTE*EEPROM_PAGE_SIZE.
#define APP_SAVE_BT_MULTI_LINK_PAGE_ADDR (BT_EEPROM_OFFSET) //0-11
#define BT_MULTI_LINK_NEED_PAGE_SIZE (12)
#endif
#define APP_PAGE_OFFSET (BT_MULTI_LINK_NEED_PAGE_SIZE)
#define APP_SAVE_DATA_PAGE_ADDR (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+0)) //need one page,EEPROM_PAGE_BYTE*EEPROM_PAGE_SIZE bytes in address "0"
#define APP_SAVE_SYS_PAGE_ADDR (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+1)) //need one page.
#define TUNER_PROG_PRESET_PAGE_ADDR (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+1+1)) //need two pages.
//#define DAB_PROG_PRESET_PAGE_ADDR (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+1+1+9)) //need one page or two pages.
#ifdef RESUME_SAVE_TO_EEPROM
#if 0
#define RESUME_INFO_PAGE_ADDR (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+1+1+9+2)) //need one page
#else
#define RESUME_INFO_PAGE_ADDR (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+1+1+9+1)) //need one page
#endif
#endif
#elif defined EEPROM_AT24C16
#if 1
#define BT_EEPROM_OFFSET (0)
//used 12 pages(12*64=768) in EEPROM_AT24C08::EEPROM_PAGE_BYTE*EEPROM_PAGE_SIZE.
//used 6 pages(6*128=768) in EEPROM_AT24C16:EEPROM_PAGE_BYTE*EEPROM_PAGE_SIZE.
#define APP_SAVE_BT_MULTI_LINK_PAGE_ADDR (BT_EEPROM_OFFSET) //0-5
#define BT_MULTI_LINK_NEDD_PAGE_SIZE (6)
#endif
#define APP_PAGE_OFFSET (0+BT_MULTI_LINK_NEDD_PAGE_SIZE)
#define APP_SAVE_DATA_PAGE_ADDR (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+0)) //0
#define APP_SAVE_SYS_PAGE_ADDR (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+1)) //need 1 page,EEPROM_PAGE_BYTE*EEPROM_PAGE_SIZE bytes in address "0"
#define TUNER_PROG_PRESET_PAGE_ADDR (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+1+1)) //need 2 pages,EEPROM_PAGE_BYTE*EEPROM_PAGE_SIZE bytes in address "1"
#define DAB_PROG_PRESET_PAGE_ADDR (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+1+1+5)) //need 1 page or two pages , EEPROM_PAGE_BYTE*EEPROM_PAGE_SIZE bytes in address "1"
#ifdef RESUME_SAVE_TO_EEPROM
#if 0
#define RESUME_INFO_PAGE_ADDR (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+1+1+5+2)) //need 1 pages, EEPROM_PAGE_BYTE*EEPROM_PAGE_SIZE bytes
#else
#define RESUME_INFO_PAGE_ADDR (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+1+1+5+1)) //need 1 page, EEPROM_PAGE_BYTE*EEPROM_PAGE_SIZE bytes
#endif
#endif
#if 0
//#define BT_EEPROM_OFFSET (0)
#define BT_EEPROM_OFFSET (EEPROM_PAGE_BYTE*(APP_PAGE_OFFSET+1+1+5+1+1)) //need 6 pages
//used 12 pages(12*64=768) in EEPROM_AT24C08::EEPROM_PAGE_BYTE*EEPROM_PAGE_SIZE.
//used 6 pages(6*128=768) in EEPROM_AT24C16::EEPROM_PAGE_BYTE*EEPROM_PAGE_SIZE.
#define APP_SAVE_BT_MULTI_LINK_PAGE_ADDR (BT_EEPROM_OFFSET) //9-15
#define BT_MULTI_LINK_NEDD_PAGE_SIZE (6)
#endif
#endif
#endif
//#pragma pack(1,1,0)
//#pragma pack(2,2,0)
typedef struct {
U8 Vol;
#ifdef RTC_SYC_IPHONE_ENABLE
U8 iPhone_mode;
#endif
U8 pre_source;
#ifdef USB_COMBINED_WITH_CD
U8 keyCdUsbSrcIndex;
#endif
#ifdef DEMO_FUNC_DISP_STORE
U8 demo_func_disp;
#endif
#ifdef AUX_MULTI_INPUT
U8 aux_input_num;
#endif
#if (defined TUNER_MODULE || defined DAB_FRONTIER_FSAPI)
#ifdef RTC_SYC_TUNER_ENABLE
U8 ct_mode;
#endif
U8 tn_pty_search_no;
U16 MW_Cur_Freq;
U16 FM_Cur_Freq;
// U8 tuner_prog_flag;
U8 tuner_band;
U8 MonostereoMod;
#endif //TUNER_MODULE
} __attribute__ ((packed)) APP_SAVE_DATA;
//} APP_SAVE_DATA;
//if saving to sFlash, used the "ROM_SAVE_DATA_START" address, the space must be times 4.
extern APP_SAVE_DATA app_save_data;
typedef struct {
U8 volume;
U8 eq_mode;
U8 bass_mode;
U8 bass_volume;
U8 treble_volume;
U8 x_bass;
U8 dimmer;
U8 pre_eq;
U8 pre_surround;
U8 pre_source;
U8 pre_standby;
// U8 pre_standby_status;
// sRTCTime rtc;
U8 time_clock; //the flag of clock setting
U8 clock_12h; //"1" is 12 hours "0" is 24 hours
U8 hours;
U8 minutes;
U8 weekdays;
} APP_SAVE_SYS_DATA;
//if saving to sFlash, used the "ROM_SAVE_DATA1_START" address, the space must be times 4
//extern APP_SAVE_SYS_DATA app_save_sys_data
typedef struct {
#if (defined TUNER_MODULE || defined DAB_FRONTIER_FSAPI)
// U8 preset_number;
U8 fm_preset_number;
U8 am_preset_number;
U16 preset_freq[TN_MAX_PRESET];
#ifndef TUNER_STERO_FIXATION
TUNER_STEREO_FLAG stereo_flag[2];
#endif
#endif //TUNER_MODULE
} APP_SAVE_TUNER_DATA;
//if saving to sFlash, used the "ROM_SAVE_DATA2_START" address, the space must be times 4
extern APP_SAVE_TUNER_DATA app_save_tuner_data;
#ifdef TIMER_ALARM_POINTER_USED
typedef struct {
TIMER_ALARM *timer_alarm;
} APP_SAVE_TIMER_ALRM;
#else
typedef struct {
TIMER_ALARM timer_alarm[TIMER_NUMBER];
} APP_SAVE_TIMER_ALARM;
#endif
extern U8 ROM_TIMER_ALARM_STORE_DATA_START[];
extern U8 ROM_DAB_STORE_DATA_START[];
extern U8 ROM_DAB_STORE_DATA_END[];
void app_save_system_data_init(void);
void app_save_system_data(void);
void app_save_tuner_preset_init(void);
void app_save_tuner_preset_reset(void);
void app_save_tuner_preset(U32 kFreq, U8 presetNum);
U8 app_save_tuner_preset_number_get(void);
U8 app_save_tuner_preset_stereo_flag_get(U8 presetNum);
//saving current station for "PRESET +" or "PRESET -"
void app_save_tuner_current_preset_freq(U32 kFreq, U8 presetNum);
//saving current station for "PRESET +" or "PRESET -"
void app_save_current_station(U32 kFeq);
void app_save_timer_alarm_data_write(void);
U8 bt_flash_is_optek_role_btaddr_present(void);
u8* bt_flash_get_optek_role_btaddr(void);
void bt_flash_set_optek_role_btaddr(u8 *mac_id);
#endif //_APP_STORE_H_1