OSDN Git Service

[General] Change user bands are 3+3(FM+AM), user freq chs are 28chs.
[openi2cradio/OpenI2CRadio.git] / menu.h
diff --git a/menu.h b/menu.h
index 280f27b..55bf6cc 100644 (file)
--- a/menu.h
+++ b/menu.h
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#if defined(__SDCC)
 #include <sdcc-lib.h>
 #include <pic18fregs.h> /* ONLY FOR PIC18x */
 #include <delay.h>
+#else
+#include <xc.h>
+#endif
 
 #include "iodef.h"
 #include "idle.h"
 #include "ui.h"
 #include "eeprom.h"
 #include "ioports.h"
+#include "helps.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
+    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 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 _userband_t am_usrbands[USER_BAND_NUM];
-    extern _userband_t fm_usrbands[USER_BAND_NUM];
+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 char memorynum;
+    _memoryfreq_t memoryfreqs[USER_MEMORY_NUM];
+} __radioset_t;
+
+    extern __radioset_t setup;
+    extern unsigned char scanflag;
 
-    extern int backlight_long;
-    extern unsigned int ui_idlecount;
+    extern unsigned char stereoflag;
+    extern unsigned char tuneflag;
+    extern unsigned char cnrlevel;
+    extern int diffstat;
+    extern unsigned int batlevel_6955;
+    extern unsigned int battlevel;
 
     extern int recv_signal;
     extern int backlight_counter;
@@ -83,6 +122,8 @@ extern "C" {
     extern void update_status(void);
     extern void save_eeprom(void);
     extern unsigned char load_eeprom(void);
+    extern void check_eeprom(void);
+
     extern void setfreq_updown(unsigned char ctlword);
     extern void setdefault(void);
 
@@ -95,11 +136,17 @@ extern "C" {
     extern void call_userband(unsigned char num);
     extern void setband_direct(void);
     extern void setfreq_direct(void);
+    extern void set_stereo(void);
+
     extern void scan_start(void);
     extern void set_volume(void);
     extern void toggle_amfm(void);
-    extern void updown_help(void);
-    extern void mainmenu_help(void);
+    extern void setup_menu(void);
+
+    extern void print_freq(unsigned char y);
+    extern void setup_akc6955(void);
+    extern void setdefault(void);
+    extern void valinit(void);
 
 #ifdef __cplusplus
 }