cec: added the firmware build date to libcec_configuration, so it can be displayed...
[deb_libcec.git] / src / lib / CECProcessor.cpp
index 32f9947bf51fdca2c1c4598d89e152c284514c3f..8ac48d47117d5c50478b7df1af0e10493df179fa 100644 (file)
@@ -59,7 +59,7 @@ CCECProcessor::CCECProcessor(CLibCEC *controller, libcec_configuration *configur
 {
   CreateBusDevices();
   m_configuration.Clear();
-  m_configuration.serverVersion = CEC_SERVER_VERSION_1_6_1;
+  m_configuration.serverVersion = CEC_SERVER_VERSION_1_6_2;
   SetConfiguration(configuration);
 
   if (m_configuration.tvVendor != CEC_VENDOR_UNKNOWN)
@@ -77,7 +77,7 @@ CCECProcessor::CCECProcessor(CLibCEC *controller, const char *strDeviceName, con
     m_iLastTransmission(0)
 {
   m_configuration.Clear();
-  m_configuration.serverVersion    = CEC_SERVER_VERSION_1_6_1;
+  m_configuration.serverVersion    = CEC_SERVER_VERSION_1_6_2;
 
   // client version < 1.5.0
   m_configuration.clientVersion    = (uint32_t)CEC_CLIENT_VERSION_PRE_1_5;
@@ -188,14 +188,15 @@ bool CCECProcessor::OpenConnection(const char *strPort, uint16_t iBaudRate, uint
   if (bReturn)
   {
     m_configuration.iFirmwareVersion = m_communication->GetFirmwareVersion();
-    uint32_t iBuildDate = m_communication->GetFirmwareBuildDate();
+    m_configuration.iFirmwareBuildDate = m_communication->GetFirmwareBuildDate();
     CStdString strLog;
     strLog.Format("connected to the CEC adapter. libCEC version = %s, client version = %s, firmware version = %d", ToString((cec_server_version)m_configuration.serverVersion), ToString((cec_client_version)m_configuration.clientVersion), m_configuration.iFirmwareVersion);
-    if (iBuildDate > 0)
+    if (m_configuration.iFirmwareBuildDate > 0)
     {
-      time_t buildTime = (time_t)iBuildDate;
-      strLog.AppendFormat(", firmware build date: %s +0000", asctime(gmtime(&buildTime)));
+      time_t buildTime = (time_t)m_configuration.iFirmwareBuildDate;
+      strLog.AppendFormat(", firmware build date: %s", asctime(gmtime(&buildTime)));
       strLog = strLog.Left(strLog.length() - 1); // strip \n added by asctime
+      strLog.append(" +0000");
     }
     CLibCEC::AddLog(CEC_LOG_NOTICE, strLog);
   }
@@ -1660,7 +1661,7 @@ bool CCECProcessor::SetConfiguration(const libcec_configuration *configuration)
   // client version 1.6.2
   if (configuration->clientVersion >= CEC_CLIENT_VERSION_1_6_2)
   {
-    snprintf(m_configuration.strDeviceLanguage, 3, "%s", configuration->strDeviceLanguage);
+    memcpy(m_configuration.strDeviceLanguage, configuration->strDeviceLanguage, 3);
   }
 
   // ensure that there is at least 1 device type set
@@ -1726,6 +1727,12 @@ bool CCECProcessor::GetCurrentConfiguration(libcec_configuration *configuration)
     configuration->bShutdownOnStandby        = m_configuration.bShutdownOnStandby;
   }
 
+  // client version 1.6.2
+  if (configuration->clientVersion >= CEC_CLIENT_VERSION_1_6_2)
+  {
+    memcpy(configuration->strDeviceLanguage, m_configuration.strDeviceLanguage, 3);
+    configuration->iFirmwareBuildDate      = m_configuration.iFirmwareBuildDate;
+  }
   return true;
 }