OSDN Git Service

[UI] Add UpDOwn on calling user-frequency (22chs or any).
authorK.Ohta <whatisthis.sowhat@gmail.com>
Tue, 13 Aug 2013 17:05:46 +0000 (02:05 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Tue, 13 Aug 2013 17:05:46 +0000 (02:05 +0900)
helps.c
menu.h
menu_defs.c
menu_memoryfreq.c
menu_memoryfreq.h
ui_updown.c

diff --git a/helps.c b/helps.c
index 1b837ce..d624044 100644 (file)
--- a/helps.c
+++ b/helps.c
@@ -56,7 +56,7 @@ const char *setup_helpstr[14] = {
 const char *mainmenu_helpstr[14] = {
         "Help", "F=exit any=continue",
         "0: Setup", "1: Band",
-        "3: Freq", "5: "
+        "3: Freq", ""
         "4: Call user", "6: Set user",
         "7: Power Off", "8: Volume",
         "9: Width", "a: AM/FM",
diff --git a/menu.h b/menu.h
index 3eb9537..bb0fb2f 100644 (file)
--- a/menu.h
+++ b/menu.h
@@ -98,6 +98,7 @@ typedef struct {
     int backlight_long;
     int backlight_level;
     unsigned int ui_idlecount;
+    unsigned char memorynum;
     _memoryfreq_t memoryfreqs[USER_MEMORY_NUM];
 } __radioset_t;
 
index 7c2068f..d58e3ab 100644 (file)
@@ -96,43 +96,43 @@ unsigned char scanflag;
 void setdefault(void)
 {
     char i;
-    __radioset_t *p = &setup;
     //amfreq = 954;
     //fmfreq = 8000; // 10KHz order.
-    p->amband = AKC6955_BAND_MW2;
-    p->fmband = AKC6955_BAND_FM2;
-    p->am_mode3k = 0xff;
-    p->fm = 0;
-    p->am_userbandnum = 0;
-    p->fm_userbandnum = 0;
-    p->lowboost = 0xff;
-    p->threshold_amcnr = 0;
-    p->threshold_fmcnr = 0;
-    p->threshold_fmstereo = 0;
-    p->threshold_width = 0;
+    setup.amband = AKC6955_BAND_MW2;
+    setup.fmband = AKC6955_BAND_FM2;
+    setup.am_mode3k = 0xff;
+    setup.fm = 0;
+    setup.am_userbandnum = 0;
+    setup.fm_userbandnum = 0;
+    setup.lowboost = 0xff;
+    setup.threshold_amcnr = 0;
+    setup.threshold_fmcnr = 0;
+    setup.threshold_fmstereo = 0;
+    setup.threshold_width = 0;
     for(i = 0; i < USER_BAND_NUM; i++){
-        p->am_usrbands[i].start = 0x19;
-        p->am_usrbands[i].stop  = 0x32;
+        setup.am_usrbands[i].start = 0x19;
+        setup.am_usrbands[i].stop  = 0x32;
     }
     for(i = 0; i < USER_BAND_NUM; i++){
-        p->fm_usrbands[i].start = 0x19;
-        p->fm_usrbands[i].stop  = 0x32;
+        setup.fm_usrbands[i].start = 0x19;
+        setup.fm_usrbands[i].stop  = 0x32;
     }
     for(i =0; i < AKC6955_BAND_AMEND; i++){
-      p->amfreq_bank[i] = ((ambands[i].end - ambands[i].start) / 2) + ambands[i].start;
+      setup.amfreq_bank[i] = ((ambands[i].end - ambands[i].start) / 2) + ambands[i].start;
     }
     for(i =0; i <  AKC6955_BAND_FMEND ; i++){
-      p->fmfreq_bank[i] = ((fmbands[i].end - fmbands[i].start) / 2) + fmbands[i].start;
+      setup.fmfreq_bank[i] = ((fmbands[i].end - fmbands[i].start) / 2) + fmbands[i].start;
     }
+    setup.memorynum = 0x00;
     for(i = 0; i < USER_MEMORY_NUM; i++) {
-        p->memoryfreqs[i].band = AKC6955_BAND_MW2;
-        p->memoryfreqs[i].fm = 0;
-        p->memoryfreqs[i].freq = 594; // NHK1 Tokyo.
+        setup.memoryfreqs[i].band = AKC6955_BAND_MW2;
+        setup.memoryfreqs[i].fm = 0;
+        setup.memoryfreqs[i].freq = 594; // NHK1 Tokyo.
     }
 
-    p->fmfreq = p->fmfreq_bank[p->fmband];
-    p->amfreq = p->amfreq_bank[p->amband];
-    p->stereo = 0xff; // Auto
+    setup.fmfreq = setup.fmfreq_bank[setup.fmband];
+    setup.amfreq = setup.amfreq_bank[setup.amband];
+    setup.stereo = 0xff; // Auto
 }
 
 void valinit(void)
index d2e9377..c1663dc 100644 (file)
@@ -38,10 +38,11 @@ void call_freqbank(unsigned char num)
     unsigned char _band;
     unsigned char _userband;
     if(num >= USER_MEMORY_NUM) return;
+
     _fm = setup.memoryfreqs[num].fm;
     _userband = setup.memoryfreqs[num].band;
     _band = _userband & 0x1f;
-    _userband = (_userband >> 5) & 0x07;
+    _userband = _userband >> 5;
     if(_fm) { // AM
         setup.fmband = _band;
         setup.fm_userbandnum = _userband;
@@ -85,19 +86,101 @@ void on_call_userfreq(void)
     printstr("Mem: 00-");
     print_numeric_nosupress(USER_MEMORY_NUM - 1, 2);
     val = read_numeric(val, 2, 4, 1);
-    if(val >= USER_MEMORY_NUM) return;
     call_freqbank(val);
 }
 
 void on_set_userfreq(void)
 {
     unsigned int val = USER_MEMORY_NUM;
+    unsigned char n;
+    unsigned char c;
     _CLS();
     _LOCATE(0,0);
     printstr("Set Mem: 00-");
     print_numeric_nosupress(USER_MEMORY_NUM - 1, 2);
     val = read_numeric(val, 2, 4, 1);
-    if(val >= USER_MEMORY_NUM) return;
+    _HOME();
+    _LOCATE(0,0);
+    printstr("OK? A=OK       ");
+    do {
+           n = pollkeys(pollkeybuf, 19, 1);
+    } while(n == 0);
+    c = pollkeybuf[0];
+    if(c != charcode_a) return;
     set_freqbank(val);
     save_eeprom();
+}
+
+void on_updown_userfreq(void)
+{
+    unsigned int _freq;
+    unsigned char _fm;
+    unsigned char _band;
+    unsigned char _userband;
+    unsigned char n;
+    unsigned char c;
+
+    _fm = setup.fm;
+    _freq = setup.amfreq;
+    _userband = setup.am_userbandnum;
+    _band = setup.amband;
+    if(_fm){
+        _userband = setup.fm_userbandnum;
+        _band = setup.fmband;
+        _freq = setup.fmfreq;
+    }
+
+    _CLS();
+    _LOCATE(0,0);
+    printstr("CH: ");
+    print_numeric_nosupress(setup.memorynum, 2);
+    update_status();
+    print_freq(1);
+    _HOME();
+    do {
+       do {
+           n = pollkeys(pollkeybuf, 19, 1);
+       } while(n == 0);
+       c = pollkeybuf[0];
+       switch(c) {
+           case charcode_8: // UP CH
+                setup.memorynum++;
+                if(setup.memorynum >= USER_MEMORY_NUM) setup.memorynum = 0;
+                call_freqbank(setup.memorynum);
+                break;
+           case charcode_2: // Down CH
+                if(setup.memorynum == 0) setup.memorynum = USER_MEMORY_NUM;
+                setup.memorynum--;
+                call_freqbank(setup.memorynum);
+                break;
+            case charcode_d: // Reset
+                if(_fm) { // AM
+                    setup.fmband = _band;
+                    setup.fm_userbandnum = _userband;
+                    setup.fmfreq = _freq;
+                } else {
+                    setup.amband = _band;
+                    setup.am_userbandnum = _userband;
+                    setup.amfreq = _freq;
+                }
+                akc6955_chg_fm(_fm, _freq);
+                break;
+           case charcode_5: // exit
+           case charcode_a:
+                goto _l0;
+                break;
+           default:
+               break;
+           }
+//        _HOME();
+        _LOCATE(0,0);
+       printstr("CH: ");
+       print_numeric_nosupress(setup.memorynum, 2);
+       update_status();
+       print_freq(1);
+       _HOME();
+    } while(1);
+_l0:
+    _CLS();
+
 }
\ No newline at end of file
index b254e7e..ead8971 100644 (file)
@@ -37,6 +37,7 @@ extern void call_freqbank(unsigned char num);
 extern void set_freqbank(unsigned char num);
 extern void on_call_userfreq(void);
 extern void on_set_userfreq(void);
+extern void on_updown_userfreq(void);
 
 #ifdef __cplusplus
 }
index 42ce1fc..1cca676 100644 (file)
@@ -48,6 +48,7 @@
 #include "eeprom.h"
 #include "ioports.h"
 #include "menu.h"
+#include "menu_memoryfreq.h"
 #include "power.h"
 #include "adc_int.h"
 
@@ -212,7 +213,8 @@ void setfreq_updown(unsigned char ctlword)
             toggle_amfm();
             break;
         case charcode_b:
-            set_volume();
+//            set_volume();
+             on_updown_userfreq();
             break;
         case charcode_c:
             // Scan