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;
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