feat(radio): add repeat option for 'RGB Led' SF (#5677)

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
This commit is contained in:
philmoz
2024-11-22 07:44:05 +10:00
committed by GitHub
co-authored by Peter Feerick
parent 4e5ed85572
commit d94bc3321c
6 changed files with 10 additions and 10 deletions
+2 -2
View File
@@ -332,8 +332,8 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
return (IS_STM32(board) && !IS_TARANIS_X9(board));
case HasLedStripGPIO:
// No current radio do support that feature
return false;
return (IS_RADIOMASTER_MT12(board) || IS_FLYSKY_PL18(board) ||
IS_HELLORADIOSKY_V16(board));
case HasSDCard:
return IS_STM32(board);
@@ -343,7 +343,7 @@ void menuSpecialFunctions(event_t event, CustomFunctionData * functions, CustomF
x = x - 5 * FW;
else if (func == FUNC_PLAY_TRACK)
x = x - 3 * FW;
else if (func == FUNC_BACKGND_MUSIC)
else if (func == FUNC_BACKGND_MUSIC || func == FUNC_RGB_LED)
x = x - 2 * FW;
if (ZEXIST(cfn->play.name))
lcdDrawSizedText(x, y, cfn->play.name, sizeof(cfn->play.name), attr);
@@ -487,7 +487,7 @@ void menuSpecialFunctions(event_t event, CustomFunctionData * functions, CustomF
case 4:
if (HAS_REPEAT_PARAM(func)) {
if (func == FUNC_PLAY_SCRIPT) {
if (func == FUNC_PLAY_SCRIPT || func == FUNC_RGB_LED) {
lcdDrawText(MODEL_SPECIAL_FUNC_4TH_COLUMN_ONOFF-3, y, (CFN_PLAY_REPEAT(cfn) == 0) ? "On" : "1x", attr);
if (active) CFN_PLAY_REPEAT(cfn) = checkIncDec(event, CFN_PLAY_REPEAT(cfn), 0, 1, eeFlags);
}
@@ -436,7 +436,7 @@ void menuSpecialFunctions(event_t event, CustomFunctionData * functions, CustomF
case ITEM_CUSTOM_FUNCTIONS_REPEAT:
if (HAS_REPEAT_PARAM(func)) {
if (func == FUNC_PLAY_SCRIPT) {
if (func == FUNC_PLAY_SCRIPT || func == FUNC_RGB_LED) {
lcdDrawText(MODEL_SPECIAL_FUNC_4TH_COLUMN+2, y, (CFN_PLAY_REPEAT(cfn) == 0) ? "On" : "1x", attr);
if (active) CFN_PLAY_REPEAT(cfn) = checkIncDec(event, CFN_PLAY_REPEAT(cfn), 0, 1, eeFlags);
}
@@ -264,7 +264,7 @@ void FunctionLineButton::refresh()
lv_obj_clear_state(sfEnable, LV_STATE_CHECKED);
if (HAS_REPEAT_PARAM(func)) {
if (func == FUNC_PLAY_SCRIPT) {
if (func == FUNC_PLAY_SCRIPT || func == FUNC_RGB_LED) {
sprintf(s, "(%s)", (CFN_PLAY_REPEAT(cfn) == 0) ? "On" : "1x");
} else {
sprintf(
@@ -614,7 +614,7 @@ void FunctionEditPage::updateSpecialFunctionOneWindow()
if (HAS_REPEAT_PARAM(func)) { // !1x 1x 1s 2s 3s ...
line = specialFunctionOneWindow->newLine(grid);
new StaticText(line, rect_t{}, STR_REPEAT);
if (func == FUNC_PLAY_SCRIPT) {
if (func == FUNC_PLAY_SCRIPT || func == FUNC_RGB_LED) {
auto repeat = new Choice(line, rect_t{}, 0, 1,
GET_DEFAULT((int8_t)CFN_PLAY_REPEAT(cfn)),
SET_DEFAULT(CFN_PLAY_REPEAT(cfn)));
+1 -1
View File
@@ -47,7 +47,7 @@
#define IS_HAPTIC_FUNC(func) (0)
#endif
#define HAS_REPEAT_PARAM(func) (IS_PLAY_FUNC(func) || IS_HAPTIC_FUNC(func) || func == FUNC_PLAY_SCRIPT || func == FUNC_SET_SCREEN)
#define HAS_REPEAT_PARAM(func) (IS_PLAY_FUNC(func) || IS_HAPTIC_FUNC(func) || func == FUNC_PLAY_SCRIPT || func == FUNC_RGB_LED || func == FUNC_SET_SCREEN)
#define CFN_EMPTY(p) (!(p)->swtch)
#define CFN_SWITCH(p) ((p)->swtch)
@@ -1724,7 +1724,7 @@ static void r_customFn(void* user, uint8_t* data, uint32_t bitoffs,
}
if (HAS_REPEAT_PARAM(func)) {
if (func == FUNC_PLAY_SCRIPT) {
if (func == FUNC_PLAY_SCRIPT || func == FUNC_RGB_LED) {
if (val_len == 2 && val[0] == '1' && val[1] == 'x')
CFN_PLAY_REPEAT(cfn) = 1;
else
@@ -1887,7 +1887,7 @@ static bool w_customFn(void* user, uint8_t* data, uint32_t bitoffs,
// ","
if (!wf(opaque,",",1)) return false;
if (func == FUNC_PLAY_SCRIPT) {
if (func == FUNC_PLAY_SCRIPT || func == FUNC_RGB_LED) {
if (!wf(opaque,(CFN_PLAY_REPEAT(cfn) == 0) ? "On" : "1x",2)) return false;
} else if (CFN_PLAY_REPEAT(cfn) == 0) {
// "1x"