OSDN Git Service

[UI][LCD] Fix flicking LCD display.
[openi2cradio/OpenI2CRadio.git] / menu.h
diff --git a/menu.h b/menu.h
index 53a2d88..d4a1dc2 100644 (file)
--- a/menu.h
+++ b/menu.h
 #include "eeprom.h"
 #include "ioports.h"
 #include "helps.h"
+#include "menu_ui.h"
+#include "eeprom_util.h"
 
 #ifdef __cplusplus
 extern "C" {
 #endif
-#define USER_BAND_NUM 4
+#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
+    typedef struct {
+        unsigned char band;
+        unsigned char fm;
+        unsigned int freq;
+    } _memoryfreq_t;
     /*
      * main.c
      */
-    extern unsigned int amfreq;
-    extern unsigned int fmfreq;
-    extern unsigned int amfreq_bank[AKC6955_BAND_AMEND];
-    extern unsigned int fmfreq_bank[AKC6955_BAND_FMEND];
-    extern unsigned char amband;
-    extern unsigned char fmband;
-    extern unsigned char fm;
-    extern unsigned char am_mode3k;
-    extern unsigned char am_userbandnum;
-    extern unsigned char fm_userbandnum;
-    extern unsigned char threshold_amcnr;
-    extern unsigned char threshold_fmcnr;
-    extern unsigned char threshold_width;
-    extern unsigned char threshold_fmstereo;
-    extern unsigned char lowboost;
-    extern unsigned char stereo;
-    extern _userband_t am_usrbands[USER_BAND_NUM];
-    extern _userband_t fm_usrbands[USER_BAND_NUM];
-    extern banddesc am_userband_freq[USER_BAND_NUM];
-    extern banddesc fm_userband_freq[USER_BAND_NUM];
-    extern unsigned char volume;
-    extern unsigned char prevolume;
-    extern unsigned char fmbandwidth;
-
-    extern int backlight_long;
-    extern unsigned int ui_idlecount;
-
+// Frequencyset of 1Sector.
+// Below v1.0.
+typedef struct {
+    unsigned int magic;
+    unsigned int version;
+    unsigned int pagenum;
+    _memoryfreq_t memoryfreqs[USER_MEMORY_NUM];
+    unsigned int checksum;
+} __freqset_t;
+
+typedef struct {
+    unsigned int amfreq;
+    unsigned int fmfreq;
+    unsigned int amfreq_bank[AKC6955_BAND_AMEND];
+    unsigned int fmfreq_bank[AKC6955_BAND_FMEND];
+    unsigned char amband;
+    unsigned char fmband;
+    unsigned char fm;
+    unsigned char am_mode3k;
+    unsigned char am_userbandnum;
+    unsigned char fm_userbandnum;
+    unsigned char threshold_amcnr; // Reg 0x08
+    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];
+    unsigned char stereo;
+    unsigned char volume;
+    unsigned char prevolume;
+    unsigned char fmbandwidth;
+    unsigned char lowboost;
+    int backlight_long;
+    int backlight_level;
+    unsigned int ui_idlecount;
+    unsigned int memorynum;
+//    _memoryfreq_t memoryfreqs[USER_MEMORY_NUM];
+    unsigned int pagenum;
+} __radioset_t;
+
+
+    extern __radioset_t setup;
+    extern __freqset_t freqset;
+    extern __freqset_t freqset_temp;
+    extern unsigned char scanflag;
 
     extern unsigned char stereoflag;
     extern unsigned char tuneflag;
@@ -105,40 +135,55 @@ extern "C" {
     extern unsigned char pollkeybuf[33];
     extern unsigned char scanflag;
 
-    extern void update_display(void);
-    extern void update_status(void);
-    extern void save_eeprom(void);
-    extern unsigned char load_eeprom(void);
-    extern void check_eeprom(void);
-
+    /*
+     * ui_updown.c
+     */
     extern void setfreq_updown(unsigned char ctlword);
     extern void setdefault(void);
 
     /*
-     * menu.c
+     * menu_userband.c
      */
-    extern void main_menu(void);
     extern void input_userband(void);
     extern void set_userband(void);
     extern void call_userband(unsigned char num);
-    extern void setband_direct(void);
-    extern void setfreq_direct(void);
-    extern void set_stereo(void);
-    extern void set_thresh_fmstereo(unsigned char a);
-    extern void set_thresh_fmcnr(unsigned char a);
-    extern void set_thresh_amcnr(unsigned char a);
-    extern void set_thresh_width(unsigned char a);
 
+    /*
+     * menu_scan.c
+     */
     extern void scan_start(void);
+    /*
+     * menu_volume.c
+     */
     extern void set_volume(void);
-    extern void toggle_amfm(void);
-    extern void setup_menu(void);
 
-    extern void print_freq(unsigned char y);
-    extern void setup_akc6955(void);
+    /*
+     * menu_defs.c
+     */
     extern void setdefault(void);
     extern void valinit(void);
 
+
+    /*
+     * menu.c
+     */
+    extern void toggle_amfm(void);
+    extern void set_stereomode(void);
+    extern void set_stereo(void);
+    extern void setband_direct(void);
+    extern void setfreq_direct(void);
+    extern void menu_poweroff(void);
+    extern void setup_akc6955(void);
+    extern void main_menu(void);
+
+    /*
+     * menu_setup.c
+     */
+    extern void setup_menu(void);
+    extern void menu_load(void);
+    extern void menu_save(void);
+
+
 #ifdef __cplusplus
 }
 #endif