From 653a00b89d7299b3b1d57802ded37236d8029cfd Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Thu, 21 Sep 2023 08:46:24 +0100 Subject: [PATCH] Fixed compander setting, .bat typo and started menulist unify --- app/menu.c | 84 +-------------------- audio.h | 180 ++++++++++++++++++++++---------------------- driver/bk4819.c | 14 +--- firmware | Bin 166292 -> 166044 bytes firmware.bin | Bin 51372 -> 51348 bytes firmware.packed.bin | Bin 51390 -> 51366 bytes helper/boot.c | 4 +- main.c | 21 ++++-- radio.c | 6 +- ui/menu.c | 179 +++++++++++++++++++++---------------------- ui/menu.h | 68 +++++++++-------- win_make.bat | 2 +- 12 files changed, 244 insertions(+), 314 deletions(-) diff --git a/app/menu.c b/app/menu.c index 6b406e1..ab03408 100644 --- a/app/menu.c +++ b/app/menu.c @@ -46,88 +46,6 @@ #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) #endif -#ifdef ENABLE_VOICE - static const VOICE_ID_t MenuVoices[] = - { - VOICE_ID_SQUELCH, // SQL - VOICE_ID_FREQUENCY_STEP, // STEP - VOICE_ID_POWER, // T-PWR - VOICE_ID_DCS, // R-DCS - VOICE_ID_CTCSS, // R-CTCS - VOICE_ID_DCS, // T-DCS - VOICE_ID_CTCSS, // T-CTCS - VOICE_ID_TX_OFFSET_FREQUENCY_DIRECTION, // T-DIR - VOICE_ID_TX_OFFSET_FREQUENCY, // T-OFFS - VOICE_ID_INVALID, // T-VFO - VOICE_ID_TRANSMIT_OVER_TIME, // T-TOUT - VOICE_ID_CHANNEL_BANDWIDTH, // W/N - VOICE_ID_SCRAMBLER_ON, // SCRAM - VOICE_ID_BUSY_LOCKOUT, // BUSYCL - VOICE_ID_MEMORY_CHANNEL, // CH-SAV - VOICE_ID_DELETE_CHANNEL, // CH-DEL - VOICE_ID_INVALID, // CH-EDIT - VOICE_ID_INVALID, // CH-DIS - VOICE_ID_SAVE_MODE, // BATSAV - VOICE_ID_VOX, // VOX - VOICE_ID_INVALID, // BACKLT - VOICE_ID_DUAL_STANDBY, // DUALRX - VOICE_ID_BEEP_PROMPT, // BEEP - #ifdef ENABLE_VOICE - VOICE_ID_VOICE_PROMPT, // VOICE - #endif - VOICE_ID_INVALID, // SC-REV - VOICE_ID_INVALID, // KEYLOC - VOICE_ID_INVALID, // S-ADD1 - VOICE_ID_INVALID, // S-ADD2 - VOICE_ID_INVALID, // STE - VOICE_ID_INVALID, // RP-STE - VOICE_ID_INVALID, // MIC - VOICE_ID_INVALID, // MICBAR - #ifdef ENABLE_COMPANDER - VOICE_ID_INVALID, // COMPND - #endif - VOICE_ID_INVALID, // 1-CALL - VOICE_ID_INVALID, // SLIST - VOICE_ID_INVALID, // SLIST1 - VOICE_ID_INVALID, // SLIST2 - #ifdef ENABLE_ALARM - VOICE_ID_INVALID, // AL-MOD - #endif - VOICE_ID_ANI_CODE, // ANI-ID - VOICE_ID_INVALID, // UPCODE - VOICE_ID_INVALID, // DWCODE - VOICE_ID_INVALID, // D-ST - VOICE_ID_INVALID, // D-RSP - VOICE_ID_INVALID, // D-HOLD - VOICE_ID_INVALID, // D-PRE - VOICE_ID_INVALID, // PTT-ID - VOICE_ID_INVALID, // D-DCD - VOICE_ID_INVALID, // D-LIST - VOICE_ID_INVALID, // D-LIVE - VOICE_ID_INVALID, // PONMSG - VOICE_ID_INVALID, // ROGER - VOICE_ID_INVALID, // BATVOL - VOICE_ID_INVALID, // BATTXT - VOICE_ID_INVALID, // MODE - #ifdef ENABLE_NOAA - VOICE_ID_INVALID, // NOAA-S - #endif - VOICE_ID_INITIALISATION, // RESET - - // hidden items - - VOICE_ID_INVALID, // F-LOCK - VOICE_ID_INVALID, // TX-200 - VOICE_ID_INVALID, // TX-350 - VOICE_ID_INVALID, // TX-500 - VOICE_ID_INVALID, // 350-EN - VOICE_ID_INVALID, // SCR-EN - - VOICE_ID_INVALID, // TX-EN - VOICE_ID_INVALID // F-CALI - }; -#endif - void MENU_StartCssScan(int8_t Direction) { gCssScanMode = CSS_SCAN_MODE_SCANNING; @@ -1329,7 +1247,7 @@ static void MENU_Key_MENU(const bool bKeyPressed, const bool bKeyHeld) { #ifdef ENABLE_VOICE if (gMenuCursor != MENU_SCR) - gAnotherVoiceID = MenuVoices[gMenuCursor]; + gAnotherVoiceID = MenuList[gMenuCursor].voice_id; #endif #if 1 diff --git a/audio.h b/audio.h index bb4027b..f6fcab8 100644 --- a/audio.h +++ b/audio.h @@ -37,98 +37,97 @@ extern BEEP_Type_t gBeepToPlay; void AUDIO_PlayBeep(BEEP_Type_t Beep); -#ifdef ENABLE_VOICE +enum +{ + VOICE_ID_CHI_BASE = 0x10U, + VOICE_ID_ENG_BASE = 0x60U, +}; - enum - { - VOICE_ID_CHI_BASE = 0x10U, - VOICE_ID_ENG_BASE = 0x60U, - }; - - enum VOICE_ID_t - { - VOICE_ID_0 = 0x00U, - VOICE_ID_1 = 0x01U, - VOICE_ID_2 = 0x02U, - VOICE_ID_3 = 0x03U, - VOICE_ID_4 = 0x04U, - VOICE_ID_5 = 0x05U, - VOICE_ID_6 = 0x06U, - VOICE_ID_7 = 0x07U, - VOICE_ID_8 = 0x08U, - VOICE_ID_9 = 0x09U, - VOICE_ID_10 = 0x0AU, - VOICE_ID_100 = 0x0BU, - VOICE_ID_WELCOME = 0x0CU, - VOICE_ID_LOCK = 0x0DU, - VOICE_ID_UNLOCK = 0x0EU, - VOICE_ID_SCANNING_BEGIN = 0x0FU, - VOICE_ID_SCANNING_STOP = 0x10U, - VOICE_ID_SCRAMBLER_ON = 0x11U, - VOICE_ID_SCRAMBLER_OFF = 0x12U, - VOICE_ID_FUNCTION = 0x13U, - VOICE_ID_CTCSS = 0x14U, - VOICE_ID_DCS = 0x15U, - VOICE_ID_POWER = 0x16U, - VOICE_ID_SAVE_MODE = 0x17U, - VOICE_ID_MEMORY_CHANNEL = 0x18U, - VOICE_ID_DELETE_CHANNEL = 0x19U, - VOICE_ID_FREQUENCY_STEP = 0x1AU, - VOICE_ID_SQUELCH = 0x1BU, - VOICE_ID_TRANSMIT_OVER_TIME = 0x1CU, - VOICE_ID_BACKLIGHT_SELECTION = 0x1DU, - VOICE_ID_VOX = 0x1EU, - VOICE_ID_TX_OFFSET_FREQUENCY_DIRECTION = 0x1FU, - VOICE_ID_TX_OFFSET_FREQUENCY = 0x20U, - VOICE_ID_TRANSMITING_MEMORY = 0x21U, - VOICE_ID_RECEIVING_MEMORY = 0x22U, - VOICE_ID_EMERGENCY_CALL = 0x23U, - VOICE_ID_LOW_VOLTAGE = 0x24U, - VOICE_ID_CHANNEL_MODE = 0x25U, - VOICE_ID_FREQUENCY_MODE = 0x26U, - VOICE_ID_VOICE_PROMPT = 0x27U, - VOICE_ID_BAND_SELECTION = 0x28U, - VOICE_ID_DUAL_STANDBY = 0x29U, - VOICE_ID_CHANNEL_BANDWIDTH = 0x2AU, - VOICE_ID_OPTIONAL_SIGNAL = 0x2BU, - VOICE_ID_MUTE_MODE = 0x2CU, - VOICE_ID_BUSY_LOCKOUT = 0x2DU, - VOICE_ID_BEEP_PROMPT = 0x2EU, - VOICE_ID_ANI_CODE = 0x2FU, - VOICE_ID_INITIALISATION = 0x30U, - VOICE_ID_CONFIRM = 0x31U, - VOICE_ID_CANCEL = 0x32U, - VOICE_ID_ON = 0x33U, - VOICE_ID_OFF = 0x34U, - VOICE_ID_2_TONE = 0x35U, - VOICE_ID_5_TONE = 0x36U, - VOICE_ID_DIGITAL_SIGNAL = 0x37U, - VOICE_ID_REPEATER = 0x38U, - VOICE_ID_MENU = 0x39U, - VOICE_ID_11 = 0x3AU, - VOICE_ID_12 = 0x3BU, - VOICE_ID_13 = 0x3CU, - VOICE_ID_14 = 0x3DU, - VOICE_ID_15 = 0x3EU, - VOICE_ID_16 = 0x3FU, - VOICE_ID_17 = 0x40U, - VOICE_ID_18 = 0x41U, - VOICE_ID_19 = 0x42U, - VOICE_ID_20 = 0x43U, - VOICE_ID_30 = 0x44U, - VOICE_ID_40 = 0x45U, - VOICE_ID_50 = 0x46U, - VOICE_ID_60 = 0x47U, - VOICE_ID_70 = 0x48U, - VOICE_ID_80 = 0x49U, - VOICE_ID_90 = 0x4AU, - VOICE_ID_END = 0x4BU, - - VOICE_ID_INVALID = 0xFFU, - }; - - typedef enum VOICE_ID_t VOICE_ID_t; +enum VOICE_ID_t +{ + VOICE_ID_0 = 0x00U, + VOICE_ID_1 = 0x01U, + VOICE_ID_2 = 0x02U, + VOICE_ID_3 = 0x03U, + VOICE_ID_4 = 0x04U, + VOICE_ID_5 = 0x05U, + VOICE_ID_6 = 0x06U, + VOICE_ID_7 = 0x07U, + VOICE_ID_8 = 0x08U, + VOICE_ID_9 = 0x09U, + VOICE_ID_10 = 0x0AU, + VOICE_ID_100 = 0x0BU, + VOICE_ID_WELCOME = 0x0CU, + VOICE_ID_LOCK = 0x0DU, + VOICE_ID_UNLOCK = 0x0EU, + VOICE_ID_SCANNING_BEGIN = 0x0FU, + VOICE_ID_SCANNING_STOP = 0x10U, + VOICE_ID_SCRAMBLER_ON = 0x11U, + VOICE_ID_SCRAMBLER_OFF = 0x12U, + VOICE_ID_FUNCTION = 0x13U, + VOICE_ID_CTCSS = 0x14U, + VOICE_ID_DCS = 0x15U, + VOICE_ID_POWER = 0x16U, + VOICE_ID_SAVE_MODE = 0x17U, + VOICE_ID_MEMORY_CHANNEL = 0x18U, + VOICE_ID_DELETE_CHANNEL = 0x19U, + VOICE_ID_FREQUENCY_STEP = 0x1AU, + VOICE_ID_SQUELCH = 0x1BU, + VOICE_ID_TRANSMIT_OVER_TIME = 0x1CU, + VOICE_ID_BACKLIGHT_SELECTION = 0x1DU, + VOICE_ID_VOX = 0x1EU, + VOICE_ID_TX_OFFSET_FREQUENCY_DIRECTION = 0x1FU, + VOICE_ID_TX_OFFSET_FREQUENCY = 0x20U, + VOICE_ID_TRANSMITING_MEMORY = 0x21U, + VOICE_ID_RECEIVING_MEMORY = 0x22U, + VOICE_ID_EMERGENCY_CALL = 0x23U, + VOICE_ID_LOW_VOLTAGE = 0x24U, + VOICE_ID_CHANNEL_MODE = 0x25U, + VOICE_ID_FREQUENCY_MODE = 0x26U, + VOICE_ID_VOICE_PROMPT = 0x27U, + VOICE_ID_BAND_SELECTION = 0x28U, + VOICE_ID_DUAL_STANDBY = 0x29U, + VOICE_ID_CHANNEL_BANDWIDTH = 0x2AU, + VOICE_ID_OPTIONAL_SIGNAL = 0x2BU, + VOICE_ID_MUTE_MODE = 0x2CU, + VOICE_ID_BUSY_LOCKOUT = 0x2DU, + VOICE_ID_BEEP_PROMPT = 0x2EU, + VOICE_ID_ANI_CODE = 0x2FU, + VOICE_ID_INITIALISATION = 0x30U, + VOICE_ID_CONFIRM = 0x31U, + VOICE_ID_CANCEL = 0x32U, + VOICE_ID_ON = 0x33U, + VOICE_ID_OFF = 0x34U, + VOICE_ID_2_TONE = 0x35U, + VOICE_ID_5_TONE = 0x36U, + VOICE_ID_DIGITAL_SIGNAL = 0x37U, + VOICE_ID_REPEATER = 0x38U, + VOICE_ID_MENU = 0x39U, + VOICE_ID_11 = 0x3AU, + VOICE_ID_12 = 0x3BU, + VOICE_ID_13 = 0x3CU, + VOICE_ID_14 = 0x3DU, + VOICE_ID_15 = 0x3EU, + VOICE_ID_16 = 0x3FU, + VOICE_ID_17 = 0x40U, + VOICE_ID_18 = 0x41U, + VOICE_ID_19 = 0x42U, + VOICE_ID_20 = 0x43U, + VOICE_ID_30 = 0x44U, + VOICE_ID_40 = 0x45U, + VOICE_ID_50 = 0x46U, + VOICE_ID_60 = 0x47U, + VOICE_ID_70 = 0x48U, + VOICE_ID_80 = 0x49U, + VOICE_ID_90 = 0x4AU, + VOICE_ID_END = 0x4BU, + + VOICE_ID_INVALID = 0xFFU, +}; + +typedef enum VOICE_ID_t VOICE_ID_t; +#ifdef ENABLE_VOICE extern VOICE_ID_t gVoiceID[8]; extern uint8_t gVoiceReadIndex; extern uint8_t gVoiceWriteIndex; @@ -141,7 +140,6 @@ void AUDIO_PlayBeep(BEEP_Type_t Beep); void AUDIO_SetVoiceID(uint8_t Index, VOICE_ID_t VoiceID); uint8_t AUDIO_SetDigitVoice(uint8_t Index, uint16_t Value); void AUDIO_PlayQueuedVoice(void); - #endif #endif diff --git a/driver/bk4819.c b/driver/bk4819.c index 3d784e3..4a10a0d 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -764,8 +764,6 @@ bool BK4819_CompanderEnabled(void) void BK4819_SetCompander(const unsigned int mode) { - uint16_t val; - // mode 0 .. OFF // mode 1 .. TX // mode 2 .. RX @@ -773,14 +771,12 @@ void BK4819_SetCompander(const unsigned int mode) if (mode == 0) { // disable - const uint16_t Value = BK4819_ReadRegister(BK4819_REG_31); - BK4819_WriteRegister(BK4819_REG_31, Value & ~(1u < 3)); + BK4819_WriteRegister(BK4819_REG_31, BK4819_ReadRegister(BK4819_REG_31) & ~(1u < 3)); return; } // enable - val = BK4819_ReadRegister(BK4819_REG_31); - BK4819_WriteRegister(BK4819_REG_31, val | (1u < 3)); + BK4819_WriteRegister(BK4819_REG_31, BK4819_ReadRegister(BK4819_REG_31) | (1u < 3)); // set the compressor ratio // @@ -791,8 +787,7 @@ void BK4819_SetCompander(const unsigned int mode) // 11 = 4:1 // const uint16_t compress_ratio = (mode == 1 || mode >= 3) ? 3 : 0; // 4:1 - val = BK4819_ReadRegister(BK4819_REG_29); - BK4819_WriteRegister(BK4819_REG_29, (val & ~(3u < 14)) | (compress_ratio < 14)); + BK4819_WriteRegister(BK4819_REG_29, (BK4819_ReadRegister(BK4819_REG_29) & ~(3u < 14)) | (compress_ratio < 14)); // set the expander ratio // @@ -803,8 +798,7 @@ void BK4819_SetCompander(const unsigned int mode) // 11 = 1:4 // const uint16_t expand_ratio = (mode >= 2) ? 3 : 0; // 1:4 - val = BK4819_ReadRegister(BK4819_REG_28); - BK4819_WriteRegister(BK4819_REG_28, (val & ~(3u < 14)) | (expand_ratio < 14)); + BK4819_WriteRegister(BK4819_REG_28, (BK4819_ReadRegister(BK4819_REG_28) & ~(3u < 14)) | (expand_ratio < 14)); } void BK4819_DisableVox(void) diff --git a/firmware b/firmware index 64c0976743eb546a1785f3c4b34ba0c43d1e8082..50f6d92fa3d9aa635af1f5c7f54aaf6eaae6d1e7 100644 GIT binary patch delta 20509 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

