Merge branch 'development'
[deb_libcec.git] / src / lib / adapter / USBCECAdapterCommands.cpp
index 326abe17c07ff7c9081179a7b802739f91ac77ff..0374dbee60b19f662f693a6bbf430d57a93f1f28 100644 (file)
@@ -44,7 +44,7 @@ CUSBCECAdapterCommands::CUSBCECAdapterCommands(CUSBCECAdapterCommunication *comm
     m_settingCecVersion(CEC_VERSION_UNKNOWN),
     m_iSettingLAMask(0),
     m_bNeedsWrite(false),
-    m_iBuildDate(0)
+    m_iBuildDate(CEC_FW_BUILD_UNKNOWN)
 {
   m_persistedConfiguration.Clear();
 }
@@ -123,12 +123,15 @@ bool CUSBCECAdapterCommands::RequestSettingCECVersion(void)
 
 uint32_t CUSBCECAdapterCommands::RequestBuildDate(void)
 {
-  CLibCEC::AddLog(CEC_LOG_DEBUG, "requesting firmware build date");
+  if (m_iBuildDate == CEC_FW_BUILD_UNKNOWN)
+  {
+    CLibCEC::AddLog(CEC_LOG_DEBUG, "requesting firmware build date");
 
-  cec_datapacket response = RequestSetting(MSGCODE_GET_BUILDDATE);
-  if (response.size == 4)
-    return (uint32_t)response[0] << 24 | (uint32_t)response[1] << 16 | (uint32_t)response[2] << 8 | (uint32_t)response[3];
-  return 0;
+    cec_datapacket response = RequestSetting(MSGCODE_GET_BUILDDATE);
+    if (response.size == 4)
+      m_iBuildDate = (uint32_t)response[0] << 24 | (uint32_t)response[1] << 16 | (uint32_t)response[2] << 8 | (uint32_t)response[3];
+  }
+  return m_iBuildDate;
 }
 
 bool CUSBCECAdapterCommands::RequestSettingDefaultLogicalAddress(void)