feat(bw): add 'Set Screen' special function to B&W radios (#5589)

This commit is contained in:
philmoz
2024-10-17 15:58:34 +10:00
committed by GitHub
parent 200518cc9a
commit e8224b8f08
46 changed files with 183 additions and 43 deletions
+13 -1
View File
@@ -261,7 +261,6 @@ bool CustomFunctionData::isFuncAvailable(const int index, const ModelData * mode
((index >= FuncRangeCheckInternalModule && index <= FuncBindExternalModule) && !fw->getCapability(DangerousFunctions)) ||
((index >= FuncAdjustGV1 && index <= FuncAdjustGVLast) && !fw->getCapability(Gvars)) ||
((index == FuncDisableTouch) && !IS_HORUS_OR_TARANIS(fw->getBoard())) ||
((index == FuncSetScreen && !Boards::getCapability(fw->getBoard(), Board::HasColorLcd))) ||
((index == FuncDisableAudioAmp && !Boards::getCapability(fw->getBoard(), Board::HasAudioMuteGPIO))) ||
((index == FuncRGBLed && !Boards::getCapability(fw->getBoard(), Board::HasLedStripGPIO))) ||
((index == FuncLCDtoVideo && !IS_FATFISH_F16(fw->getBoard()))) ||
@@ -424,6 +423,19 @@ AbstractStaticItemModel * CustomFunctionData::repeatLuaItemModel()
return mdl;
}
// static
AbstractStaticItemModel * CustomFunctionData::repeatSetScreenItemModel()
{
AbstractStaticItemModel * mdl = new AbstractStaticItemModel();
mdl->setName("customfunctiondata.repeatSetScreen");
mdl->appendToItemList(repeatToString(-1, false), -1);
mdl->appendToItemList(repeatToString(0, false), 0);
mdl->loadItemList();
return mdl;
}
// static
AbstractStaticItemModel * CustomFunctionData::playSoundItemModel()
{
@@ -141,6 +141,7 @@ class CustomFunctionData {
static QString gvarAdjustModeToString(const int value);
static AbstractStaticItemModel * repeatItemModel();
static AbstractStaticItemModel * repeatLuaItemModel();
static AbstractStaticItemModel * repeatSetScreenItemModel();
static AbstractStaticItemModel * playSoundItemModel();
static AbstractStaticItemModel * harpicItemModel();
static AbstractStaticItemModel * gvarAdjustModeItemModel();
+19 -6
View File
@@ -41,6 +41,7 @@ CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData * model,
harpicId = tabModelFactory->registerItemModel(CustomFunctionData::harpicItemModel());
repeatId = tabModelFactory->registerItemModel(CustomFunctionData::repeatItemModel());
repeatLuaId = tabModelFactory->registerItemModel(CustomFunctionData::repeatLuaItemModel());
repeatSetScreenId = tabModelFactory->registerItemModel(CustomFunctionData::repeatSetScreenItemModel());
gvarAdjustModeId = tabModelFactory->registerItemModel(CustomFunctionData::gvarAdjustModeItemModel());
tabFilterFactory = new FilteredItemModelFactory();
@@ -209,6 +210,8 @@ CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData * model,
fswtchRepeat[i]->setProperty("index", i);
if (functions[i].func == FuncPlayScript || functions[i].func == FuncRGBLed)
fswtchRepeat[i]->setModel(tabModelFactory->getItemModel(repeatLuaId));
else if (functions[i].func == FuncSetScreen && !Boards::getCapability(firmware->getBoard(), Board::HasColorLcd))
fswtchRepeat[i]->setModel(tabModelFactory->getItemModel(repeatSetScreenId));
else
fswtchRepeat[i]->setModel(tabModelFactory->getItemModel(repeatId));
fswtchRepeat[i]->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed);
@@ -550,14 +553,24 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
}
else if (func == FuncSetScreen) {
if (modified)
if (modified) {
cfn.param = (uint8_t)fswtchParam[i]->value();
cfn.repeatParam = fswtchRepeat[i]->currentData().toInt();
}
fswtchParam[i]->setDecimals(0);
fswtchParam[i]->setMinimum(1);
if(model)
fswtchParam[i]->setMaximum(model->getCustomScreensCount());
else
fswtchParam[i]->setMaximum(1);
if (Boards::getCapability(firmware->getBoard(), Board::HasColorLcd)) {
fswtchParam[i]->setMinimum(1);
if(model)
fswtchParam[i]->setMaximum(model->getCustomScreensCount());
else
fswtchParam[i]->setMaximum(1);
} else {
fswtchParam[i]->setMinimum(0);
fswtchParam[i]->setMaximum(4);
widgetsMask |= CUSTOM_FUNCTION_REPEAT;
fswtchRepeat[i]->setModel(tabModelFactory->getItemModel(repeatSetScreenId));
fswtchRepeat[i]->setCurrentIndex(fswtchRepeat[i]->findData(cfn.repeatParam));
}
fswtchParam[i]->setSingleStep(1);
fswtchParam[i]->setValue(cfn.param);
widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM;
@@ -89,6 +89,7 @@ class CustomFunctionsPanel : public GenericPanel
int harpicId;
int repeatId;
int repeatLuaId;
int repeatSetScreenId;
int gvarAdjustModeId;
QSet<QString> tracksSet;
+54
View File
@@ -68,6 +68,9 @@ Functions cfn_sorted[] = {
/* Push CS */ FUNC_PUSH_CUST_SWITCH,
#endif
/* RGB LED 灯 */ FUNC_RGB_LED,
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
/* Vario传感器 */ FUNC_VARIO,
#elif defined(TRANSLATIONS_CZ)
#if defined(COLORLCD)
@@ -100,6 +103,9 @@ Functions cfn_sorted[] = {
#endif
/* Reset */ FUNC_RESET,
/* RGB světlo */ FUNC_RGB_LED,
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
/* Snímek LCD */ FUNC_SCREENSHOT,
#if defined(DEBUG)
/* Test */ FUNC_TEST,
@@ -141,6 +147,9 @@ Functions cfn_sorted[] = {
/* RGB led */ FUNC_RGB_LED,
/* Ræs tilstand */ FUNC_RACING_MODE,
/* SD Log */ FUNC_LOGS,
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
#if defined(OLED_SCREEN)
/* Skarphed */ FUNC_BACKLIGHT,
#endif
@@ -194,6 +203,9 @@ Functions cfn_sorted[] = {
/* SetFailsafe */ FUNC_SET_FAILSAFE,
#if defined(COLORLCD)
/* Set Main Screen */ FUNC_SET_SCREEN,
#endif
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
/* Setze */ FUNC_SET_TIMER,
/* Spiel Töne */ FUNC_PLAY_SOUND,
@@ -244,6 +256,9 @@ Functions cfn_sorted[] = {
#if defined(COLORLCD)
/* Set Main Screen */ FUNC_SET_SCREEN,
#endif
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
#if defined(DEBUG)
/* Test */ FUNC_TEST,
#endif
@@ -288,6 +303,9 @@ Functions cfn_sorted[] = {
#if defined(COLORLCD)
/* Set Main Screen */ FUNC_SET_SCREEN,
#endif
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
#if defined(DEBUG)
/* Test */ FUNC_TEST,
#endif
@@ -332,6 +350,9 @@ Functions cfn_sorted[] = {
#endif
/* RGB leds */ FUNC_RGB_LED,
/* Script Lua */ FUNC_PLAY_SCRIPT,
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
#if defined(DEBUG)
/* Test */ FUNC_TEST,
#endif
@@ -367,6 +388,9 @@ Functions cfn_sorted[] = {
/* SD Logs */ FUNC_LOGS,
/* Set */ FUNC_SET_TIMER,
/* SetFailsafe */ FUNC_SET_FAILSAFE,
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
#if defined(DEBUG)
/* Test */ FUNC_TEST,
#endif
@@ -418,6 +442,9 @@ Functions cfn_sorted[] = {
/* Script Lua */ FUNC_PLAY_SCRIPT,
/* Set */ FUNC_SET_TIMER,
/* SetFailsafe */ FUNC_SET_FAILSAFE,
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
#if defined(COLORLCD)
/* Setta Schermo Princ. */ FUNC_SET_SCREEN,
#endif
@@ -444,6 +471,9 @@ Functions cfn_sorted[] = {
#endif
/* RGB LED */ FUNC_RGB_LED,
/* SDログ出力 */ FUNC_LOGS,
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
/* オーディオアンプ OFF */ FUNC_DISABLE_AUDIO_AMP,
/* サウンド再生 */ FUNC_PLAY_SOUND,
/* ダイヤル */ FUNC_VOLUME,
@@ -512,6 +542,9 @@ Functions cfn_sorted[] = {
#if defined(COLORLCD)
/* Set Main Screen */ FUNC_SET_SCREEN,
#endif
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
#if defined(DEBUG)
/* Test */ FUNC_TEST,
#endif
@@ -551,6 +584,9 @@ Functions cfn_sorted[] = {
/* RGB ledy */ FUNC_RGB_LED,
#if defined(COLORLCD)
/* Set Main Screen */ FUNC_SET_SCREEN,
#endif
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
/* SetFailsafe */ FUNC_SET_FAILSAFE,
/* SkryptyLua */ FUNC_PLAY_SCRIPT,
@@ -598,6 +634,9 @@ Functions cfn_sorted[] = {
/* Rep Valor */ FUNC_PLAY_VALUE,
/* Reset */ FUNC_RESET,
/* Script Lua */ FUNC_PLAY_SCRIPT,
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
/* Sobrescrv */ FUNC_OVERRIDE_CHANNEL,
#if defined(DEBUG)
/* Test */ FUNC_TEST,
@@ -621,6 +660,9 @@ Functions cfn_sorted[] = {
#endif
/* RGB подсветка */ FUNC_RGB_LED,
/* SD логи */ FUNC_LOGS,
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
/* Авар управ */ FUNC_SET_FAILSAFE,
/* Варио */ FUNC_VARIO,
/* Вибро */ FUNC_HAPTIC,
@@ -679,6 +721,9 @@ Functions cfn_sorted[] = {
/* Pausa Musik */ FUNC_BACKGND_MUSIC_PAUSE,
/* Range check */ FUNC_RANGECHECK,
/* RGB ledljus */ FUNC_RGB_LED,
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
/* Skärmbild */ FUNC_SCREENSHOT,
/* Spara trimmar */ FUNC_INSTANT_TRIM,
/* Spela ljud */ FUNC_PLAY_SOUND,
@@ -705,6 +750,9 @@ Functions cfn_sorted[] = {
/* Push CS */ FUNC_PUSH_CUST_SWITCH,
#endif
/* RGB led燈 */ FUNC_RGB_LED,
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
/* Vario傳感器 */ FUNC_VARIO,
#if defined(OLED_SCREEN)
/* 亮度 */ FUNC_BACKLIGHT,
@@ -789,6 +837,9 @@ Functions cfn_sorted[] = {
#endif
/* RGB leds */ FUNC_RGB_LED,
/* SD лог */ FUNC_LOGS,
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
#else
/* Adjust */ FUNC_ADJUST_GVAR,
/* Audio Amp Off */ FUNC_DISABLE_AUDIO_AMP,
@@ -828,6 +879,9 @@ Functions cfn_sorted[] = {
#if defined(COLORLCD)
/* Set Main Screen */ FUNC_SET_SCREEN,
#endif
#if !defined(COLORLCD)
/* Set Screen */ FUNC_SET_SCREEN,
#endif
#if defined(DEBUG)
/* Test */ FUNC_TEST,
#endif
+1 -1
View File
@@ -681,8 +681,8 @@ enum Functions {
FUNC_RACING_MODE,
#if defined(COLORLCD) || defined(CFN_ONLY)
FUNC_DISABLE_TOUCH,
FUNC_SET_SCREEN,
#endif
FUNC_SET_SCREEN,
FUNC_DISABLE_AUDIO_AMP,
FUNC_RGB_LED,
#if defined(VIDEO_SWITCH) || defined(CFN_ONLY)
+1 -1
View File
@@ -845,7 +845,7 @@ enum TelemetryViews {
TELEMETRY_VIEW_MAX = TELEMETRY_CUSTOM_SCREEN_4
};
extern uint8_t s_frsky_view;
extern uint8_t selectedTelemView;
constexpr uint32_t EARTH_RADIUS = 6371009;
+6 -3
View File
@@ -428,16 +428,19 @@ void evalFunctions(CustomFunctionData * functions, CustomFunctionsContext & func
newActiveFunctions |= (1u << FUNCTION_DISABLE_AUDIO_AMP);
break;
#endif
#if defined(COLORLCD)
case FUNC_SET_SCREEN:
if (isRepeatDelayElapsed(functions, functionsContext, i)) {
TRACE("SET VIEW %d", (CFN_PARAM(cfn)));
#if defined(COLORLCD)
int8_t screenNumber = max(0, CFN_PARAM(cfn) - 1);
setRequestedMainView(screenNumber);
mainRequestFlags |= (1u << REQUEST_MAIN_VIEW);
#else
extern void showTelemScreen(uint8_t index);
showTelemScreen(CFN_PARAM(cfn));
#endif
}
break;
#endif
#if defined(VIDEO_SWITCH)
case FUNC_LCD_TO_VIDEO:
switchToVideo();
@@ -559,9 +562,9 @@ const char* funcGetLabel(uint8_t func)
#if defined(COLORLCD)
case FUNC_DISABLE_TOUCH:
return STR_SF_DISABLE_TOUCH;
#endif
case FUNC_SET_SCREEN:
return STR_SF_SET_SCREEN;
#endif
#if defined(AUDIO_MUTE_GPIO)
case FUNC_DISABLE_AUDIO_AMP:
return STR_SF_DISABLE_AUDIO_AMP;
@@ -326,6 +326,11 @@ void menuSpecialFunctions(event_t event, CustomFunctionData * functions, CustomF
lcdDrawTextAtIndex(MODEL_SPECIAL_FUNC_3RD_COLUMN, y, STR_FUNCSOUNDS, val_displayed, attr);
}
#endif
else if (func == FUNC_SET_SCREEN) {
val_min = 0;
val_max = 4;
lcdDrawNumber(MODEL_SPECIAL_FUNC_3RD_COLUMN + 3*FW, y, val_displayed, attr|LEFT);
}
#if defined(HAPTIC)
else if (func == FUNC_HAPTIC) {
val_max = 3;
@@ -496,7 +501,11 @@ void menuSpecialFunctions(event_t event, CustomFunctionData * functions, CustomF
else {
lcdDrawNumber(MODEL_SPECIAL_FUNC_4TH_COLUMN+2+FW, y, CFN_PLAY_REPEAT(cfn)*CFN_PLAY_REPEAT_MUL, RIGHT | attr);
}
if (active) CFN_PLAY_REPEAT(cfn) = checkIncDec(event, CFN_PLAY_REPEAT(cfn)==CFN_PLAY_REPEAT_NOSTART?-1:CFN_PLAY_REPEAT(cfn), -1, 60/CFN_PLAY_REPEAT_MUL, eeFlags);
if (active)
CFN_PLAY_REPEAT(cfn) = checkIncDec(event, CFN_PLAY_REPEAT(cfn)==CFN_PLAY_REPEAT_NOSTART?-1:CFN_PLAY_REPEAT(cfn),
-1,
(func == FUNC_SET_SCREEN ? 0 : 60/CFN_PLAY_REPEAT_MUL),
eeFlags);
}
}
else if (attr) {
+6 -6
View File
@@ -23,7 +23,7 @@
#define STATUS_BAR_Y (7*FH+1)
uint8_t s_frsky_view = 0;
uint8_t selectedTelemView = 0;
#define BAR_LEFT 25
#define BAR_WIDTH 100
@@ -163,7 +163,7 @@ bool displayCustomTelemetryScreen(uint8_t index)
{
TelemetryScreenData & screen = g_model.screens[index];
if (IS_BARS_SCREEN(s_frsky_view)) {
if (IS_BARS_SCREEN(selectedTelemView)) {
return displayGaugesTelemetryScreen(screen);
}
@@ -175,19 +175,19 @@ bool displayCustomTelemetryScreen(uint8_t index)
bool displayTelemetryScreen()
{
#if defined(LUA)
if (TELEMETRY_SCREEN_TYPE(s_frsky_view) == TELEMETRY_SCREEN_TYPE_SCRIPT) {
if (TELEMETRY_SCREEN_TYPE(selectedTelemView) == TELEMETRY_SCREEN_TYPE_SCRIPT) {
return isTelemetryScriptAvailable(); // contents will be drawn by Lua Task
}
#endif
if (TELEMETRY_SCREEN_TYPE(s_frsky_view) == TELEMETRY_SCREEN_TYPE_NONE) {
if (TELEMETRY_SCREEN_TYPE(selectedTelemView) == TELEMETRY_SCREEN_TYPE_NONE) {
return false;
}
drawTelemetryTopBar();
if (s_frsky_view < MAX_TELEMETRY_SCREENS) {
return displayCustomTelemetryScreen(s_frsky_view);
if (selectedTelemView < MAX_TELEMETRY_SCREENS) {
return displayCustomTelemetryScreen(selectedTelemView);
}
return true;
@@ -307,6 +307,11 @@ void menuSpecialFunctions(event_t event, CustomFunctionData * functions, CustomF
val_max = AU_SPECIAL_SOUND_LAST-AU_SPECIAL_SOUND_FIRST-1;
lcdDrawTextAtIndex(MODEL_SPECIAL_FUNC_3RD_COLUMN, y, STR_FUNCSOUNDS, val_displayed, attr);
}
else if (func == FUNC_SET_SCREEN) {
val_min = 0;
val_max = 4;
lcdDrawNumber(MODEL_SPECIAL_FUNC_3RD_COLUMN + 3*FW, y, val_displayed, attr|LEFT);
}
#if defined(HAPTIC)
else if (func == FUNC_HAPTIC) {
val_max = 3;
@@ -447,7 +452,11 @@ void menuSpecialFunctions(event_t event, CustomFunctionData * functions, CustomF
lcdDrawNumber(MODEL_SPECIAL_FUNC_4TH_COLUMN+2+FW, y, CFN_PLAY_REPEAT(cfn)*CFN_PLAY_REPEAT_MUL, attr|RIGHT);
lcdDrawChar(MODEL_SPECIAL_FUNC_4TH_COLUMN+2+FW, y, 's', attr);
}
if (active) CFN_PLAY_REPEAT(cfn) = checkIncDec(event, CFN_PLAY_REPEAT(cfn)==CFN_PLAY_REPEAT_NOSTART?-1:CFN_PLAY_REPEAT(cfn), -1, 60/CFN_PLAY_REPEAT_MUL, eeFlags);
if (active)
CFN_PLAY_REPEAT(cfn) = checkIncDec(event, CFN_PLAY_REPEAT(cfn)==CFN_PLAY_REPEAT_NOSTART?-1:CFN_PLAY_REPEAT(cfn),
-1,
(func == FUNC_SET_SCREEN ? 0 : 60/CFN_PLAY_REPEAT_MUL),
eeFlags);
}
}
else if (attr) {
+6 -6
View File
@@ -23,7 +23,7 @@
#define STATUS_BAR_Y (7*FH+1)
uint8_t s_frsky_view = 0;
uint8_t selectedTelemView = 0;
#define BAR_LEFT 30
#define BAR_WIDTH 152
@@ -167,7 +167,7 @@ void displayCustomTelemetryScreen(uint8_t index)
{
TelemetryScreenData & screen = g_model.screens[index];
if (IS_BARS_SCREEN(s_frsky_view)) {
if (IS_BARS_SCREEN(selectedTelemView)) {
return displayGaugesTelemetryScreen(screen);
}
@@ -177,19 +177,19 @@ void displayCustomTelemetryScreen(uint8_t index)
bool displayTelemetryScreen()
{
#if defined(LUA)
if (TELEMETRY_SCREEN_TYPE(s_frsky_view) == TELEMETRY_SCREEN_TYPE_SCRIPT) {
if (TELEMETRY_SCREEN_TYPE(selectedTelemView) == TELEMETRY_SCREEN_TYPE_SCRIPT) {
return isTelemetryScriptAvailable(); // contents will be drawn by Lua Task
}
#endif
if (TELEMETRY_SCREEN_TYPE(s_frsky_view) == TELEMETRY_SCREEN_TYPE_NONE) {
if (TELEMETRY_SCREEN_TYPE(selectedTelemView) == TELEMETRY_SCREEN_TYPE_NONE) {
return false;
}
drawTelemetryTopBar();
if (s_frsky_view < MAX_TELEMETRY_SCREENS) {
displayCustomTelemetryScreen(s_frsky_view);
if (selectedTelemView < MAX_TELEMETRY_SCREENS) {
displayCustomTelemetryScreen(selectedTelemView);
}
return true;
+20 -5
View File
@@ -53,7 +53,7 @@ void menuViewTelemetry(event_t event)
{
enum NavigationDirection direction = NAVIGATION_DIRECTION_NONE;
if (event == EVT_KEY_BREAK(KEY_EXIT) && TELEMETRY_SCREEN_TYPE(s_frsky_view) != TELEMETRY_SCREEN_TYPE_SCRIPT) {
if (event == EVT_KEY_BREAK(KEY_EXIT) && TELEMETRY_SCREEN_TYPE(selectedTelemView) != TELEMETRY_SCREEN_TYPE_SCRIPT) {
chainMenu(menuMainView);
}
#if defined(LUA)
@@ -75,12 +75,12 @@ void menuViewTelemetry(event_t event)
for (int i=0; i<=TELEMETRY_SCREEN_TYPE_MAX; i++) {
if (direction == NAVIGATION_DIRECTION_UP) {
if (s_frsky_view-- == 0)
s_frsky_view = TELEMETRY_VIEW_MAX;
if (selectedTelemView-- == 0)
selectedTelemView = TELEMETRY_VIEW_MAX;
}
else if (direction == NAVIGATION_DIRECTION_DOWN) {
if (s_frsky_view++ == TELEMETRY_VIEW_MAX)
s_frsky_view = 0;
if (selectedTelemView++ == TELEMETRY_VIEW_MAX)
selectedTelemView = 0;
}
else {
direction = NAVIGATION_DIRECTION_DOWN;
@@ -95,5 +95,20 @@ void menuViewTelemetry(event_t event)
displayRssiLine();
}
void showTelemScreen(uint8_t index)
{
if (menuHandlers[menuLevel] == menuViewTelemetry || menuHandlers[menuLevel] == menuMainView) {
if (index == 0) {
chainMenu(menuMainView);
} else {
index -= 1;
if ((index >= 0 && index <= TELEMETRY_SCREEN_TYPE_MAX) && (TELEMETRY_SCREEN_TYPE(index) != TELEMETRY_SCREEN_TYPE_NONE)) {
selectedTelemView = index;
chainMenu(menuViewTelemetry);
}
}
}
}
#undef EVT_KEY_PREVIOUS_VIEW
#undef EVT_KEY_NEXT_VIEW
+1 -1
View File
@@ -3102,9 +3102,9 @@ LROT_BEGIN(etxcst, NULL, 0)
#if defined(FUNCTION_SWITCHES)
LROT_NUMENTRY( FUNC_PUSH_CUST_SWITCH, FUNC_PUSH_CUST_SWITCH )
#endif
LROT_NUMENTRY( FUNC_SET_SCREEN, FUNC_SET_SCREEN )
#if defined(COLORLCD)
LROT_NUMENTRY( FUNC_DISABLE_TOUCH, FUNC_DISABLE_TOUCH )
LROT_NUMENTRY( FUNC_SET_SCREEN, FUNC_SET_SCREEN )
LROT_NUMENTRY( SHADOWED, SHADOWED )
// ZoneType::Integer == INPUT_TYPE_VALUE - use VALUE in widget options
+2 -2
View File
@@ -695,7 +695,7 @@ bool isTelemetryScriptAvailable()
#if defined(PCBTARANIS)
for (int i = 0; i < luaScriptsCount; i++) {
ScriptInternalData & sid = scriptInternalData[i];
if (sid.reference == SCRIPT_TELEMETRY_FIRST + s_frsky_view) {
if (sid.reference == SCRIPT_TELEMETRY_FIRST + selectedTelemView) {
return true;
}
}
@@ -1040,7 +1040,7 @@ static bool resumeLua(bool init, bool allowLcdUsage)
if (allowLcdUsage) {
#if defined(PCBTARANIS)
if ((menuHandlers[menuLevel] == menuViewTelemetry &&
ref == SCRIPT_TELEMETRY_FIRST + s_frsky_view) ||
ref == SCRIPT_TELEMETRY_FIRST + selectedTelemView) ||
ref == SCRIPT_STANDALONE) {
#else
if (ref == SCRIPT_STANDALONE) {
+1 -1
View File
@@ -407,7 +407,7 @@ bool handleGui(event_t event)
#if defined(LUA)
bool isTelemView =
menuHandlers[menuLevel] == menuViewTelemetry &&
TELEMETRY_SCREEN_TYPE(s_frsky_view) == TELEMETRY_SCREEN_TYPE_SCRIPT;
TELEMETRY_SCREEN_TYPE(selectedTelemView) == TELEMETRY_SCREEN_TYPE_SCRIPT;
bool isStandalone = scriptInternalData[0].reference == SCRIPT_STANDALONE;
if ((isTelemView || isStandalone) && event) {
luaPushEvent(event);
-4
View File
@@ -47,11 +47,7 @@
#define IS_HAPTIC_FUNC(func) (0)
#endif
#if defined(COLORLCD)
#define HAS_REPEAT_PARAM(func) (IS_PLAY_FUNC(func) || IS_HAPTIC_FUNC(func) || func == FUNC_PLAY_SCRIPT || func == FUNC_SET_SCREEN)
#else
#define HAS_REPEAT_PARAM(func) (IS_PLAY_FUNC(func) || IS_HAPTIC_FUNC(func) || func == FUNC_PLAY_SCRIPT)
#endif
#define CFN_EMPTY(p) (!(p)->swtch)
#define CFN_SWITCH(p) ((p)->swtch)
@@ -82,6 +82,7 @@ const struct YamlIdStr enum_Functions[] = {
{ FUNC_BACKLIGHT, "BACKLIGHT" },
{ FUNC_SCREENSHOT, "SCREENSHOT" },
{ FUNC_RACING_MODE, "RACING_MODE" },
{ FUNC_SET_SCREEN, "SET_SCREEN" },
{ FUNC_DISABLE_AUDIO_AMP, "DISABLE_AUDIO_AMP" },
{ FUNC_RGB_LED, "RGB_LED" },
{ FUNC_TEST, "TEST" },
@@ -1619,9 +1619,7 @@ static void r_customFn(void* user, uint8_t* data, uint32_t bitoffs,
}
break;
#if defined(COLORLCD)
case FUNC_SET_SCREEN:
#endif
case FUNC_HAPTIC:
case FUNC_LOGS: // 10th of seconds
CFN_PARAM(cfn) = yaml_str2uint(val, l_sep);
@@ -1837,9 +1835,7 @@ static bool w_customFn(void* user, uint8_t* data, uint32_t bitoffs,
break;
#endif
#if defined(COLORLCD)
case FUNC_SET_SCREEN:
#endif
case FUNC_HAPTIC:
case FUNC_LOGS: // 10th of seconds
str = yaml_unsigned2str(CFN_PARAM(cfn));
@@ -82,6 +82,7 @@ const struct YamlIdStr enum_Functions[] = {
{ FUNC_BACKLIGHT, "BACKLIGHT" },
{ FUNC_SCREENSHOT, "SCREENSHOT" },
{ FUNC_RACING_MODE, "RACING_MODE" },
{ FUNC_SET_SCREEN, "SET_SCREEN" },
{ FUNC_DISABLE_AUDIO_AMP, "DISABLE_AUDIO_AMP" },
{ FUNC_RGB_LED, "RGB_LED" },
{ FUNC_PUSH_CUST_SWITCH, "PUSH_CUST_SWITCH" },
@@ -82,6 +82,7 @@ const struct YamlIdStr enum_Functions[] = {
{ FUNC_BACKLIGHT, "BACKLIGHT" },
{ FUNC_SCREENSHOT, "SCREENSHOT" },
{ FUNC_RACING_MODE, "RACING_MODE" },
{ FUNC_SET_SCREEN, "SET_SCREEN" },
{ FUNC_DISABLE_AUDIO_AMP, "DISABLE_AUDIO_AMP" },
{ FUNC_RGB_LED, "RGB_LED" },
{ FUNC_PUSH_CUST_SWITCH, "PUSH_CUST_SWITCH" },
@@ -82,6 +82,7 @@ const struct YamlIdStr enum_Functions[] = {
{ FUNC_BACKLIGHT, "BACKLIGHT" },
{ FUNC_SCREENSHOT, "SCREENSHOT" },
{ FUNC_RACING_MODE, "RACING_MODE" },
{ FUNC_SET_SCREEN, "SET_SCREEN" },
{ FUNC_DISABLE_AUDIO_AMP, "DISABLE_AUDIO_AMP" },
{ FUNC_RGB_LED, "RGB_LED" },
{ FUNC_TEST, "TEST" },
@@ -82,6 +82,7 @@ const struct YamlIdStr enum_Functions[] = {
{ FUNC_BACKLIGHT, "BACKLIGHT" },
{ FUNC_SCREENSHOT, "SCREENSHOT" },
{ FUNC_RACING_MODE, "RACING_MODE" },
{ FUNC_SET_SCREEN, "SET_SCREEN" },
{ FUNC_DISABLE_AUDIO_AMP, "DISABLE_AUDIO_AMP" },
{ FUNC_RGB_LED, "RGB_LED" },
{ FUNC_TEST, "TEST" },
@@ -82,6 +82,7 @@ const struct YamlIdStr enum_Functions[] = {
{ FUNC_BACKLIGHT, "BACKLIGHT" },
{ FUNC_SCREENSHOT, "SCREENSHOT" },
{ FUNC_RACING_MODE, "RACING_MODE" },
{ FUNC_SET_SCREEN, "SET_SCREEN" },
{ FUNC_DISABLE_AUDIO_AMP, "DISABLE_AUDIO_AMP" },
{ FUNC_RGB_LED, "RGB_LED" },
{ FUNC_TEST, "TEST" },
@@ -82,6 +82,7 @@ const struct YamlIdStr enum_Functions[] = {
{ FUNC_BACKLIGHT, "BACKLIGHT" },
{ FUNC_SCREENSHOT, "SCREENSHOT" },
{ FUNC_RACING_MODE, "RACING_MODE" },
{ FUNC_SET_SCREEN, "SET_SCREEN" },
{ FUNC_DISABLE_AUDIO_AMP, "DISABLE_AUDIO_AMP" },
{ FUNC_RGB_LED, "RGB_LED" },
{ FUNC_TEST, "TEST" },
@@ -82,6 +82,7 @@ const struct YamlIdStr enum_Functions[] = {
{ FUNC_BACKLIGHT, "BACKLIGHT" },
{ FUNC_SCREENSHOT, "SCREENSHOT" },
{ FUNC_RACING_MODE, "RACING_MODE" },
{ FUNC_SET_SCREEN, "SET_SCREEN" },
{ FUNC_DISABLE_AUDIO_AMP, "DISABLE_AUDIO_AMP" },
{ FUNC_RGB_LED, "RGB_LED" },
{ FUNC_TEST, "TEST" },
+4
View File
@@ -200,7 +200,11 @@ const char STR_SF_RGBLEDS[] = TR_SF_RGBLEDS;
const char STR_SF_VOLUME[] = TR_SF_VOLUME;
const char STR_SF_RACING_MODE[] = TR_SF_RACING_MODE;
const char STR_SF_SAFETY[] = TR_SF_SAFETY;
#if defined(COLORLCD)
const char STR_SF_SET_SCREEN[] = TR_SF_SET_SCREEN;
#else
const char STR_SF_SET_SCREEN[] = TR_SF_SET_TELEMSCREEN;
#endif
const char STR_SF_SCREENSHOT[] = TR_SF_SCREENSHOT;
const char STR_SF_LCD_TO_VIDEO[] = TR_SF_LCD_TO_VIDEO;
const char STR_SF_TEST[] = TR_SF_TEST;
+1
View File
@@ -110,6 +110,7 @@
#define TR_SF_DISABLE_TOUCH "禁用触摸"
#define TR_SF_DISABLE_AUDIO_AMP "关闭音频功放"
#define TR_SF_SET_SCREEN "选择主屏"
#define TR_SF_SET_TELEMSCREEN "设置主屏"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "屏幕显示图传"
+1
View File
@@ -121,6 +121,7 @@
#define TR_SF_DISABLE_TOUCH "Deaktivace dotyku"
#define TR_SF_DISABLE_AUDIO_AMP "Vypnutí zesilovače zvuku"
#define TR_SF_SET_SCREEN "Vybrat hlavní obrazovku"
#define TR_SF_SET_TELEMSCREEN "Nast obrazovku"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -121,6 +121,7 @@
#define TR_SF_DISABLE_TOUCH "Ikke berøringsaktiv"
#define TR_SF_DISABLE_AUDIO_AMP TR("Sluk audio amp", "Sluk audio amplifier")
#define TR_SF_SET_SCREEN "Vælg hoved skærm"
#define TR_SF_SET_TELEMSCREEN "Vis skærm"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -118,6 +118,7 @@
#define TR_SF_DISABLE_TOUCH "Kein Touch"
#define TR_SF_DISABLE_AUDIO_AMP "Audio Verst. Aus"
#define TR_SF_SET_SCREEN "Set Main Screen"
#define TR_SF_SET_TELEMSCREEN "TelSeite anz"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -119,6 +119,7 @@
#define TR_SF_DISABLE_TOUCH "No Touch"
#define TR_SF_DISABLE_AUDIO_AMP "Audio Amp Off"
#define TR_SF_SET_SCREEN "Set Main Screen"
#define TR_SF_SET_TELEMSCREEN "Set Screen"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -116,6 +116,7 @@
#define TR_SF_DISABLE_TOUCH "No Touch"
#define TR_SF_DISABLE_AUDIO_AMP "Audio Amp Off"
#define TR_SF_SET_SCREEN "Set Main Screen"
#define TR_SF_SET_TELEMSCREEN "Set Screen"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -119,6 +119,7 @@
#define TR_SF_DISABLE_TOUCH "No Touch"
#define TR_SF_DISABLE_AUDIO_AMP "Audio Amp Off"
#define TR_SF_SET_SCREEN "Set Main Screen"
#define TR_SF_SET_TELEMSCREEN "Set Screen"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -118,6 +118,7 @@
#define TR_SF_DISABLE_TOUCH "Non Tactile"
#define TR_SF_DISABLE_AUDIO_AMP "Désact. Ampli Audio"
#define TR_SF_SET_SCREEN "Définir Écran Princ."
#define TR_SF_SET_TELEMSCREEN "Aff. écran"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -122,6 +122,7 @@
#define TR_SF_DISABLE_TOUCH "ללא מסך מגע"
#define TR_SF_DISABLE_AUDIO_AMP "Audio Amp Off"
#define TR_SF_SET_SCREEN "הגדרת מסך ראשי"
#define TR_SF_SET_TELEMSCREEN "Set Screen"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -119,6 +119,7 @@
#define TR_SF_DISABLE_TOUCH "No Touch"
#define TR_SF_DISABLE_AUDIO_AMP "Amp Audio Off"
#define TR_SF_SET_SCREEN "Setta Schermo Princ."
#define TR_SF_SET_TELEMSCREEN "Setta Schermo"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -119,6 +119,7 @@
#define TR_SF_DISABLE_TOUCH "非タッチ"
#define TR_SF_DISABLE_AUDIO_AMP "オーディオアンプ OFF"
#define TR_SF_SET_SCREEN "メイン画面設定"
#define TR_SF_SET_TELEMSCREEN "Set Screen"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -116,6 +116,7 @@
#define TR_SF_DISABLE_TOUCH "No Touch"
#define TR_SF_DISABLE_AUDIO_AMP "Audio Amp Off"
#define TR_SF_SET_SCREEN "Set Main Screen"
#define TR_SF_SET_TELEMSCREEN "Set Screen"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -115,6 +115,7 @@
#define TR_SF_DISABLE_TOUCH "No Touch"
#define TR_SF_DISABLE_AUDIO_AMP TR("Wycisz wzm.", "Wycisz wzmacniacz audio")
#define TR_SF_SET_SCREEN "Set Main Screen"
#define TR_SF_SET_TELEMSCREEN "Ustaw ekran"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -122,6 +122,7 @@
#define TR_SF_DISABLE_TOUCH "No Touch"
#define TR_SF_DISABLE_AUDIO_AMP "Amp Audio Desl"
#define TR_SF_SET_SCREEN "Def Tela Princ"
#define TR_SF_SET_TELEMSCREEN "Def Tela"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -121,6 +121,7 @@
#define TR_SF_DISABLE_TOUCH "Сенсор вык"
#define TR_SF_DISABLE_AUDIO_AMP "Вык аудио усил."
#define TR_SF_SET_SCREEN "Выбр глав экран"
#define TR_SF_SET_TELEMSCREEN "Set Screen"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -123,6 +123,7 @@
#define TR_SF_DISABLE_TOUCH "Ej pekskärm"
#define TR_SF_DISABLE_AUDIO_AMP TR("Audioförst. av","Audioförstärkare av")
#define TR_SF_SET_SCREEN "Sätt huvudskärm"
#define TR_SF_SET_TELEMSCREEN "Visa skärm"
#define TR_SF_PUSH_CUST_SWITCH "Tryck CS"
#define TR_SF_LCD_TO_VIDEO "LCD till Video"
+1
View File
@@ -115,6 +115,7 @@
#define TR_SF_DISABLE_TOUCH "禁用觸摸"
#define TR_SF_DISABLE_AUDIO_AMP "關閉音頻功放"
#define TR_SF_SET_SCREEN "選擇主屏"
#define TR_SF_SET_TELEMSCREEN "設置主屏"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "屏幕顯示圖傳"
+1
View File
@@ -121,6 +121,7 @@
#define TR_SF_DISABLE_TOUCH "Сенсор вимк."
#define TR_SF_DISABLE_AUDIO_AMP "Підсил. вимк."
#define TR_SF_SET_SCREEN "Вибір гол. екр."
#define TR_SF_SET_TELEMSCREEN "Set Screen"
#define TR_SF_PUSH_CUST_SWITCH "Push CS"
#define TR_SF_LCD_TO_VIDEO "LCD to Video"
+1
View File
@@ -120,6 +120,7 @@ int main()
{ TR_SF_RACING_MODE, "FUNC_RACING_MODE", FUNC_RACING_MODE, "" },
{ TR_SF_DISABLE_TOUCH, "FUNC_DISABLE_TOUCH", FUNC_DISABLE_TOUCH, "defined(COLORLCD)" },
{ TR_SF_SET_SCREEN, "FUNC_SET_SCREEN", FUNC_SET_SCREEN, "defined(COLORLCD)" },
{ TR_SF_SET_TELEMSCREEN, "FUNC_SET_SCREEN", FUNC_SET_SCREEN, "!defined(COLORLCD)" },
{ TR_SF_DISABLE_AUDIO_AMP, "FUNC_DISABLE_AUDIO_AMP", FUNC_DISABLE_AUDIO_AMP, "" },
{ TR_SF_RGBLEDS, "FUNC_RGB_LED", FUNC_RGB_LED, "" },
{ TR_SF_LCD_TO_VIDEO, "FUNC_LCD_TO_VIDEO", FUNC_LCD_TO_VIDEO, "defined(VIDEO_SWITCH)" },