| 476 | } |
| 477 | |
| 478 | bool WBLink::request_set_air_mcs_index(int mcs_index) { |
| 479 | assert(m_profile.is_air); |
| 480 | m_console->debug("set_air_mcs_index {}", mcs_index); |
| 481 | if (!openhd::wb::validate_air_mcs_index_change( |
| 482 | mcs_index, m_broadcast_cards.at(0), m_console)) { |
| 483 | return false; |
| 484 | } |
| 485 | auto tag = fmt::format("SET_AIR_MCS:{}", mcs_index); |
| 486 | auto work_item = std::make_shared<WorkItem>( |
| 487 | tag, |
| 488 | [this, mcs_index]() { |
| 489 | m_settings->unsafe_get_settings().wb_air_mcs_index = mcs_index; |
| 490 | m_settings->persist(); |
| 491 | m_request_apply_air_mcs_index = true; |
| 492 | }, |
| 493 | std::chrono::steady_clock::now()); |
| 494 | return try_schedule_work_item(work_item); |
| 495 | } |
| 496 | bool WBLink::set_air_video_fec_percentage(int fec_percentage) { |
| 497 | m_console->debug("set_air_video_fec_percentage {}", fec_percentage); |
| 498 | if (!openhd::is_valid_fec_percentage(fec_percentage)) return false; |