$ZTS?+pbKS8Mv0N| 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 delta 20746 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 diff --git a/firmware.bin b/firmware.bin index b2bf6ab21dc7ff398b40dfea433a00d373206ca4..e9b94e122c187b5d08756940e0be985ec5cfdae9 100644 GIT binary patch delta 13139 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 delta 13111 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 diff --git a/firmware.packed.bin b/firmware.packed.bin index 04c67d761f6a7cccc5aaf2eb0c6710d0007a3618..380bca92479374a5d015a173a3bbd2abab1b0b13 100644 GIT binary patch delta 25437 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 Y|I@M9R6XKE#N`=F#uF+YUT1&)4{4P`WB>pF delta 25462 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%0A~O1e?uj&) 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 diff --git a/helper/boot.c b/helper/boot.c index d0d45b1..651d0c2 100644 --- a/helper/boot.c +++ b/helper/boot.c @@ -68,8 +68,8 @@ void BOOT_ProcessMode(BOOT_Mode_t Mode) { // enable all the menu items gMenuListCount = 0; - //while (MenuList[gMenuListCount][0] != 0) - while (MenuList[gMenuListCount] != NULL) +// while (MenuList[gMenuListCount].name != NULL) + while (MenuList[gMenuListCount].name[0] != '\0') gMenuListCount++; gMenuCursor = MENU_350TX; diff --git a/main.c b/main.c index 2c9071f..c3a4cb9 100644 --- a/main.c +++ b/main.c @@ -96,13 +96,20 @@ void Main(void) BATTERY_GetReadings(false); - // count the number of menu list items - gMenuListCount = 0; -// while (MenuList[gMenuListCount][0] != 0) - while (MenuList[gMenuListCount] != NULL) - gMenuListCount++; - gMenuListCount -= 8; // disable the last few menu items .. they are the normally 'hidden' menu items - + { // count the number of menu list items + unsigned int hidden = 0; + gMenuListCount = 0; +// while (MenuList[gMenuListCount].name != NULL) + while (MenuList[gMenuListCount].name[0] != '\0') + { + if (MenuList[++gMenuListCount].hidden != 0) + hidden++; + } + // disable the items marked hidden + //gMenuListCount -= 8; + gMenuListCount -= hidden; + } + boot_counter_10ms = 250; // 2.5 sec if (!gChargingWithTypeC && !gBatteryDisplayLevel) diff --git a/radio.c b/radio.c index b110374..b7e3750 100644 --- a/radio.c +++ b/radio.c @@ -711,7 +711,8 @@ void RADIO_SetupRegisters(bool bSwitchToFunction0) BK4819_DisableVox(); #ifdef ENABLE_COMPANDER - BK4819_SetCompander(!gRxVfo->IsAM ? gRxVfo->Compander : 0); + // RX expander + BK4819_SetCompander((!gRxVfo->IsAM && gRxVfo->Compander >= 2) ? gRxVfo->Compander : 0); #endif #if 0 @@ -811,7 +812,8 @@ void RADIO_SetTxParameters(void) BK4819_SetFrequency(gCurrentVfo->pTX->Frequency); #ifdef ENABLE_COMPANDER - BK4819_SetCompander(!gCurrentVfo->IsAM ? gCurrentVfo->Compander : 0); + // TX compressor + BK4819_SetCompander((!gRxVfo->IsAM && (gRxVfo->Compander == 1 || gRxVfo->Compander >= 3)) ? gRxVfo->Compander : 0); #endif BK4819_PrepareTransmit(); diff --git a/ui/menu.c b/ui/menu.c index d97e422..b810dab 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -39,89 +39,89 @@ #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) #endif -const char *MenuList[] = +const t_menu_item MenuList[] = { - "SQL", - "STEP", - "T-PWR", // was "TXP" - "R-DCS", // was "R_DCS" - "R-CTCS", // was "R_CTCS" - "T-DCS", // was "T_DCS" - "T-CTCS", // was "T_CTCS" - "T-DIR", // was "SFT_D" - "T-OFFS", // was "OFFSET" - "T-VFO", // was "WX" - "T-TOUT", // was "TOT" - "W/N", - "SCRAM", // was "SCR" - "BUSYCL", // was "BCL" - "CH-SAV", // was "MEM-CH" - "CH-DEL", // was "DEL-CH" - "CH-NAM", - "CH-DIS", // was "MDF" - "BATSAV", // was "SAVE" - "VOX", - "BACKLT", // was "ABR" - "DUALRX", // was "TDR" - "BEEP", - #ifdef ENABLE_VOICE - "VOICE", - #endif - "SC-REV", - "KEYLOC", // was "AUTOLk" - "S-ADD1", - "S-ADD2", - "STE", - "RP-STE", - "MIC", - #ifdef ENABLE_AUDIO_BAR - "MICBAR", - #endif - #ifdef ENABLE_COMPANDER - "COMPND", - #endif - "1-CALL", - "SLIST", - "SLIST1", - "SLIST2", - #ifdef ENABLE_ALARM - "AL-MOD", - #endif - "ANI-ID", - "UPCODE", - "DWCODE", - "D-ST", - "D-RSP", - "D-HOLD", - "D-PRE", - "PTT-ID", - "D-DCD", - "D-LIST", - "D-LIVE", // live DTMF decoder - "PONMSG", - "ROGER", - "BATVOL", // was "VOL" - "BATTXT", - "MODE", // was "AM" - #ifdef ENABLE_NOAA - "NOAA-S", - #endif - "RESET", // might be better to move this to the hidden menu items ? + {"SQL", 0, VOICE_ID_SQUELCH }, + {"STEP", 0, VOICE_ID_FREQUENCY_STEP }, + {"T-PWR", 0, VOICE_ID_POWER }, // was "TXP" + {"R-DCS", 0, VOICE_ID_DCS }, // was "R_DCS" + {"R-CTCS", 0, VOICE_ID_CTCSS }, // was "R_CTCS" + {"T-DCS", 0, VOICE_ID_DCS }, // was "T_DCS" + {"T-CTCS", 0, VOICE_ID_CTCSS }, // was "T_CTCS" + {"T-DIR", 0, VOICE_ID_TX_OFFSET_FREQUENCY_DIRECTION}, // was "SFT_D" + {"T-OFFS", 0, VOICE_ID_TX_OFFSET_FREQUENCY }, // was "OFFSET" + {"T-VFO", 0, VOICE_ID_INVALID }, // was "WX" + {"T-TOUT", 0, VOICE_ID_TRANSMIT_OVER_TIME }, // was "TOT" + {"W/N", 0, VOICE_ID_CHANNEL_BANDWIDTH }, + {"SCRAM", 0, VOICE_ID_SCRAMBLER_ON }, // was "SCR" + {"BUSYCL", 0, VOICE_ID_BUSY_LOCKOUT }, // was "BCL" + {"CH-SAV", 0, VOICE_ID_MEMORY_CHANNEL }, // was "MEM-CH" + {"CH-DEL", 0, VOICE_ID_DELETE_CHANNEL }, // was "DEL-CH" + {"CH-NAM", 0, VOICE_ID_INVALID }, + {"CH-DIS", 0, VOICE_ID_INVALID }, // was "MDF" + {"BATSAV", 0, VOICE_ID_SAVE_MODE }, // was "SAVE" + {"VOX", 0, VOICE_ID_VOX }, + {"BACKLT", 0, VOICE_ID_INVALID }, // was "ABR" + {"DUALRX", 0, VOICE_ID_DUAL_STANDBY }, // was "TDR" + {"BEEP", 0, VOICE_ID_BEEP_PROMPT }, +#ifdef ENABLE_VOICE + {"VOICE", 0, VOICE_ID_VOICE_PROMPT }, +#endif + {"SC-REV", 0, VOICE_ID_INVALID }, + {"KEYLOC", 0, VOICE_ID_INVALID }, // was "AUTOLk" + {"S-ADD1", 0, VOICE_ID_INVALID }, + {"S-ADD2", 0, VOICE_ID_INVALID }, + {"STE", 0, VOICE_ID_INVALID }, + {"RP-STE", 0, VOICE_ID_INVALID }, + {"MIC", 0, VOICE_ID_INVALID }, +#ifdef ENABLE_AUDIO_BAR + {"MICBAR", 0, VOICE_ID_INVALID }, +#endif +#ifdef ENABLE_COMPANDER + {"COMPND", 0, VOICE_ID_INVALID }, +#endif + {"1-CALL", 0, VOICE_ID_INVALID }, + {"SLIST", 0, VOICE_ID_INVALID }, + {"SLIST1", 0, VOICE_ID_INVALID }, + {"SLIST2", 0, VOICE_ID_INVALID }, +#ifdef ENABLE_ALARM + "AL-MOD", 0, VOICE_ID_INVALID }, +#endif + {"ANI-ID", 0, VOICE_ID_ANI_CODE }, + {"UPCODE", 0, VOICE_ID_INVALID }, + {"DWCODE", 0, VOICE_ID_INVALID }, + {"D-ST", 0, VOICE_ID_INVALID }, + {"D-RSP", 0, VOICE_ID_INVALID }, + {"D-HOLD", 0, VOICE_ID_INVALID }, + {"D-PRE", 0, VOICE_ID_INVALID }, + {"PTT-ID", 0, VOICE_ID_INVALID }, + {"D-DCD", 0, VOICE_ID_INVALID }, + {"D-LIST", 0, VOICE_ID_INVALID }, + {"D-LIVE", 0, VOICE_ID_INVALID }, // live DTMF decoder + {"PONMSG", 0, VOICE_ID_INVALID }, + {"ROGER", 0, VOICE_ID_INVALID }, + {"BATVOL", 0, VOICE_ID_INVALID }, // was "VOL" + {"BATTXT", 0, VOICE_ID_INVALID }, + {"MODE", 0, VOICE_ID_INVALID }, // was "AM" +#ifdef ENABLE_NOAA + {"NOAA-S", 0, VOICE_ID_INVALID }, +#endif + {"RESET", 0, VOICE_ID_INITIALISATION }, // might be better to move this to the hidden menu items ? // hidden menu items from here on // enabled if pressing both the PTT and upper side button at power-on - "F-LOCK", - "TX-200", // was "200TX" - "TX-350", // was "350TX" - "TX-500", // was "500TX" - "350-EN", // was "350EN" - "SCR-EN", // was "SCREN" + {"F-LOCK", 1, VOICE_ID_INVALID }, + {"TX-200", 1, VOICE_ID_INVALID }, // was "200TX" + {"TX-350", 1, VOICE_ID_INVALID }, // was "350TX" + {"TX-500", 1, VOICE_ID_INVALID }, // was "500TX" + {"350-EN", 1, VOICE_ID_INVALID }, // was "350EN" + {"SCR-EN", 1, VOICE_ID_INVALID }, // was "SCREN" - "TX-EN", // enable TX - "F-CALI", // reference xtal calibration + {"TX-EN", 1, VOICE_ID_INVALID }, // enable TX + {"F-CALI", 1, VOICE_ID_INVALID }, // reference xtal calibration - NULL // end of list - DO NOT delete this + {"", 0, VOICE_ID_INVALID } // end of list - DO NOT delete this }; const char gSubMenu_TXP[3][5] = @@ -278,7 +278,7 @@ int8_t gMenuScrollDirection; int32_t gSubMenuSelection; // edit box -char edit_original[17]; // a copy of the text before editing +char edit_original[17]; // a copy of the text before editing so that we can easily test for changes/difference char edit[17]; int edit_index; @@ -293,28 +293,31 @@ void UI_DisplayMenu(void) for (i = 0; i < 3; i++) if (gMenuCursor > 0 || i > 0) if ((gMenuListCount - 1) != gMenuCursor || i != 2) - UI_PrintString(MenuList[gMenuCursor + i - 1], 0, 0, i * 2, 8); + UI_PrintString(MenuList[gMenuCursor + i - 1].name, 0, 0, i * 2, 8); + // invert the pixels for (i = 0; i < 48; i++) { gFrameBuffer[2][i] ^= 0xFF; gFrameBuffer[3][i] ^= 0xFF; } - // draw vertical separating line + // draw vertical separating dotted line for (i = 0; i < 6; i++) gFrameBuffer[i][49] = 0xAA; + // draw the menu index number/count sprintf(String, "%2u.%u", 1 + gMenuCursor, gMenuListCount); UI_PrintStringSmall(String, 8, 0, 6); + // draw the little marker if (gIsInSubMenu) memmove(gFrameBuffer[0] + 50, BITMAP_CurrentIndicator, sizeof(BITMAP_CurrentIndicator)); memset(String, 0, sizeof(String)); bool already_printed = false; - + switch (gMenuCursor) { case MENU_SQL: @@ -333,7 +336,7 @@ void UI_DisplayMenu(void) strcpy(String, gSubMenu_OFF_ON[gSubMenuSelection]); break; #endif - + case MENU_STEP: sprintf(String, "%d.%02uKHz", StepFrequencyTable[gSubMenuSelection] / 100, abs(StepFrequencyTable[gSubMenuSelection]) % 100); break; @@ -387,7 +390,7 @@ void UI_DisplayMenu(void) } UI_PrintString("MHz", 50, 127, 3, 8); - + already_printed = true; break; @@ -446,7 +449,7 @@ void UI_DisplayMenu(void) case MENU_DEL_CH: { const bool valid = RADIO_CheckValidChannel(gSubMenuSelection, false, 0); - + UI_GenerateChannelStringEx(String, valid, gSubMenuSelection); UI_PrintString(String, 50, 127, 0, 8); @@ -467,7 +470,7 @@ void UI_DisplayMenu(void) already_printed = true; break; } - + case MENU_MEM_NAME: { const bool valid = RADIO_CheckValidChannel(gSubMenuSelection, false, 0); @@ -498,7 +501,7 @@ void UI_DisplayMenu(void) UI_PrintString("^", 50 + (8 * edit_index), 0, 4, 8); // show the cursor // UI_PrintStringSmall("^", 50 + (8 * edit_index), 0, 4); } - + if (!gAskForConfirmation) { // show the frequency so that the user knows the channels frequency sprintf(String, "%03u.%05u", Info.Frequency / 100000, Info.Frequency % 100000); @@ -509,11 +512,11 @@ void UI_DisplayMenu(void) // UI_PrintStringSmall(String, 50, 127, 5); } } - + already_printed = true; break; } - + case MENU_SAVE: strcpy(String, gSubMenu_SAVE[gSubMenuSelection]); break; @@ -659,7 +662,7 @@ void UI_DisplayMenu(void) if (!already_printed) UI_PrintString(String, 50, 127, 2, 8); - + if (gMenuCursor == MENU_SLIST1 || gMenuCursor == MENU_SLIST2) { i = (gMenuCursor == MENU_SLIST1) ? 0 : 1; diff --git a/ui/menu.h b/ui/menu.h index 39eea78..92dd2d9 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -20,6 +20,14 @@ #include #include +#include "audio.h" // VOICE_ID_t + +typedef struct { + const char name[7]; // menu display only has room for 6 characters + uint8_t hidden; + VOICE_ID_t voice_id; +} t_menu_item; + enum { MENU_SQL = 0, @@ -102,43 +110,43 @@ enum MENU_F_CALI // reference xtal calibration }; -extern const char *MenuList[]; +extern const t_menu_item MenuList[]; -extern const char gSubMenu_TXP[3][5]; -extern const char gSubMenu_SFT_D[3][4]; -extern const char gSubMenu_W_N[2][7]; -extern const char gSubMenu_OFF_ON[2][4]; -extern const char gSubMenu_SAVE[5][4]; -extern const char gSubMenu_CHAN[3][7]; +extern const char gSubMenu_TXP[3][5]; +extern const char gSubMenu_SFT_D[3][4]; +extern const char gSubMenu_W_N[2][7]; +extern const char gSubMenu_OFF_ON[2][4]; +extern const char gSubMenu_SAVE[5][4]; +extern const char gSubMenu_CHAN[3][7]; #ifdef ENABLE_VOICE - extern const char gSubMenu_VOICE[3][4]; + extern const char gSubMenu_VOICE[3][4]; #endif -extern const char gSubMenu_SC_REV[3][3]; -extern const char gSubMenu_MDF[4][8]; +extern const char gSubMenu_SC_REV[3][3]; +extern const char gSubMenu_MDF[4][8]; #ifdef ENABLE_ALARM - extern const char gSubMenu_AL_MOD[2][5]; + extern const char gSubMenu_AL_MOD[2][5]; #endif -extern const char gSubMenu_D_RSP[4][6]; -extern const char gSubMenu_PTT_ID[4][5]; -extern const char gSubMenu_PONMSG[4][5]; -extern const char gSubMenu_ROGER[3][6]; -extern const char gSubMenu_RESET[2][4]; -extern const char gSubMenu_F_LOCK[6][4]; -extern const char gSubMenu_BACK_LIGHT[6][7]; +extern const char gSubMenu_D_RSP[4][6]; +extern const char gSubMenu_PTT_ID[4][5]; +extern const char gSubMenu_PONMSG[4][5]; +extern const char gSubMenu_ROGER[3][6]; +extern const char gSubMenu_RESET[2][4]; +extern const char gSubMenu_F_LOCK[6][4]; +extern const char gSubMenu_BACK_LIGHT[6][7]; #ifdef ENABLE_COMPANDER - extern const char gSubMenu_Compand[4][6]; + extern const char gSubMenu_Compand[4][6]; #endif -extern const char gSubMenu_BAT_TXT[3][8]; - -extern bool gIsInSubMenu; - -extern uint8_t gMenuCursor; -extern int8_t gMenuScrollDirection; -extern int32_t gSubMenuSelection; - -extern char edit_original[17]; -extern char edit[17]; -extern int edit_index; +extern const char gSubMenu_BAT_TXT[3][8]; + +extern bool gIsInSubMenu; + +extern uint8_t gMenuCursor; +extern int8_t gMenuScrollDirection; +extern int32_t gSubMenuSelection; + +extern char edit_original[17]; +extern char edit[17]; +extern int edit_index; void UI_DisplayMenu(void); diff --git a/win_make.bat b/win_make.bat index 370a5ba..17a4a04 100644 --- a/win_make.bat +++ b/win_make.bat @@ -13,7 +13,7 @@ del /S /Q *.o >nul 2>nul del /S /Q *.d >nul 2>nul :: If you have python installed, you can create a 'packed' .bin from the compiled firmware.bin file. -:: The Quangsheng windows upload-to-radio program requires a 'packed' .bin file. +:: The Quansheng windows upload-to-radio program requires a 'packed' .bin file. :: :: if you don't have python installed, then comment out the python line(s) below, in which case you'll need :: to upload the standard unpacked firmware.bin file another way.