int CCECCommandHandler::HandleDeviceVendorId(const cec_command &command)
{
SetVendorId(command);
+
+ if (command.initiator == CECDEVICE_TV)
+ {
+ CCECBusDevice* primary = m_processor->GetPrimaryDevice();
+ if (primary)
+ primary->TransmitVendorID(CECDEVICE_BROADCAST, false, false);
+ }
+
return COMMAND_HANDLED;
}
CCECBusDevice *device = GetDeviceByPhysicalAddress(iStreamAddress);
if (device)
{
- if (device->IsHandledByLibCEC() && !device->IsActiveSource())
- device->ActivateSource();
- else
+ if (device->IsHandledByLibCEC())
{
- device->MarkAsActiveSource();
- device->TransmitActiveSource(true);
+ if (!device->IsActiveSource())
+ device->ActivateSource();
+ else
+ {
+ device->MarkAsActiveSource();
+ device->TransmitActiveSource(true);
+ }
}
return COMMAND_HANDLED;
}