X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fdevices%2FCECBusDevice.cpp;h=340602c3a22cb06043580c595ac27bc9e87231a5;hb=b4c4ef7d6a74e5f6f8f7c67f3d11454f32301b60;hp=01be1d2254f1398486e1cc1ed00333c1a50be176;hpb=caaf64d7c66d998adf1e66b4d8c7a53ab882215b;p=deb_libcec.git diff --git a/src/lib/devices/CECBusDevice.cpp b/src/lib/devices/CECBusDevice.cpp index 01be1d2..340602c 100644 --- a/src/lib/devices/CECBusDevice.cpp +++ b/src/lib/devices/CECBusDevice.cpp @@ -216,7 +216,8 @@ CStdString CCECBusDevice::GetOSDName(void) { CLockObject lock(&m_mutex); if (GetStatus() == CEC_DEVICE_STATUS_PRESENT && - m_strDeviceName.Equals(ToString(m_iLogicalAddress))) + m_strDeviceName.Equals(ToString(m_iLogicalAddress)) && + m_type != CEC_DEVICE_TYPE_TV) RequestOSDName(); return m_strDeviceName; @@ -729,6 +730,10 @@ bool CCECBusDevice::TransmitOSDString(cec_logical_address dest, cec_display_cont bool CCECBusDevice::TransmitPhysicalAddress(void) { CLockObject lock(&m_writeMutex); + + if (m_iPhysicalAddress = 0xffff) + return false; + CStdString strLog; strLog.Format("<< %s (%X) -> broadcast (F): physical adddress %4x", GetLogicalAddressName(), m_iLogicalAddress, m_iPhysicalAddress); AddLog(CEC_LOG_NOTICE, strLog.c_str()); @@ -749,6 +754,8 @@ bool CCECBusDevice::TransmitPoll(cec_logical_address dest) if (dest == CECDEVICE_UNKNOWN) dest = m_iLogicalAddress; + CLockObject lock(&m_writeMutex); + CStdString strLog; strLog.Format("<< %s (%X) -> %s (%X): POLL", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest); AddLog(CEC_LOG_NOTICE, strLog.c_str()); @@ -763,12 +770,8 @@ bool CCECBusDevice::TransmitPoll(cec_logical_address dest) } AddLog(CEC_LOG_DEBUG, bReturn ? ">> POLL sent" : ">> POLL not sent"); - if (bReturn) - { - CLockObject lock(&m_writeMutex); m_iLastActive = GetTimeMs(); - } return bReturn; }