X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fimplementations%2FCECCommandHandler.cpp;h=b742f49898001f437d64478d0e8b6f7593c7e4dc;hb=93efea2abf014deb8e64a74ec1ff21486def4ae3;hp=89b5b7e8ae9b0ca68c2c77690e8165730dd89851;hpb=7f913ac9bcf453b455321397e675bb8e529e049e;p=deb_libcec.git diff --git a/src/lib/implementations/CECCommandHandler.cpp b/src/lib/implementations/CECCommandHandler.cpp index 89b5b7e..b742f49 100644 --- a/src/lib/implementations/CECCommandHandler.cpp +++ b/src/lib/implementations/CECCommandHandler.cpp @@ -583,13 +583,6 @@ int CCECCommandHandler::HandleSetStreamPath(const cec_command &command) device->MarkAsActiveSource(); return COMMAND_HANDLED; } - else - { - cec_logical_address previousSource = m_processor->GetActiveSource(false); - CCECBusDevice* device = m_processor->GetDevice(previousSource); - if (device && device->GetCurrentPhysicalAddress() != iStreamAddress) - device->MarkAsInactiveSource(); - } } return CEC_ABORT_REASON_INVALID_OPERAND; @@ -1237,6 +1230,14 @@ bool CCECCommandHandler::ActivateSource(bool bTransmitDelayedCommandsOnly /* = f if (playbackDevice && SendDeckStatusUpdateOnActiveSource()) bActiveSourceFailed = !playbackDevice->TransmitDeckStatus(CECDEVICE_TV, false); } + + // update system audio mode for audiosystem devices + if (bTvPresent && !bActiveSourceFailed) + { + CCECAudioSystem* audioDevice = m_busDevice->AsAudioSystem(); + if (audioDevice) + bActiveSourceFailed = !audioDevice->TransmitSetSystemAudioMode(CECDEVICE_TV, false); + } } // retry later