OSDN Git Service

[v2.0][SHELL][SRECORD] Invert checksum before check.
[openi2cradio/OpenI2CRadio.git] / ui_updown.c
index 237f4bd..eaffc11 100644 (file)
@@ -52,6 +52,7 @@
 #include "power.h"
 #include "adc_int.h"
 #include "backlight.h"
+#include "rencoder.h"
 
 static void setfreq_updown_amsub(void)
 {
@@ -128,10 +129,58 @@ static void setband_updown(unsigned char updown)
     }
 }
 
+unsigned char setfreq_renc_updown(unsigned char dispf)
+{
+    unsigned int freq;
+
+    if(setup.fm != 0) {
+        switch(setup.fm_tunepitch & 3) {
+            case 0:
+                freq = 1; // 25KHz
+                break;
+            case 1:
+                freq = 2; // 50KHz
+                break;
+            case 2:
+                freq = 4; // 100KHz
+                break;
+            default:
+                freq = 8; // 200KHz excepts TV1/TV2.
+                if((setup.fmband == AKC6955_BAND_TV1) || (setup.fmband == AKC6955_BAND_TV2)) {
+                    freq = 4; // 100KHz
+                }
+                break;
+            }
+        freq = freq * renc_count;
+    } else {
+        if(setup.amband == AKC6955_BAND_MW2) {
+            freq = renc_count * 3;
+        } else {
+            freq = renc_count;
+        }
+    }
+
+    if(freq != 0) {  // WORKAROUND: IF STEP=0 then go maximum X-)
+        if(renc_dir == RENC_LEFT) {
+            akc6955_down_freq(freq);
+        } else if(renc_dir == RENC_RIGHT) {
+            akc6955_up_freq(freq);
+        }
+        if(dispf == 0) {
+             acm1602_resume(LCD_I2CADDR);
+             dispf = 0xff;
+        }
+       backlight_reset(charcode_f);
+       update_status();
+       update_display();
+       rencoder_start();
+    }
+    return dispf;
+}
+
 void setfreq_updown(unsigned char ctlword)
 {
     unsigned int freq;
-    unsigned int start, end;
 
     backlight_reset(ctlword);
 
@@ -251,7 +300,7 @@ void setfreq_updown(unsigned char ctlword)
         case charcode_f:
             updown_help();
             _CLS();
-            _LOCATE(0,0);
+//            _LOCATE(0,0);
             break;
         default:
             break;