*/
#include "menu.h"
+#include "menu_memoryfreq.h"
#include "power.h"
+#include "commondef.h"
+#include "backlight.h"
void toggle_amfm(void)
{
- if(fm != 0){
- fm = 0;
- akc6955_chg_fm(fm);
- akc6955_set_amband(amband);
- akc6955_set_freq(amfreq);
+ unsigned int freq;
+ if(setup.fm != 0){
+ setup.fm = 0;
+ setup.fmfreq_bank[setup.fmband] = setup.fmfreq;
+ // akc6955_set_amband(amband);
+ freq = setup.amfreq_bank[setup.amband];
} else {
- fm = 0xff;
- akc6955_chg_fm(fm);
- akc6955_set_fmband(fmband);
- akc6955_set_freq(fmfreq);
+ setup.fm = 0xff;
+ setup.amfreq_bank[setup.amband] = setup.amfreq;
+// akc6955_set_fmband(fmband);
+ freq = setup.fmfreq_bank[setup.fmband];
}
+ akc6955_chg_fm(setup.fm, freq);
+ idle_time_ms(500);
+// akc6955_set_freq(freq);
}
-void set_thresh(void)
-{
- unsigned char c;
- unsigned char a;
- a = 0;
- _CLS();
- _LOCATE(0,0);
- printstr("CNR Threshold");
- _LOCATE(4,0);
- printstr("FM Tun");
- _LOCATE(0,1);
- printstr("1-4 F=exit");
- do {
- c = pollkey_single();
- if(c == charcode_f) return;
- } while((c < charcode_1) && (c>charcode_4));
- a |= ((c - charcode_1) << 6);
- _LOCATE(4,0);
- printstr("AM Tun");
- do {
- c = pollkey_single();
- if(c == charcode_f) return;
- } while((c < charcode_1) && (c>charcode_4));
- a |= ((c - charcode_1) << 4);
- _LOCATE(4,0);
- printstr("Diff ");
- do {
- c = pollkey_single();
- if(c == charcode_f) return;
- } while((c < charcode_1) && (c>charcode_4));
- a |= ((c - charcode_1) << 2);
- _LOCATE(4,0);
- printstr("Stereo");
- do {
- c = pollkey_single();
- if(c == charcode_f) return;
- } while((c < charcode_1) && (c>charcode_4));
- a |= (c - charcode_1);
- akc6955_writecmd(AKC6955_THRESH, a);
-}
+
void set_stereomode(void)
{
- unsigned char mode = 0x00;
- switch(stereo){
- case 0x00:
- mode = 0b00000001; // Force mono
- break;
- case 0xff:
- mode = 0x00000000;
- break;
- default:
- mode = 0b00000010; // Force stereo
- break;
+ __bitops_t mode;
+ mode.byte = 0x00;
+ if(setup.stereo == 0x00){
+ mode.b0 = 1; // Force mono
+ } else if(setup.stereo < 0x80){
+ mode.b1 = 1; // Force stereo
}
- akc6955_set_stereomode(mode);
+ akc6955_set_stereomode(mode.byte);
}
void set_stereo(void)
{
- if(stereo == 0xff) {// Force Mono
- stereo = 0x00;
- } else if(stereo == 0x00) { //Mono->Stereo
- stereo = 0x7f;
+
+ if(setup.stereo == 0xff) {// Force Mono
+ setup.stereo = 0x00;
+ } else if(setup.stereo == 0x00) { //Mono->Stereo
+ setup.stereo = 0x7f;
} else { // Default, Stereo->auto
- stereo = 0xff;
+ setup.stereo = 0xff;
}
set_stereomode();
}
{
unsigned char c;
unsigned char d;
- unsigned char p;
+ unsigned char fact;
+ unsigned char dispf = 0xff;
_CLS();
do {
- d = akc6955_getvolumemode();
+ if(dispf != 0) {
+ _LOCATE(0,0);
+ d = akc6955_getvolumemode();
+ if(d == 0){
+ _PUTCHAR('D');
+ } else {
+ _PUTCHAR('K');
+ }
+ printstr(" Vol:");
+ print_numeric_nosupress(setup.volume, 2);
+ printstr(" F:Exit");
+ _LOCATE(0,1);
+ printstr("Pre:");
+ _PUTCHAR('0' + (setup.prevolume & 3));
+ _LOCATE(16-4, 1);
+ if(setup.lowboost == 0x00){
+ printstr(" ");
+ } else {
+ printstr("LOW");
+ }
+ _HOME();
+ }
+ c = pollkey_single_timeout(41, 1); // 943ms
+ backlight_reset(c);
+ dispf = backlight_dec(dispf);
- _LOCATE(0,0);
- if(d == 0){
- _PUTCHAR('D');
- } else {
- _PUTCHAR('K');
- }
- printstr(" F:Exit");
- _LOCATE(0,1);
- printstr("Vol:");
- print_numeric_nosupress(volume, 2);
- printstr(" Pre:");
- _PUTCHAR('0' + (prevolume & 3));
- if(lowboost == 0x00){
- printstr(" ");
- } else {
- printstr(" LOW");
- }
- c = pollkeys(pollkeybuf, 60, 1);
- p = 0;
- while(c > 0) {
- _LOCATE(0,1);
- switch(pollkeybuf[p]) {
+ switch(c) {
case charcode_6:
- volume++;
- if(volume > 63) volume = 63;
+ setup.volume++;
+ if(setup.volume > 63) setup.volume = 63;
+ akc6955_setvolume(setup.volume);
break;
case charcode_4:
- volume--;
- if(volume < 23) volume = 23;
+ setup.volume--;
+ if(setup.volume < 23) setup.volume = 23;
+ akc6955_setvolume(setup.volume);
break;
case charcode_f:
+ _CLS();
return;
case charcode_a:
- if(d == 0){
- akc6955_setvolumemode(0xff);
- } else {
- akc6955_setvolumemode(0x00);
+ fact = 0xff;
+ if(d != 0){
+ fact = 0x00;
}
+ akc6955_setvolumemode(fact);
+ akc6955_setvolume(setup.volume);
break;
case charcode_b:
- prevolume++;
- if(prevolume > 3) prevolume = 0;
- akc6955_set_prevolume(prevolume);
+ setup.prevolume++;
+ if(setup.prevolume > 3) setup.prevolume = 0;
+ akc6955_set_prevolume(setup.prevolume);
+ akc6955_setvolume(setup.volume);
break;
case charcode_d:
- if(lowboost == 0x00){
- lowboost = 0xff;
- } else {
- lowboost = 0x00;
+ fact = 0x00;
+ if(setup.lowboost == 0x00){
+ fact = 0xff;
}
- akc6955_set_lowboost(lowboost);
+ setup.lowboost = fact;
+ akc6955_set_lowboost(setup.lowboost);
+ akc6955_setvolume(setup.volume);
break;
default:
break;
}
- c--;
- p++;
+ if(setup.volume < 24){
+ set_examp_mute(1);
+ } else {
+ set_examp_mute(0);
}
- if(volume < 24){
- set_examp_mute(1);
- } else {
- set_examp_mute(0);
- }
- akc6955_setvolume(volume);
+ idle_time_ms(9); // Pad.
} while(1);
}
+
void scan_start(void)
{
unsigned char c;
-
+ unsigned char cc;
+ unsigned char n;
+ _CLS();
+ scanflag = 0;
do {
- _CLS();
- _LOCATE(0,0);
- printstr("Scan A/U=6/D=4");
- print_freq(1);
- c = pollkey_single();
- if(scanflag == 0){
- scanflag = 0xff;
- } else {
- if((c == charcode_a) || (c == charcode_4) || (c == charcode_6)) {
- akc6955_abort_scan();
- idle_time_62_5ms();
+ do {
+ c = pollkey_single_timeout(20, 0) ; // 23*20 = 460ms
+ if(chk_powerbutton() != 0) shutdown(1);
+ update_status();
+ cc = ' ';
+ if((akc6955_chk_donescan() == 0) && (scanflag != 0)){
+ cc = '>';
}
- }
- // New Scan
- if(c == charcode_6){
- akc6955_do_scan(0xff);
- } else if(c == charcode_4){
- akc6955_do_scan(0);
- } else if(c == charcode_a){
- break;
- } else {
- // Not Exit
-// break;
- }
- scanflag = 0xff;
-
- if(akc6955_chk_donescan() != 0) {
- _CLS();
- _LOCATE(0,0);
- printstr("Scan completed");
- print_freq(1);
- idle_time_ms(ui_idlecount);
+ _PUTCHAR(cc);
+ printstr("Scan A/4/6/F");
+ print_freq(1);
+ _HOME();
+ } while(c == charcode_null);
+ // New Scan
+ switch(c){
+ case charcode_6:
+ scanflag = 0xff;
+ akc6955_do_scan(0xff);
+ break;
+ case charcode_4:
+ scanflag = 0xff;
+ akc6955_do_scan(0);
+ break;
+ case charcode_a:
+ akc6955_abort_scan();
+ goto _l0;
+ break;
+ case charcode_f:
+ goto _l0;
+ break;
+ default:
+ break;
}
} while(1);
- scanflag=0;
+_l0:
+ _CLS();
}
void setfreq_direct(void)
_LOCATE(0,0);
printstr("Set Freq:");
_LOCATE(0,1);
- if(fm != 0){
+ if(setup.fm != 0){
// FM
printstr("FM ");
- val = fmfreq;
+ val = setup.fmfreq;
val = read_numeric(val, 5, 7, 1);
- fmfreq = val;
+ setup.fmfreq = val;
} else {
// FM
printstr("AM ");
- val = amfreq;
+ val = setup.amfreq;
val = read_numeric(val, 5, 7, 1);
- amfreq = val;
+ setup.amfreq = val;
}
akc6955_set_freq(val);
}
void setband_direct(void)
{
unsigned int band;
+ unsigned int freq;
_CLS();
_LOCATE(0,0);
- if(fm != 0){
+ if(setup.fm != 0){
printstr("Set Band:FM#");
- band = fmband & 7;
- fmband = read_numeric(band, 2, 7, 1);
- akc6955_set_fmband(fmband);
- akc6955_do_tune();
+ band = setup.fmband & 7;
+ setup.fmfreq_bank[setup.fmband] = setup.fmfreq;
+ setup.fmband = read_numeric(band, 2, 7, 1);
+ setup.fmfreq = setup.fmfreq_bank[setup.fmband];
+ akc6955_set_fmband(setup.fmband);
+ freq = setup.fmfreq;
} else {
printstr("Set Band:AM#");
- band = amband & 0x1f;
- amband = read_numeric(band, 2, 7, 1);
- akc6955_set_amband(amband);
- akc6955_do_tune();
+ band = setup.amband & 0x1f;
+ setup.amfreq_bank[setup.amband] = setup.amfreq;
+ setup.amband = read_numeric(band, 2, 7, 1);
+ setup.amfreq = setup.amfreq_bank[setup.amband];
+ switch(band) {
+ case AKC6955_BAND_LW:
+ case AKC6955_BAND_MW2:
+ setup.am_mode3k = 0xff;
+ break;
+ case AKC6955_BAND_MW1:
+ case AKC6955_BAND_MW3:
+ case AKC6955_BAND_MW4:
+ setup.am_mode3k = 0x00;
+ break;
+ default:
+ break;
+ }
+
+ akc6955_set_amband(setup.amband);
+ freq = setup.amfreq;
}
+ akc6955_do_tune();
+ akc6955_set_freq(freq);
}
void call_userband(unsigned char num)
{
unsigned int freq;
unsigned int ch;
+ unsigned char start;
+ unsigned char end;
+ unsigned char mode3k;
+ unsigned char freq2;
+ _userband_t *p;
+
if(num >= USER_BAND_NUM) return;
- if(fm != 0){
- freq = fm_usrbands[num].freq;
- ch = ((freq - 3000) / 25) * 10;
- akc6955_set_userband(fm_usrbands[num].start, fm_usrbands[num].stop, ch,
- fm_usrbands[num].mode3k);
- fmband = AKC6955_BAND_AMUSER;
+
+ p = &(setup.am_usrbands[num]);
+ if(setup.fm != 0){
+ p = &(setup.fm_usrbands[num]);
+ }
+ freq = p->freq;
+ start = p->start;
+ end = p->stop;
+ mode3k = p->mode3k;
+ if(setup.fm != 0) {
+ ch = ((freq - 3000) / 5) * 2;
+ setup.fmband = AKC6955_BAND_FMUSER;
} else {
- unsigned int p = 5;
- if(am_usrbands[num].mode3k != 0) p = 3;
- freq = am_usrbands[num].freq;
- ch = freq / p;
- akc6955_set_userband(am_usrbands[num].start, am_usrbands[num].stop, ch,
- am_usrbands[num].mode3k);
- amband = AKC6955_BAND_AMUSER;
+ unsigned int q = 5;
+ if(mode3k != 0) q = 3;
+ ch = freq / q;
+ setup.amband = AKC6955_BAND_AMUSER;
+ }
+
+ if(start > end) {
+ unsigned char tmp;
+ tmp = start;
+ start = end;
+ end = tmp;
}
+
+ freq2 = ch / 32;
+ if(freq2 > end) {
+ ch = end * 32;
+ }
+ if(freq2 < start){
+ ch = start * 32;
+ }
+ akc6955_set_userband(start, end, ch, mode3k);
}
void set_userband(void)
{
unsigned int from,to;
unsigned char c;
- unsigned char p;
+ unsigned char pp;
unsigned char mode3k;
char cc;
c = c - charcode_1 + 1;
}
if(c >= USER_BAND_NUM) return;
- if(fm != 0){
- from = fm_usrbands[c].start * 80 + 3000; // 32*25/10
- to = fm_usrbands[c].stop * 80 + 3000;
+
+ if(setup.fm != 0){
+ from = setup.fm_usrbands[c].start * 80 + 3000; // 32*25/10
+ to = setup.fm_usrbands[c].stop * 80 + 3000;
_CLS();
_LOCATE(0,0);
+ _LOCATE(0,0);
printstr("FM#");
print_numeric_nosupress(c, 1);
+ _LOCATE(0,1);
printstr(" From:");
from = read_numeric(from, 5, 7, 1);
- _LOCATE(6,1);
- printstr("To:");
+ _LOCATE(0,1);
+ printstr(" To: ");
to = read_numeric(to, 5, 7, 1);
- fm_usrbands[c].start = (from - 3000) / 80;
- fm_usrbands[c].stop = (to - 3000) / 80;
- fm_usrbands[c].freq = from * 80 + 3000;
- fm_userbandnum = c;
+ setup.fm_usrbands[c].start = (from - 3000) / 80;
+ setup.fm_usrbands[c].stop = (to - 3000) / 80;
+ setup.fm_usrbands[c].freq = from * 80 + 3000;
+ setup.fm_userbandnum = c;
} else {
- mode3k = am_usrbands[c].mode3k;
- p = 96; // 3*32
- if(mode3k == 0) p = 160; // 5*32
- from = am_usrbands[c].start * p;
- to = am_usrbands[c].stop * p;
+ mode3k = setup.am_usrbands[c].mode3k;
+ pp = 96; // 3*32
+ if(mode3k == 0) pp = 160; // 5*32
+ from = setup.am_usrbands[c].start * pp;
+ to = setup.am_usrbands[c].stop * pp;
_CLS();
_LOCATE(0,0);
printstr("AM#");
printstr("0=3k 1=5k");
cc = pollkey_single();
if(cc == charcode_0){
- p = 96;
+ pp = 96;
mode3k = 0xff;
} else if(cc = charcode_1) {
- p = 160;
+ pp = 160;
mode3k = 0;
}
_CLS();
_LOCATE(0,0);
printstr("AM#");
print_numeric_nosupress(c, 1);
+ _LOCATE(0,1);
printstr(" From:");
from = read_numeric(from, 5, 7, 1);
- _LOCATE(6, 1);
- printstr(" To:");
+ _LOCATE(0,1);
+ printstr(" To: ");
to = read_numeric(to, 5, 7, 1);
- am_usrbands[c].start = from / p;
- am_usrbands[c].stop = to / p;
- am_usrbands[c].mode3k = mode3k;
- am_usrbands[c].freq = from * p;
- am_userbandnum = c;
+ setup.am_usrbands[c].start = from / pp;
+ setup.am_usrbands[c].stop = to / pp;
+ setup.am_usrbands[c].mode3k = mode3k;
+ setup.am_usrbands[c].freq = from * pp;
+ setup.am_userbandnum = c;
}
call_userband(c);
+ _CLS();
}
void input_userband(void)
{
unsigned char c;
do{
- _CLS();
- _LOCATE(0,0);
- printstr("User Band");
- _LOCATE(0,1);
- printstr(" #");
- c = pollkey_single();
+ c = printhelp_2lines("User Band", " #");
- if((c >= charcode_a) && (c <= charcode_f)){
- break;
- }
- if(c == charcode_0) {
- _PUTCHAR('0');
- if(fm != 0){
- fm_userbandnum = 0;
- } else {
- am_userbandnum = 0;
- }
- call_userband(0);
- } else {
- c = c - charcode_1 + 1;
- if(c < USER_BAND_NUM) {
- _PUTCHAR(c + '0');
- if(fm != 0){
- fm_userbandnum = c;
+
+ if((c >= charcode_a) && (c <= charcode_f)){
+ break;
+ }
+ if(c == charcode_0) {
+ _PUTCHAR('0');
+ if(setup.fm != 0){
+ setup.fm_userbandnum = 0;
+ } else {
+ setup.am_userbandnum = 0;
+ }
+ call_userband(0);
+ } else {
+ c = c - charcode_1 + 1;
+ if(c < USER_BAND_NUM) {
+ _PUTCHAR(c + '0');
+ if(setup.fm != 0){
+ setup.fm_userbandnum = c;
} else {
- am_userbandnum = c;
+ setup.am_userbandnum = c;
}
call_userband(c);
}
- }
- idle(ui_idlecount);
+ }
+ idle(setup.ui_idlecount);
} while(1);
_CLS();
}
-unsigned char printhelp_2lines(char *l1, char *l2)
-{
- _CLS();
- _LOCATE(0,0);
- printstr(l1);
- _LOCATE(0,1);
- printstr(l2);
- _HOME();
- return pollkey_single();
-}
-
-unsigned char numeric_help(void)
-{
- unsigned char c;
- c = printhelp_2lines("On numeric input", " ");
- if(c == charcode_f) return c;
- c = printhelp_2lines("0-9: Numeric", "f: enter");
- if(c == charcode_f) return c;
- c = printhelp_2lines("a: Delete", "b: Reset value");
- if(c == charcode_f) return c;
- c = printhelp_2lines("d: Left", "e: Right");
- if(c == charcode_f) return c;
- c = printhelp_2lines("Press any key", " to continue.");
- return c;
-}
-
-void mainmenu_help(void)
-{
- unsigned char c;
-
- do {
- c = printhelp_2lines("Help", "F=exit any=continue");
- if(c == charcode_f) return;
- c = printhelp_2lines("0: Setup", "1: Reserve");
- if(c == charcode_f) return;
- c = printhelp_2lines("2: Band", "3: Freq");
- if(c == charcode_f) return;
- c = printhelp_2lines("4: Reserve", "5: Scan");
- if(c == charcode_f) return;
- c = printhelp_2lines("6: Gain", "7: Volume");
- if(c == charcode_f) return;
- c = printhelp_2lines("8: FM Wide/Narrow", "9: NF");
- if(c == charcode_f) return;
- c = printhelp_2lines("a: PowOFF", "b: Cancel");
- if(c == charcode_f) return;
- c = printhelp_2lines("c: Set user", "d: Input user");
- if(c == charcode_f) return;
- c = printhelp_2lines("e: AM/FM", "f: (Exit) Help");
- if(c == charcode_f) return;
- c = numeric_help();
- if(c == charcode_f) return;
-
- } while(1);
-}
-
-void updown_help(void)
-{
- unsigned char c;
-
- do {
- c = printhelp_2lines("Help", "F=exit any=continue");
- if(c == charcode_f) return;
- c = printhelp_2lines("5: Menu", " ");
- if(c == charcode_f) return;
- c = printhelp_2lines("1: Slow Down", "3: Slow Up");
- if(c == charcode_f) return;
- c = printhelp_2lines("4: Down", "6: Up");
- if(c == charcode_f) return;
- c = printhelp_2lines("7: Fast Down", "9: Fast Up");
- if(c == charcode_f) return;
- c = printhelp_2lines("2: Band Down", "8: Band Up");
- if(c == charcode_f) return;
- c = printhelp_2lines("0: Mode3K", " ");
- if(c == charcode_f) return;
- c = printhelp_2lines("a: AM/FM", "b: Volume");
- if(c == charcode_f) return;
- c = printhelp_2lines("c: Scan", "d: Stereo mode");
- if(c == charcode_f) return;
- c = printhelp_2lines("e: Backlight", "f: (Exit) Help");
- if(c == charcode_f) return;
- c = numeric_help();
- if(c == charcode_f) return;
- } while(1);
-}
void menu_poweroff(void)
{
void setup_akc6955(void)
{
- akc6955_chg_fm(fm); // Set to AM
-
- if(fm == 0) {
- akc6955_set_amband(amband);
- if(amband == AKC6955_BAND_AMUSER) call_userband(am_userbandnum);
- amfreq = amfreq_bank[amband];
- akc6955_set_freq(amfreq);
+ akc6955_writecmd(AKC6955_POWER, 0xc0); // You musto *not* mute, set b2 to '0".
+ akc6955_writecmd(AKC6955_VOLUME, 0xc0); // You must select to radio(b1 = '0).
+ if(setup.fm == 0) {
+ akc6955_set_amband(setup.amband);
+ if(setup.amband == AKC6955_BAND_AMUSER) call_userband(setup.am_userbandnum);
+ setup.amfreq = setup.amfreq_bank[setup.amband];
+ akc6955_chg_fm(0, setup.amfreq); // Set to AM
+ akc6955_set_freq(setup.amfreq);
} else {
- akc6955_set_fmband(fmband);
- if(fmband == AKC6955_BAND_FMUSER) call_userband(fm_userbandnum);
- fmfreq = fmfreq_bank[fmband];
- akc6955_set_freq(fmfreq);
+ akc6955_set_fmband(setup.fmband);
+ if(setup.fmband == AKC6955_BAND_FMUSER) call_userband(setup.fm_userbandnum);
+ setup.fmfreq = setup.fmfreq_bank[setup.fmband];
+ akc6955_chg_fm(0xff, setup.fmfreq); // Set to AM
+ akc6955_set_freq(setup.fmfreq);
}// Dummy, TBS (954KHz)
- //akc6955_set_power(0xff); // Power ON
+ akc6955_set_power(0xff); // Power ON
akc6955_setvolume(36); // Temporally
- akc6955_writecmd(AKC6955_THRESH, threshold);
- akc6955_set_lowboost(lowboost);
+ akc6955_set_thresh_fmcnr(setup.threshold_fmcnr);
+ akc6955_set_thresh_amcnr(setup.threshold_amcnr);
+ akc6955_set_thresh_width(setup.threshold_width);
+ akc6955_set_thresh_fmstereo(setup.threshold_fmstereo);
+ akc6955_setvolumemode(0);
+ akc6955_set_lowboost(setup.lowboost);
set_stereomode();
}
}
}
-void setup_help(void)
-{
- unsigned char c;
-
- do {
- c = printhelp_2lines("Help", "F=exit any=continue");
- if(c == charcode_f) return;
- c = printhelp_2lines("0: Power OFF", "C: Save status");
- if(c == charcode_f) return;
- c = printhelp_2lines("d: Reset default", "E: BL time");
- if(c == charcode_f) return;
- c = printhelp_2lines("A: Load", "2: Threshold");
- if(c == charcode_f) return;
- c = printhelp_2lines("3: Reserve", "4: Reserve");
- if(c == charcode_f) return;
- c = printhelp_2lines("6: Reserve", "7: Reserve");
- if(c == charcode_f) return;
- c = printhelp_2lines("8: Reserve", "9: Reserve");
- if(c == charcode_f) return;
- c = printhelp_2lines("5: Cancel", "f: (Exit) Help");
- if(c == charcode_f) return;
- c = numeric_help();
- if(c == charcode_f) return;
- } while(1);
-
-}
void setup_menu(void)
{
unsigned char c;
+ unsigned int val;
c = printhelp_2lines("Setup F=HELP", "5=Return");
switch(c){
- case charcode_f:
- setup_help();
+ case charcode_3:
+ _CLS();
+ _LOCATE(0,0);
+ printstr("BL Level:");
+ val = read_numeric(setup.backlight_level, 3, 0,1);
+ if(val > 255) val = 255;
+ if(val < 10) val = 15;
+ setup.backlight_level = (unsigned char)val;
+ break;
+ case charcode_4:
+ _CLS();
+ _LOCATE(0,0);
+ printstr("FM Bandwidth:");
+ akc6955_get_fmbandwidth(val);
+ val = read_numeric(val, 1, 0, 1) & 3;
+ setup.fmbandwidth = (unsigned char)val;
+ akc6955_set_fmbandwidth(setup.fmbandwidth);
break;
case charcode_5:
break;
+ case charcode_7:
+ _CLS();
+ _LOCATE(0,0);
+ printstr("FM-CNR threshold:");
+ val = setup.threshold_fmcnr;
+ val = read_numeric(val, 1, 0, 1);
+ akc6955_set_thresh_fmcnr((unsigned char)val);
+ break;
+ case charcode_8:
+ _CLS();
+ _LOCATE(0,0);
+ printstr("AM-CNR threshold:");
+ val = setup.threshold_amcnr;
+ val = read_numeric(val, 1, 0, 1);
+ akc6955_set_thresh_amcnr((unsigned char)val);
+ break;
+ case charcode_9:
+ _CLS();
+ _LOCATE(0,0);
+ printstr("Stereo threshold:");
+ val = setup.threshold_fmstereo;
+ val = read_numeric(val, 1, 0, 1);
+ akc6955_set_thresh_fmstereo((unsigned char)val);
+ break;
case charcode_0:
menu_poweroff();
break;
- case charcode_c:
- menu_save();
- break;
case charcode_a:
menu_load();
break;
+ case charcode_c:
+ menu_save();
+ break;
case charcode_d:
setdefault();
break;
case charcode_e:
+ _CLS();
+ _LOCATE(0,0);
+ printstr("BL Long:");
+ val = read_numeric(setup.backlight_long, 3, 0,1);
+ if(val > 999) val = 999;
+ setup.backlight_long = val;
+ break;
+ case charcode_f:
+ setup_help();
break;
- case charcode_2:
- set_thresh();
+ default:
break;
}
}
void main_menu(void)
{
unsigned char c;
- unsigned char p;
- unsigned char n;
- _CLS();
- _HOME();
- _LOCATE(0,0);
- printstr("Menu:F=HELP");
- _LOCATE(0,1);
- printstr("B=CANCEL");
- do {
- n = pollkeys(pollkeybuf, 60, 1);
- } while(n == 0);
- p = 0;
- c = pollkeybuf[0];
- if(c == charcode_f){
- mainmenu_help();
- // HELP
- } else if(c == charcode_b){
- // Cancel
- } else if(c == charcode_1){
-
- } else if(c == charcode_2){
+ unsigned int val;
+
+ printhelp_2lines("Menu:F=HELP", "B=CANCEL");
+ c = pollkey_single(); // 1012ms
+ if(c == charcode_1){
// Band
setband_direct();
} else if(c == charcode_3){
// Band
setfreq_direct();
- } else if(c == charcode_a){
- menu_poweroff();
- } else if(c == charcode_5){
- scan_start();
+ }else if(c == charcode_4){
+ on_call_userfreq();
+ // Scan
+ }else if(c == charcode_5){
+ // scan_start();
+ // Scan
+ }else if(c == charcode_6){
+ on_set_userfreq();
// Scan
- } else if(c == charcode_6){
-
- } else if(c == charcode_4){
-
} else if(c == charcode_7){
+ menu_poweroff();
+ } else if(c == charcode_8){
// Set volume
set_volume();
- } else if(c == charcode_8){
- // Set sensitivity
- fmbandwidth++;
- if(fmbandwidth > 3) fmbandwidth = 0;
- akc6955_set_fmbandwidth(fmbandwidth);
} else if(c == charcode_9){
+ _CLS();
+ _LOCATE(0,0);
+ printstr("Sig width:");
+ val = setup.threshold_width;
+ val = read_numeric(val, 1, 0, 1);
+ akc6955_set_thresh_width((unsigned char)val);
// Set NF
} else if(c == charcode_0){
// Setup Menu
setup_menu();
- } else if(c == charcode_d){
- // Call userband
- input_userband();
+ } else if(c == charcode_a){
+ toggle_amfm();
} else if(c == charcode_c){
// Set userband
set_userband();
- } else if(c == charcode_e){
- toggle_amfm();
+ } else if(c == charcode_d){
+ // Call userband
+ input_userband();
+ } else if (c == charcode_f){
+ mainmenu_help();
+ // HELP
}
_CLS();
_LOCATE(0,0);