Skip to content

Commit

Permalink
feat(radio): add repeat option for 'RGB Led' SF (#5677)
Browse files Browse the repository at this point in the history
Co-authored-by: Peter Feerick <[email protected]>
  • Loading branch information
philmoz and pfeerick authored Nov 21, 2024
1 parent 4e5ed85 commit d94bc33
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 10 deletions.
4 changes: 2 additions & 2 deletions companion/src/firmwares/boards.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions radio/src/gui/128x64/model_special_functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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);
}
Expand Down
2 changes: 1 addition & 1 deletion radio/src/gui/212x64/model_special_functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
4 changes: 2 additions & 2 deletions radio/src/gui/colorlcd/model/special_functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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)));
Expand Down
2 changes: 1 addition & 1 deletion radio/src/myeeprom.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions radio/src/storage/yaml/yaml_datastructs_funcs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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"
Expand Down

0 comments on commit d94bc33

Please sign in to comment.