OSDN Git Service

[SHELL] Refine help command.
[openi2cradio/OpenI2CRadio.git] / menu.h
diff --git a/menu.h b/menu.h
index bb0fb2f..d0bc8eb 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
-    typedef struct {
-        unsigned char mode3k; // mode3k if am
-        unsigned char start;
-        unsigned char stop;
-        unsigned int freq;
-    } _userband_t;
+
     
-#define USER_MEMORY_NUM 22
+#define USER_MEMORY_NUM 28
+#define USER_MEMORY_BANKS 24
     typedef struct {
         unsigned char band;
         unsigned char fm;
@@ -71,6 +68,34 @@ extern "C" {
     /*
      * main.c
      */
+
+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;
+
+// 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;
@@ -86,8 +111,6 @@ 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];
     unsigned char stereo;
@@ -98,11 +121,18 @@ typedef struct {
     int backlight_long;
     int backlight_level;
     unsigned int ui_idlecount;
-    unsigned char memorynum;
-    _memoryfreq_t memoryfreqs[USER_MEMORY_NUM];
+    unsigned int memorynum;
+    unsigned char fm_tunepitch;
+    unsigned int pagenum;
 } __radioset_t;
 
+
     extern __radioset_t setup;
+    extern __freqset_t freqset;
+    extern __freqset_t freqset_temp;
+    extern __userband_t_t userband;
+    extern const banddesc ambands[19];
+    extern const banddesc fmbands[8];
     extern unsigned char scanflag;
 
     extern unsigned char stereoflag;
@@ -117,37 +147,60 @@ typedef struct {
     extern unsigned char backlight_level;
     extern unsigned char pollkeybuf[33];
     extern unsigned char scanflag;
+    extern unsigned char ui_idlekey;
+    extern unsigned char ui_idlepad;
 
-    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);
+    extern unsigned char setfreq_renc_updown(unsigned char dispf);
 
     /*
-     * 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 list_userband(void);
 
+    /*
+     * 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