OSDN Git Service

[USERFERQ] Store userbands to external EEPROM.
[openi2cradio/OpenI2CRadio.git] / menu.h
diff --git a/menu.h b/menu.h
index 70adcb4..3889854 100644 (file)
--- a/menu.h
+++ b/menu.h
 #ifdef __cplusplus
 extern "C" {
 #endif
-#define USER_BAND_NUM 3
-    typedef struct {
-        unsigned char mode3k; // mode3k if am
-        unsigned char start;
-        unsigned char stop;
-        unsigned int freq;
-    } _userband_t;
+
     
 #define USER_MEMORY_NUM 28
 #define USER_MEMORY_BANKS 24
@@ -99,10 +93,8 @@ typedef struct {
     unsigned char threshold_fmcnr; // Reg 0x08
     unsigned char threshold_width; // Reg 0x08
     unsigned char threshold_fmstereo; // Reg 0x08
-    _userband_t am_usrbands[USER_BAND_NUM];
-    _userband_t fm_usrbands[USER_BAND_NUM];
-    banddesc am_userband_freq[USER_BAND_NUM];
-    banddesc fm_userband_freq[USER_BAND_NUM];
+//    banddesc am_userband_freq[USER_BAND_NUM];
+//    banddesc fm_userband_freq[USER_BAND_NUM];
     unsigned char stereo;
     unsigned char volume;
     unsigned char prevolume;
@@ -113,15 +105,31 @@ typedef struct {
     unsigned int ui_idlecount;
     unsigned int memorynum;
     unsigned char fm_tunepitch;
-//    _memoryfreq_t memoryfreqs[USER_MEMORY_NUM];
     unsigned int pagenum;
-   
 } __radioset_t;
 
+typedef struct {
+        unsigned char mode3k; // mode3k if am
+        unsigned char start;
+        unsigned char stop;
+        unsigned int freq;
+        unsigned char reserve[3];
+} _userband_t;
+
+#define USER_BAND_NUM 10
+typedef struct {
+    unsigned int magic;
+    unsigned int version;
+    _userband_t am_usrbands[USER_BAND_NUM];
+    _userband_t fm_usrbands[USER_BAND_NUM];
+    unsigned int checksum;
+} __userband_t_t;
+   
 
     extern __radioset_t setup;
     extern __freqset_t freqset;
     extern __freqset_t freqset_temp;
+    extern __userband_t_t userband;
     extern unsigned char scanflag;
 
     extern unsigned char stereoflag;