+ CLockObject lock(&m_transmitMutex);
+ if (m_iLastActive > 0 && m_iLogicalAddress != CECDEVICE_BROADCAST &&
+ m_vendor == CEC_VENDOR_UNKNOWN &&
+ GetTimeMs() - m_iLastCommandSent > 5000 &&
+ !m_processor->IsMonitoring())
+ {
+ CStdString strLog;
+ strLog.Format("<< requesting vendor ID of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
+ AddLog(CEC_LOG_NOTICE, strLog);
+ m_iLastCommandSent = GetTimeMs();
+
+ cec_command command;
+ cec_command::Format(command, GetMyLogicalAddress(), m_iLogicalAddress, CEC_OPCODE_GIVE_DEVICE_VENDOR_ID);
+ if (m_processor->Transmit(command))
+ m_condition.Wait(&m_transmitMutex, 1000);
+ }