bugzid: 592
This fixes several reports of the TV improperly switching to the libcec
device after it has previously switched to another source. Fix confirmed
with Panasonic and also reported to be an issue with Samsung and
Philips.
The previous extra processing (SetActiveSource and ImageViewOn) was put
in place for Samsung and may need revisiting.
{
CCECBusDevice *device = GetDevice(command.destination);
if (device)
- {
- device->SetActiveSource();
- return device->TransmitPhysicalAddress() &&
- device->TransmitImageViewOn() &&
- device->TransmitActiveSource();
- }
+ return device->TransmitPhysicalAddress();
}
return false;
return true;
}
-bool CSLCommandHandler::HandleGivePhysicalAddress(const cec_command &command)
-{
- if (m_processor->IsRunning() && m_busDevice->MyLogicalAddressContains(command.destination))
- {
- CCECBusDevice *device = GetDevice(command.destination);
- if (device)
- return device->TransmitPhysicalAddress(); // only the physical address, don't send image view on
- }
-
- return false;
-}
-
bool CSLCommandHandler::HandleVendorCommand(const cec_command &command)
{
if (!m_busDevice->MyLogicalAddressContains(command.destination))
protected:
virtual bool HandleActiveSource(const cec_command &command);
virtual bool HandleDeviceVendorId(const cec_command &command);
- virtual bool HandleGivePhysicalAddress(const cec_command &command);
virtual bool HandleVendorCommand(const cec_command &command);
virtual void HandleVendorCommand01(const cec_command &command);