bHandled = m_handler->HandleCommand(command);
/* change status to present */
- if (bHandled && GetLogicalAddress() != CECDEVICE_BROADCAST)
+ if (bHandled && GetLogicalAddress() != CECDEVICE_BROADCAST && command.opcode_set == 1)
{
CLockObject lock(m_mutex);
if (m_deviceStatus != CEC_DEVICE_STATUS_HANDLED_BY_LIBCEC)
opcode == CEC_OPCODE_VENDOR_REMOTE_BUTTON_UP ||
opcode == CEC_OPCODE_ABORT ||
opcode == CEC_OPCODE_FEATURE_ABORT ||
- opcode == CEC_OPCODE_NONE)
+ opcode == CEC_OPCODE_NONE ||
+ opcode == CEC_OPCODE_USER_CONTROL_PRESSED ||
+ opcode == CEC_OPCODE_USER_CONTROL_RELEASE)
return;
{
language = m_menuLanguage;
}
- char lang[3];
+ char lang[4];
{
CLockObject lock(m_mutex);
lang[0] = language.language[0];
lang[1] = language.language[1];
lang[2] = language.language[2];
+ lang[3] = (char)0;
}
MarkBusy();
CCECBusDevice* newRoute = m_processor->GetDeviceByPhysicalAddress(iRoute, true);
if (newRoute && newRoute->IsHandledByLibCEC())
- {
newRoute->ActivateSource();
- return;
- }
-
- CECDEVICEVEC devices;
- m_processor->GetDevices()->GetChildrenOf(devices, this);
-
- for (CECDEVICEVEC::iterator it = devices.begin(); it != devices.end(); it++)
- {
- if ((*it)->GetCurrentPhysicalAddress() == iRoute && (*it)->IsHandledByLibCEC())
- (*it)->ActivateSource();
- else if (!CCECTypeUtils::PhysicalAddressIsIncluded(iRoute, (*it)->GetCurrentPhysicalAddress()))
- (*it)->MarkAsInactiveSource();
- }
}
void CCECBusDevice::SetStreamPath(uint16_t iNewAddress, uint16_t iOldAddress /* = CEC_INVALID_PHYSICAL_ADDRESS */)