X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fdevices%2FCECBusDevice.cpp;h=489ded2cec4f441d379922e76f5be7459795c452;hb=ea3e78c63860879e58030b6b01a3bdfb8475871c;hp=c9699d8f96f6f46dcf3ce1d54cce543e646ae2af;hpb=2ee922ad2f1812c74f2aa6e61305fdcc5c27de53;p=deb_libcec.git diff --git a/src/lib/devices/CECBusDevice.cpp b/src/lib/devices/CECBusDevice.cpp index c9699d8..489ded2 100644 --- a/src/lib/devices/CECBusDevice.cpp +++ b/src/lib/devices/CECBusDevice.cpp @@ -94,7 +94,10 @@ void CWaitForResponse::Clear() { PLATFORM::CLockObject lock(m_mutex); for (std::map::iterator it = m_waitingFor.begin(); it != m_waitingFor.end(); it++) + { it->second->Broadcast(); + delete it->second; + } m_waitingFor.clear(); } @@ -886,7 +889,7 @@ void CCECBusDevice::SetDeviceStatus(const cec_bus_device_status newStatus, cec_v if (m_deviceStatus != newStatus) LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s (%X): device status changed into 'handled by libCEC'", GetLogicalAddressName(), m_iLogicalAddress); SetPowerStatus (CEC_POWER_STATUS_ON); - SetVendorId (CEC_VENDOR_UNKNOWN); + SetVendorId (CEC_VENDOR_PULSE_EIGHT); SetMenuState (CEC_MENU_STATE_ACTIVATED); SetCecVersion (libCECSpecVersion); SetStreamPath (CEC_INVALID_PHYSICAL_ADDRESS); @@ -1079,14 +1082,12 @@ void CCECBusDevice::MarkAsActiveSource(void) if ((*it)->GetLogicalAddress() != m_iLogicalAddress) (*it)->MarkAsInactiveSource(); - if (bWasActivated) - { - if (IsHandledByLibCEC()) - m_processor->SetActiveSource(true, false); - CCECClient *client = GetClient(); - if (client) - client->SourceActivated(m_iLogicalAddress); - } + if (bWasActivated && IsHandledByLibCEC()) + m_processor->SetActiveSource(true, false); + + CCECClient *client = GetClient(); + if (client) + client->SourceActivated(m_iLogicalAddress); } void CCECBusDevice::MarkAsInactiveSource(bool bClientUnregistered /* = false */)