Use function table. Simplify logic

Size: 60364 -> 60220
This commit is contained in:
Juan Antonio
2023-12-25 01:11:43 +01:00
committed by egzumer
parent 7a7010da55
commit cbf4a7c140
4 changed files with 30 additions and 47 deletions

View File

@@ -409,36 +409,28 @@ Skip:
}
}
static void HandlePowerSave()
{
if (!gRxIdleMode) {
CheckForIncoming();
}
}
static void (*HandleFunction_fn_table[])(void) = {
[FUNCTION_FOREGROUND] = &CheckForIncoming,
[FUNCTION_TRANSMIT] = &FUNCTION_NOP,
[FUNCTION_MONITOR] = &FUNCTION_NOP,
[FUNCTION_INCOMING] = &HandleIncoming,
[FUNCTION_RECEIVE] = &HandleReceive,
[FUNCTION_POWER_SAVE] = &HandlePowerSave,
[FUNCTION_BAND_SCOPE] = &FUNCTION_NOP,
};
static_assert(ARRAY_SIZE(HandleFunction_fn_table) == FUNCTION_N_ELEM);
static void HandleFunction(void)
{
switch (gCurrentFunction)
{
case FUNCTION_FOREGROUND:
CheckForIncoming();
break;
case FUNCTION_TRANSMIT:
break;
case FUNCTION_MONITOR:
break;
case FUNCTION_INCOMING:
HandleIncoming();
break;
case FUNCTION_RECEIVE:
HandleReceive();
break;
case FUNCTION_POWER_SAVE:
if (!gRxIdleMode)
CheckForIncoming();
break;
case FUNCTION_BAND_SCOPE:
break;
}
HandleFunction_fn_table[gCurrentFunction]();
}
void APP_StartListening(FUNCTION_Type_t function)