| 445 | } |
| 446 | |
| 447 | void execute(vuart_av_thread &vuart, const void *pkt_buf) override { |
| 448 | const auto pkt = static_cast<const ps3av_pkt_av_audio_mute *>(pkt_buf); |
| 449 | |
| 450 | if (pkt->avport == static_cast<u16>(UartAudioAvport::AVMULTI_1)) { |
| 451 | vuart.write_resp(pkt->hdr.cid, PS3AV_STATUS_INVALID_PORT); |
| 452 | return; |
| 453 | } |
| 454 | |
| 455 | if ((pkt->avport > static_cast<u16>(UartAudioAvport::HDMI_1) && |
| 456 | pkt->avport != static_cast<u16>(UartAudioAvport::AVMULTI_0)) || |
| 457 | (pkt->avport == static_cast<u16>(UartAudioAvport::HDMI_1) && |
| 458 | !g_cfg.core.debug_console_mode)) { |
| 459 | vuart.write_resp<true>(pkt->hdr.cid, |
| 460 | PS3AV_STATUS_SYSCON_COMMUNICATE_FAIL); |
| 461 | return; |
| 462 | } |
| 463 | |
| 464 | g_fxo->get<rsx_audio_data>().update_av_mute_state( |
| 465 | vuart.avport_to_idx(static_cast<UartAudioAvport>(pkt->avport.get())), |
| 466 | true, false, pkt->mute); |
| 467 | |
| 468 | vuart.write_resp<true>(pkt->hdr.cid, PS3AV_STATUS_SUCCESS); |
| 469 | } |
| 470 | }; |
| 471 | |
| 472 | struct av_acp_ctrl_cmd : public ps3av_cmd { |
nothing calls this directly
no test coverage detected