| 472 | } |
| 473 | |
| 474 | struct RfCodes selectRecentRfMenu() { |
| 475 | options = {}; |
| 476 | bool exit = false; |
| 477 | struct RfCodes selected_code; |
| 478 | |
| 479 | for (int i = 0; i < 16; i++) { |
| 480 | if (recent_rfcodes[i].filepath == "") continue; // not inited |
| 481 | |
| 482 | options.emplace_back(recent_rfcodes[i].filepath.c_str(), [i, &selected_code]() { |
| 483 | selected_code = recent_rfcodes[i]; |
| 484 | }); |
| 485 | } |
| 486 | options.emplace_back("Main Menu", [&]() { exit = true; }); |
| 487 | |
| 488 | loopOptions(options); |
| 489 | options.clear(); |
| 490 | |
| 491 | return selected_code; |
| 492 | } |
| 493 | rmt_channel_handle_t setup_rf_rx() { |
| 494 | if (!initRfModule("rx", bruceConfigPins.rfFreq)) return NULL; |
| 495 | setMHZ(bruceConfigPins.rfFreq); |
no test coverage detected