Add third list
This commit is contained in:
@@ -219,7 +219,7 @@ void ACTION_Scan(bool bRestart)
|
||||
}
|
||||
|
||||
// channel mode. Keep scanning but toggle between scan lists
|
||||
gEeprom.SCAN_LIST_DEFAULT = (gEeprom.SCAN_LIST_DEFAULT + 1) % 3;
|
||||
gEeprom.SCAN_LIST_DEFAULT = (gEeprom.SCAN_LIST_DEFAULT + 1) % 4;
|
||||
|
||||
// jump to the next channel
|
||||
CHFRSCANNER_Start(false, gScanStateDir);
|
||||
|
||||
@@ -17,6 +17,7 @@ uint32_t gScanRangeStop;
|
||||
typedef enum {
|
||||
SCAN_NEXT_CHAN_SCANLIST1 = 0,
|
||||
SCAN_NEXT_CHAN_SCANLIST2,
|
||||
SCAN_NEXT_CHAN_SCANLIST3,
|
||||
SCAN_NEXT_CHAN_DUAL_WATCH,
|
||||
SCAN_NEXT_CHAN_MR,
|
||||
SCAN_NEXT_NUM
|
||||
@@ -194,9 +195,10 @@ static void NextFreqChannel(void)
|
||||
static void NextMemChannel(void)
|
||||
{
|
||||
static unsigned int prev_mr_chan = 0;
|
||||
const bool enabled = (gEeprom.SCAN_LIST_DEFAULT < 2) ? gEeprom.SCAN_LIST_ENABLED[gEeprom.SCAN_LIST_DEFAULT] : true;
|
||||
const int chan1 = (gEeprom.SCAN_LIST_DEFAULT < 2) ? gEeprom.SCANLIST_PRIORITY_CH1[gEeprom.SCAN_LIST_DEFAULT] : -1;
|
||||
const int chan2 = (gEeprom.SCAN_LIST_DEFAULT < 2) ? gEeprom.SCANLIST_PRIORITY_CH2[gEeprom.SCAN_LIST_DEFAULT] : -1;
|
||||
const bool enabled = (gEeprom.SCAN_LIST_DEFAULT < 3) ? gEeprom.SCAN_LIST_ENABLED[gEeprom.SCAN_LIST_DEFAULT] : true;
|
||||
const int chan1 = -1;
|
||||
const int chan2 = -1;
|
||||
const int chan3 = -1;
|
||||
const unsigned int prev_chan = gNextMrChannel;
|
||||
unsigned int chan = 0;
|
||||
|
||||
@@ -228,7 +230,17 @@ static void NextMemChannel(void)
|
||||
}
|
||||
}
|
||||
[[fallthrough]];
|
||||
|
||||
case SCAN_NEXT_CHAN_SCANLIST3:
|
||||
if (chan3 >= 0)
|
||||
{
|
||||
if (RADIO_CheckValidChannel(chan3, false, 0))
|
||||
{
|
||||
currentScanList = SCAN_NEXT_CHAN_SCANLIST3;
|
||||
gNextMrChannel = chan3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
[[fallthrough]];
|
||||
// this bit doesn't yet work if the other VFO is a frequency
|
||||
case SCAN_NEXT_CHAN_DUAL_WATCH:
|
||||
// dual watch is enabled - include the other VFO in the scan
|
||||
@@ -255,7 +267,7 @@ static void NextMemChannel(void)
|
||||
|
||||
if (!enabled || chan == 0xff)
|
||||
{
|
||||
chan = RADIO_FindNextChannel(gNextMrChannel + gScanStateDir, gScanStateDir, (gEeprom.SCAN_LIST_DEFAULT < 2) ? true : false, gEeprom.SCAN_LIST_DEFAULT);
|
||||
chan = RADIO_FindNextChannel(gNextMrChannel + gScanStateDir, gScanStateDir, (gEeprom.SCAN_LIST_DEFAULT < 3) ? true : false, gEeprom.SCAN_LIST_DEFAULT);
|
||||
if (chan == 0xFF)
|
||||
{ // no valid channel found
|
||||
chan = MR_CHANNEL_FIRST;
|
||||
|
||||
24
app/main.c
24
app/main.c
@@ -59,11 +59,32 @@ static void toggle_chan_scanlist(void)
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
if (gTxVfo->SCANLIST1_PARTICIPATION ^ gTxVfo->SCANLIST2_PARTICIPATION){
|
||||
gTxVfo->SCANLIST2_PARTICIPATION = gTxVfo->SCANLIST1_PARTICIPATION;
|
||||
} else {
|
||||
gTxVfo->SCANLIST1_PARTICIPATION = !gTxVfo->SCANLIST1_PARTICIPATION;
|
||||
}
|
||||
*/
|
||||
|
||||
if(gTxVfo->SCANLIST1_PARTICIPATION == 1)
|
||||
{
|
||||
gTxVfo->SCANLIST1_PARTICIPATION = 0;
|
||||
gTxVfo->SCANLIST2_PARTICIPATION = 1;
|
||||
gTxVfo->SCANLIST3_PARTICIPATION = 0;
|
||||
}
|
||||
else if(gTxVfo->SCANLIST2_PARTICIPATION == 1)
|
||||
{
|
||||
gTxVfo->SCANLIST1_PARTICIPATION = 0;
|
||||
gTxVfo->SCANLIST2_PARTICIPATION = 0;
|
||||
gTxVfo->SCANLIST3_PARTICIPATION = 1;
|
||||
}
|
||||
else if(gTxVfo->SCANLIST3_PARTICIPATION == 1)
|
||||
{
|
||||
gTxVfo->SCANLIST1_PARTICIPATION = 1;
|
||||
gTxVfo->SCANLIST2_PARTICIPATION = 0;
|
||||
gTxVfo->SCANLIST3_PARTICIPATION = 0;
|
||||
}
|
||||
|
||||
SETTINGS_UpdateChannel(gTxVfo->CHANNEL_SAVE, gTxVfo, true, true, true);
|
||||
|
||||
@@ -547,12 +568,13 @@ static void MAIN_Key_MENU(bool bKeyPressed, bool bKeyHeld)
|
||||
if (bKeyPressed) { // long press MENU key
|
||||
|
||||
#ifdef ENABLE_FEAT_F4HWN
|
||||
if(gScanStateDir != SCAN_OFF && gEeprom.SCAN_LIST_DEFAULT < 2)
|
||||
if(gScanStateDir != SCAN_OFF && gEeprom.SCAN_LIST_DEFAULT < 3)
|
||||
{
|
||||
if(FUNCTION_IsRx())
|
||||
{
|
||||
gTxVfo->SCANLIST1_PARTICIPATION = 0;
|
||||
gTxVfo->SCANLIST2_PARTICIPATION = 0;
|
||||
gTxVfo->SCANLIST3_PARTICIPATION = 0;
|
||||
|
||||
SETTINGS_UpdateChannel(gTxVfo->CHANNEL_SAVE, gTxVfo, true, true, false);
|
||||
|
||||
|
||||
27
app/menu.c
27
app/menu.c
@@ -238,6 +238,7 @@ int MENU_GetLimits(uint8_t menu_id, int32_t *pMin, int32_t *pMax)
|
||||
case MENU_AUTOLK:
|
||||
case MENU_S_ADD1:
|
||||
case MENU_S_ADD2:
|
||||
case MENU_S_ADD3:
|
||||
case MENU_STE:
|
||||
case MENU_D_ST:
|
||||
#ifdef ENABLE_DTMF_CALLING
|
||||
@@ -293,6 +294,7 @@ int MENU_GetLimits(uint8_t menu_id, int32_t *pMin, int32_t *pMax)
|
||||
|
||||
case MENU_SLIST1:
|
||||
case MENU_SLIST2:
|
||||
case MENU_SLIST3:
|
||||
*pMin = -1;
|
||||
*pMax = MR_CHANNEL_LAST;
|
||||
break;
|
||||
@@ -309,7 +311,7 @@ int MENU_GetLimits(uint8_t menu_id, int32_t *pMin, int32_t *pMax)
|
||||
|
||||
case MENU_S_LIST:
|
||||
//*pMin = 0;
|
||||
*pMax = 2;
|
||||
*pMax = 3;
|
||||
break;
|
||||
|
||||
#ifdef ENABLE_DTMF_CALLING
|
||||
@@ -638,6 +640,13 @@ void MENU_AcceptSetting(void)
|
||||
gFlagResetVfos = true;
|
||||
return;
|
||||
|
||||
case MENU_S_ADD3:
|
||||
gTxVfo->SCANLIST3_PARTICIPATION = gSubMenuSelection;
|
||||
SETTINGS_UpdateChannel(gTxVfo->CHANNEL_SAVE, gTxVfo, true, false, true);
|
||||
gVfoConfigureMode = VFO_CONFIGURE;
|
||||
gFlagResetVfos = true;
|
||||
return;
|
||||
|
||||
case MENU_STE:
|
||||
gEeprom.TAIL_TONE_ELIMINATION = gSubMenuSelection;
|
||||
break;
|
||||
@@ -1087,6 +1096,10 @@ void MENU_ShowCurrentSetting(void)
|
||||
gSubMenuSelection = gTxVfo->SCANLIST2_PARTICIPATION;
|
||||
break;
|
||||
|
||||
case MENU_S_ADD3:
|
||||
gSubMenuSelection = gTxVfo->SCANLIST3_PARTICIPATION;
|
||||
break;
|
||||
|
||||
case MENU_STE:
|
||||
gSubMenuSelection = gEeprom.TAIL_TONE_ELIMINATION;
|
||||
break;
|
||||
@@ -1125,6 +1138,10 @@ void MENU_ShowCurrentSetting(void)
|
||||
gSubMenuSelection = RADIO_FindNextChannel(0, 1, true, 1);
|
||||
break;
|
||||
|
||||
case MENU_SLIST3:
|
||||
gSubMenuSelection = RADIO_FindNextChannel(0, 1, true, 2);
|
||||
break;
|
||||
|
||||
#ifdef ENABLE_ALARM
|
||||
case MENU_AL_MOD:
|
||||
gSubMenuSelection = gEeprom.ALARM_MODE;
|
||||
@@ -1804,10 +1821,16 @@ static void MENU_Key_UP_DOWN(bool bKeyPressed, bool bKeyHeld, int8_t Direction)
|
||||
bCheckScanList = false;
|
||||
break;
|
||||
|
||||
case MENU_SLIST3:
|
||||
bCheckScanList = true;
|
||||
VFO = 2;
|
||||
break;
|
||||
case MENU_SLIST2:
|
||||
bCheckScanList = true;
|
||||
VFO = 1;
|
||||
[[fallthrough]];
|
||||
break;
|
||||
case MENU_SLIST1:
|
||||
VFO = 0;
|
||||
bCheckScanList = true;
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user