cec: simplified AddLog() method
authorLars Op den Kamp <lars@opdenkamp.eu>
Wed, 25 Jan 2012 14:14:27 +0000 (15:14 +0100)
committerLars Op den Kamp <lars@opdenkamp.eu>
Wed, 25 Jan 2012 14:14:27 +0000 (15:14 +0100)
src/lib/CECProcessor.cpp
src/lib/CECProcessor.h
src/lib/LibCEC.cpp
src/lib/LibCEC.h
src/lib/adapter/AdapterCommunication.cpp
src/lib/devices/CECAudioSystem.cpp
src/lib/devices/CECBusDevice.cpp
src/lib/devices/CECBusDevice.h
src/lib/devices/CECPlaybackDevice.cpp
src/lib/implementations/ANCommandHandler.cpp
src/lib/implementations/CECCommandHandler.cpp

index 0c409eb6eee23073393373c1ce27d424946d4647..7a4e019d0b7fdfb2a48968f9ff185c54c82ce2f0 100644 (file)
@@ -134,32 +134,30 @@ bool CCECProcessor::OpenConnection(const char *strPort, uint16_t iBaudRate, uint
   CLockObject lock(m_mutex);
   if (!m_communication)
   {
-    m_controller->AddLog(CEC_LOG_ERROR, "no connection handler found");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "no connection handler found");
     return bReturn;
   }
 
   /* check for an already opened connection */
   if (m_communication->IsOpen())
   {
-    m_controller->AddLog(CEC_LOG_ERROR, "connection already opened");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "connection already opened");
     return bReturn;
   }
 
   /* open a new connection */
   if ((bReturn = m_communication->Open(strPort, iBaudRate, iTimeoutMs)) == false)
-    m_controller->AddLog(CEC_LOG_ERROR, "could not open a connection");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "could not open a connection");
 
   /* try to ping the adapter */
   if ((bReturn = m_communication->PingAdapter()) == false)
-    m_controller->AddLog(CEC_LOG_ERROR, "the adapter does not respond correctly");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "the adapter does not respond correctly");
 
   uint16_t iFirmwareVersion = m_communication->GetFirmwareVersion();
   if ((bReturn = (iFirmwareVersion != CEC_FW_VERSION_UNKNOWN)) == false)
     m_controller->AddLog(CEC_LOG_ERROR, "the adapter is running an unknown firmware version");
 
-  CStdString strLog;
-  strLog.Format("CEC Adapter firmware version: %d", iFirmwareVersion);
-  m_controller->AddLog(CEC_LOG_NOTICE, strLog);
+  CLibCEC::AddLog(CEC_LOG_NOTICE, "CEC Adapter firmware version: %d", iFirmwareVersion);
 
   return bReturn;
 }
@@ -180,7 +178,7 @@ bool CCECProcessor::Initialise(void)
 
     if (!FindLogicalAddresses())
     {
-      m_controller->AddLog(CEC_LOG_ERROR, "could not detect our logical addresses");
+      CLibCEC::AddLog(CEC_LOG_ERROR, "could not detect our logical addresses");
       return bReturn;
     }
 
@@ -193,11 +191,7 @@ bool CCECProcessor::Initialise(void)
   ReplaceHandlers();
 
   if ((bReturn = SetHDMIPort(m_iBaseDevice, m_iHDMIPort, true)) == false)
-  {
-    CStdString strLog;
-    strLog.Format("unable to set HDMI port %d on %s (%x)", m_iHDMIPort, ToString(m_iBaseDevice), (uint8_t)m_iBaseDevice);
-    m_controller->AddLog(CEC_LOG_ERROR, strLog);
-  }
+    CLibCEC::AddLog(CEC_LOG_ERROR, "unable to set HDMI port %d on %s (%x)", m_iHDMIPort, ToString(m_iBaseDevice), (uint8_t)m_iBaseDevice);
 
   SetInitialised(bReturn);
 
@@ -216,19 +210,19 @@ bool CCECProcessor::Start(const char *strPort, uint16_t iBaudRate /* = 38400 */,
     /* create the processor thread */
     if (!CreateThread() || !m_startCondition.Wait(m_mutex) || !m_bStarted)
     {
-      m_controller->AddLog(CEC_LOG_ERROR, "could not create a processor thread");
+      CLibCEC::AddLog(CEC_LOG_ERROR, "could not create a processor thread");
       return bReturn;
     }
   }
 
   if ((bReturn = Initialise()) == false)
   {
-    m_controller->AddLog(CEC_LOG_ERROR, "could not create a processor thread");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "could not create a processor thread");
     StopThread(true);
   }
   else
   {
-    m_controller->AddLog(CEC_LOG_DEBUG, "processor thread started");
+    CLibCEC::AddLog(CEC_LOG_DEBUG, "processor thread started");
   }
 
   return bReturn;
@@ -247,7 +241,7 @@ bool CCECProcessor::TryLogicalAddress(cec_logical_address address)
 
 bool CCECProcessor::FindLogicalAddressRecordingDevice(void)
 {
-  AddLog(CEC_LOG_DEBUG, "detecting logical address for type 'recording device'");
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "detecting logical address for type 'recording device'");
   return TryLogicalAddress(CECDEVICE_RECORDINGDEVICE1) ||
       TryLogicalAddress(CECDEVICE_RECORDINGDEVICE2) ||
       TryLogicalAddress(CECDEVICE_RECORDINGDEVICE3);
@@ -255,7 +249,7 @@ bool CCECProcessor::FindLogicalAddressRecordingDevice(void)
 
 bool CCECProcessor::FindLogicalAddressTuner(void)
 {
-  AddLog(CEC_LOG_DEBUG, "detecting logical address for type 'tuner'");
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "detecting logical address for type 'tuner'");
   return TryLogicalAddress(CECDEVICE_TUNER1) ||
       TryLogicalAddress(CECDEVICE_TUNER2) ||
       TryLogicalAddress(CECDEVICE_TUNER3) ||
@@ -264,7 +258,7 @@ bool CCECProcessor::FindLogicalAddressTuner(void)
 
 bool CCECProcessor::FindLogicalAddressPlaybackDevice(void)
 {
-  AddLog(CEC_LOG_DEBUG, "detecting logical address for type 'playback device'");
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "detecting logical address for type 'playback device'");
   return TryLogicalAddress(CECDEVICE_PLAYBACKDEVICE1) ||
       TryLogicalAddress(CECDEVICE_PLAYBACKDEVICE2) ||
       TryLogicalAddress(CECDEVICE_PLAYBACKDEVICE3);
@@ -272,7 +266,7 @@ bool CCECProcessor::FindLogicalAddressPlaybackDevice(void)
 
 bool CCECProcessor::FindLogicalAddressAudioSystem(void)
 {
-  AddLog(CEC_LOG_DEBUG, "detecting logical address for type 'audio'");
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "detecting logical address for type 'audio'");
   return TryLogicalAddress(CECDEVICE_AUDIOSYSTEM);
 }
 
@@ -280,9 +274,7 @@ bool CCECProcessor::ChangeDeviceType(cec_device_type from, cec_device_type to)
 {
   bool bChanged(false);
 
-  CStdString strLog;
-  strLog.Format("changing device type '%s' into '%s'", ToString(from), ToString(to));
-  AddLog(CEC_LOG_NOTICE, strLog);
+  CLibCEC::AddLog(CEC_LOG_NOTICE, "changing device type '%s' into '%s'", ToString(from), ToString(to));
 
   CLockObject lock(m_mutex);
   CCECBusDevice *previousDevice = GetDeviceByType(from);
@@ -359,15 +351,13 @@ bool CCECProcessor::FindLogicalAddresses(void)
 {
   bool bReturn(true);
   m_logicalAddresses.Clear();
-  CStdString strLog;
 
   for (unsigned int iPtr = 0; iPtr < 5; iPtr++)
   {
     if (m_types.types[iPtr] == CEC_DEVICE_TYPE_RESERVED)
       continue;
 
-    strLog.Format("%s - device %d: type %d", __FUNCTION__, iPtr, m_types.types[iPtr]);
-    AddLog(CEC_LOG_DEBUG, strLog);
+    CLibCEC::AddLog(CEC_LOG_DEBUG, "%s - device %d: type %d", __FUNCTION__, iPtr, m_types.types[iPtr]);
 
     if (m_types.types[iPtr] == CEC_DEVICE_TYPE_RECORDING_DEVICE)
       bReturn &= FindLogicalAddressRecordingDevice();
@@ -400,7 +390,7 @@ void *CCECProcessor::Process(void)
   {
     CLockObject lock(m_mutex);
     m_bStarted = true;
-    m_controller->AddLog(CEC_LOG_DEBUG, "processor thread started");
+    CLibCEC::AddLog(CEC_LOG_DEBUG, "processor thread started");
     m_startCondition.Signal();
   }
 
@@ -548,9 +538,7 @@ bool CCECProcessor::SetHDMIPort(cec_logical_address iBaseDevice, uint8_t iPort,
   if (!m_bStarted && !bForce)
     return true;
 
-  CStdString strLog;
-  strLog.Format("setting HDMI port to %d on device %s (%d)", iPort, ToString(iBaseDevice), (int)iBaseDevice);
-  AddLog(CEC_LOG_DEBUG, strLog);
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "setting HDMI port to %d on device %s (%d)", iPort, ToString(iBaseDevice), (int)iBaseDevice);
 
   uint16_t iPhysicalAddress(0);
   if (iBaseDevice > CECDEVICE_TV)
@@ -575,7 +563,7 @@ bool CCECProcessor::SetHDMIPort(cec_logical_address iBaseDevice, uint8_t iPort,
   }
 
   if (!bReturn)
-    m_controller->AddLog(CEC_LOG_ERROR, "failed to set the physical address");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "failed to set the physical address");
   else
   {
     lock.Unlock();
@@ -614,7 +602,7 @@ void CCECProcessor::LogOutput(const cec_command &data)
 
   for (uint8_t iPtr = 0; iPtr < data.parameters.size; iPtr++)
     strTx.AppendFormat(":%02x", data.parameters[iPtr]);
-  m_controller->AddLog(CEC_LOG_TRAFFIC, strTx.c_str());
+  CLibCEC::AddLog(CEC_LOG_TRAFFIC, strTx.c_str());
 }
 
 bool CCECProcessor::SetLogicalAddress(cec_logical_address iLogicalAddress)
@@ -622,9 +610,7 @@ bool CCECProcessor::SetLogicalAddress(cec_logical_address iLogicalAddress)
   CLockObject lock(m_mutex);
   if (m_logicalAddresses.primary != iLogicalAddress)
   {
-    CStdString strLog;
-    strLog.Format("<< setting primary logical address to %1x", iLogicalAddress);
-    m_controller->AddLog(CEC_LOG_NOTICE, strLog.c_str());
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< setting primary logical address to %1x", iLogicalAddress);
     m_logicalAddresses.primary = iLogicalAddress;
     m_logicalAddresses.Set(iLogicalAddress);
     return SetAckMask(m_logicalAddresses.AckMask());
@@ -685,9 +671,7 @@ bool CCECProcessor::SetPhysicalAddress(uint16_t iPhysicalAddress, bool bSendUpda
 
 bool CCECProcessor::SwitchMonitoring(bool bEnable)
 {
-  CStdString strLog;
-  strLog.Format("== %s monitoring mode ==", bEnable ? "enabling" : "disabling");
-  m_controller->AddLog(CEC_LOG_NOTICE, strLog.c_str());
+  CLibCEC::AddLog(CEC_LOG_NOTICE, "== %s monitoring mode ==", bEnable ? "enabling" : "disabling");
 
   {
     CLockObject lock(m_mutex);
@@ -895,7 +879,7 @@ bool CCECProcessor::Transmit(CCECAdapterMessage *output)
 
 void CCECProcessor::TransmitAbort(cec_logical_address address, cec_opcode opcode, cec_abort_reason reason /* = CEC_ABORT_REASON_UNRECOGNIZED_OPCODE */)
 {
-  m_controller->AddLog(CEC_LOG_DEBUG, "<< transmitting abort message");
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "<< transmitting abort message");
 
   cec_command command;
   // TODO
@@ -953,7 +937,7 @@ bool CCECProcessor::ParseMessage(const CCECAdapterMessage &msg)
     break;
   }
 
-  m_controller->AddLog(bIsError ? CEC_LOG_WARNING : CEC_LOG_DEBUG, msg.ToString());
+  CLibCEC::AddLog(bIsError ? CEC_LOG_WARNING : CEC_LOG_DEBUG, msg.ToString());
   return bEom;
 }
 
@@ -963,7 +947,7 @@ void CCECProcessor::ParseCommand(cec_command &command)
   dataStr.Format(">> %1x%1x:%02x", command.initiator, command.destination, command.opcode);
   for (uint8_t iPtr = 0; iPtr < command.parameters.size; iPtr++)
     dataStr.AppendFormat(":%02x", (unsigned int)command.parameters[iPtr]);
-  m_controller->AddLog(CEC_LOG_TRAFFIC, dataStr.c_str());
+  CLibCEC::AddLog(CEC_LOG_TRAFFIC, dataStr.c_str());
 
   if (!m_bMonitor && command.initiator >= CECDEVICE_TV && command.initiator <= CECDEVICE_BROADCAST)
     m_busDevices[(uint8_t)command.initiator]->HandleCommand(command);
@@ -1024,11 +1008,6 @@ void CCECProcessor::AddKey(void)
   m_controller->AddKey();
 }
 
-void CCECProcessor::AddLog(cec_log_level level, const CStdString &strMessage)
-{
-  m_controller->AddLog(level, strMessage);
-}
-
 bool CCECProcessor::SetAckMask(uint16_t iMask)
 {
   return m_communication->SetAckMask(iMask);
index 82ea16f0fb441141d32089c04b9be169c4b7bb3d..39c36710e1f630cecd0a363630901bbecab84a2e 100644 (file)
@@ -121,7 +121,6 @@ namespace CEC
       virtual void AddCommand(const cec_command &command);
       virtual void AddKey(cec_keypress &key);
       virtual void AddKey(void);
-      virtual void AddLog(cec_log_level level, const CStdString &strMessage);
 
       virtual bool ChangeDeviceType(cec_device_type from, cec_device_type to);
       virtual bool FindLogicalAddresses(void);
index db141f3c77b142ceedb5df75d448ae5480f65c20..69830fdf040b5367b062ffccc9cbb767f36affb1 100644 (file)
@@ -341,21 +341,27 @@ cec_osd_name CLibCEC::GetDeviceOSDName(cec_logical_address iAddress)
   return retVal;
 }
 
-void CLibCEC::AddLog(cec_log_level level, const string &strMessage)
+void CLibCEC::AddLog(cec_log_level level, const char *strFormat, ...)
 {
-  CLockObject lock(m_mutex);
-  if (m_cec)
-  {
-    cec_log_message message;
-    message.level = level;
-    message.time = GetTimeMs() - m_iStartTime;
-    snprintf(message.message, sizeof(message.message), "%s", strMessage.c_str());
+  CStdString strLog;
 
-    if (m_callbacks)
-      m_callbacks->CBCecLogMessage(m_cbParam, message);
-    else
-      m_logBuffer.Push(message);
-  }
+  va_list argList;
+  va_start(argList, strFormat);
+  strLog.FormatV(strFormat, argList);
+  va_end(argList);
+
+  CLibCEC *instance = CLibCEC::GetInstance();
+  CLockObject lock(instance->m_mutex);
+
+  cec_log_message message;
+  message.level = level;
+  message.time = GetTimeMs() - instance->m_iStartTime;
+  snprintf(message.message, sizeof(message.message), "%s", strLog.c_str());
+
+  if (instance->m_callbacks)
+    instance->m_callbacks->CBCecLogMessage(instance->m_cbParam, message);
+  else
+    instance->m_logBuffer.Push(message);
 }
 
 void CLibCEC::AddKey(cec_keypress &key)
@@ -429,21 +435,36 @@ void CLibCEC::SetCurrentButton(cec_user_control_code iButtonCode)
   m_keyBuffer.Push(key);
 }
 
+static CLibCEC *g_libCEC_instance(NULL);
+CLibCEC *CLibCEC::GetInstance(void)
+{
+  return g_libCEC_instance;
+}
+
+void CLibCEC::SetInstance(CLibCEC *instance)
+{
+  if (g_libCEC_instance)
+    delete g_libCEC_instance;
+  g_libCEC_instance = instance;
+}
+
 void * CECCreate(const char *strDeviceName, CEC::cec_logical_address iLogicalAddress /*= CEC::CECDEVICE_PLAYBACKDEVICE1 */, uint16_t iPhysicalAddress /* = CEC_DEFAULT_PHYSICAL_ADDRESS */)
 {
-  return static_cast< void* > (new CLibCEC(strDeviceName, iLogicalAddress, iPhysicalAddress));
+  CLibCEC *lib = new CLibCEC(strDeviceName, iLogicalAddress, iPhysicalAddress);
+  CLibCEC::SetInstance(lib);
+  return static_cast< void* > (lib);
 }
 
 void * CECInit(const char *strDeviceName, CEC::cec_device_type_list types)
 {
-  return static_cast< void* > (new CLibCEC(strDeviceName, types));
+  CLibCEC *lib = new CLibCEC(strDeviceName, types);
+  CLibCEC::SetInstance(lib);
+  return static_cast< void* > (lib);
 }
 
-void CECDestroy(CEC::ICECAdapter *instance)
+void CECDestroy(CEC::ICECAdapter *UNUSED(instance))
 {
-  CLibCEC *lib = static_cast< CLibCEC* > (instance);
-  if (lib)
-    delete lib;
+  CLibCEC::SetInstance(NULL);
 }
 
 const char *CLibCEC::ToString(const cec_menu_state state)
index 20b6ccd6f8cd0879bfe8d083a8cbe9c42a60a26a..9ca006e066ea5468d199c16ae4832f024392d3f1 100644 (file)
@@ -112,13 +112,16 @@ namespace CEC
       const char *ToString(const cec_vendor_id vendor);
     //@}
 
-      virtual void AddLog(cec_log_level level, const std::string &strMessage);
+      static void AddLog(cec_log_level level, const char *strFormat, ...);
       virtual void AddKey(void);
       virtual void AddKey(cec_keypress &key);
       virtual void AddCommand(const cec_command &command);
       virtual void CheckKeypressTimeout(void);
       virtual void SetCurrentButton(cec_user_control_code iButtonCode);
 
+      static CLibCEC *GetInstance(void);
+      static void SetInstance(CLibCEC *instance);
+
     protected:
       int64_t                                 m_iStartTime;
       cec_user_control_code                   m_iCurrentButton;
index 15b6851ae5abcf843d00d516626095ad85ae7ee5..fd481d5b330571740402c58f17636ee6dc7dbb06 100644 (file)
@@ -35,6 +35,7 @@
 #include "AdapterMessage.h"
 #include "CECProcessor.h"
 #include "platform/serialport/serialport.h"
+#include "../LibCEC.h"
 
 using namespace std;
 using namespace CEC;
@@ -69,13 +70,13 @@ bool CAdapterCommunication::Open(const char *strPort, uint16_t iBaudRate /* = 38
 
   if (!m_port)
   {
-    m_processor->AddLog(CEC_LOG_ERROR, "port is NULL");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "port is NULL");
     return false;
   }
 
   if (IsOpen())
   {
-    m_processor->AddLog(CEC_LOG_ERROR, "port is already open");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "port is already open");
     return true;
   }
 
@@ -93,11 +94,11 @@ bool CAdapterCommunication::Open(const char *strPort, uint16_t iBaudRate /* = 38
 
   if (!bConnected)
   {
-    m_processor->AddLog(CEC_LOG_ERROR, strError);
+    CLibCEC::AddLog(CEC_LOG_ERROR, strError);
     return false;
   }
 
-  m_processor->AddLog(CEC_LOG_DEBUG, "connection opened");
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "connection opened");
 
   //clear any input bytes
   uint8_t buff[1];
@@ -105,12 +106,12 @@ bool CAdapterCommunication::Open(const char *strPort, uint16_t iBaudRate /* = 38
 
   if (CreateThread())
   {
-    m_processor->AddLog(CEC_LOG_DEBUG, "communication thread started");
+    CLibCEC::AddLog(CEC_LOG_DEBUG, "communication thread started");
     return true;
   }
   else
   {
-    m_processor->AddLog(CEC_LOG_ERROR, "could not create a communication thread");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "could not create a communication thread");
   }
 
   return false;
@@ -150,7 +151,7 @@ bool CAdapterCommunication::Write(CCECAdapterMessage *data)
 
   if (data->state != ADAPTER_MESSAGE_STATE_SENT)
   {
-    m_processor->AddLog(CEC_LOG_ERROR, "command was not sent");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "command was not sent");
   }
 
   if (data->expectControllerAck)
@@ -164,7 +165,7 @@ bool CAdapterCommunication::Write(CCECAdapterMessage *data)
     else
     {
       data->state = ADAPTER_MESSAGE_STATE_SENT_NOT_ACKED;
-      m_processor->AddLog(CEC_LOG_DEBUG, "did not receive ack");
+      CLibCEC::AddLog(CEC_LOG_DEBUG, "did not receive ack");
     }
   }
   else
@@ -204,7 +205,7 @@ bool CAdapterCommunication::Read(CCECAdapterMessage &msg, uint32_t iTimeout)
     else if (buf == MSGSTART) //we found a msgstart before msgend, this is not right, remove
     {
       if (msg.Size() > 0)
-        m_processor->AddLog(CEC_LOG_WARNING, "received MSGSTART before MSGEND, removing previous buffer contents");
+        CLibCEC::AddLog(CEC_LOG_WARNING, "received MSGSTART before MSGEND, removing previous buffer contents");
       msg.Clear();
       bGotStart = true;
     }
@@ -241,7 +242,7 @@ bool CAdapterCommunication::StartBootloader(void)
   if (!IsRunning())
     return bReturn;
 
-  m_processor->AddLog(CEC_LOG_DEBUG, "starting the bootloader");
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "starting the bootloader");
   CCECAdapterMessage *output = new CCECAdapterMessage;
 
   output->PushBack(MSGSTART);
@@ -251,7 +252,7 @@ bool CAdapterCommunication::StartBootloader(void)
   output->expectControllerAck = false;
 
   if ((bReturn = Write(output)) == false)
-    m_processor->AddLog(CEC_LOG_ERROR, "could not start the bootloader");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "could not start the bootloader");
   delete output;
 
   return bReturn;
@@ -263,7 +264,7 @@ bool CAdapterCommunication::PingAdapter(void)
   if (!IsRunning())
     return bReturn;
 
-  m_processor->AddLog(CEC_LOG_DEBUG, "sending ping");
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "sending ping");
   CCECAdapterMessage *output = new CCECAdapterMessage;
 
   output->PushBack(MSGSTART);
@@ -272,7 +273,7 @@ bool CAdapterCommunication::PingAdapter(void)
   output->isTransmission = false;
 
   if ((bReturn = Write(output)) == false)
-    m_processor->AddLog(CEC_LOG_ERROR, "could not ping the adapter");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "could not ping the adapter");
   delete output;
 
   return bReturn;
@@ -286,7 +287,7 @@ uint16_t CAdapterCommunication::GetFirmwareVersion(void)
 
   if (iReturn == CEC_FW_VERSION_UNKNOWN)
   {
-    m_processor->AddLog(CEC_LOG_DEBUG, "requesting the firmware version");
+    CLibCEC::AddLog(CEC_LOG_DEBUG, "requesting the firmware version");
     CCECAdapterMessage *output = new CCECAdapterMessage;
 
     output->PushBack(MSGSTART);
@@ -300,7 +301,7 @@ uint16_t CAdapterCommunication::GetFirmwareVersion(void)
 
     CCECAdapterMessage input;
     if (!Read(input, CEC_DEFAULT_TRANSMIT_WAIT) || input.Message() != MSGCODE_FIRMWARE_VERSION || input.Size() != 3)
-      m_processor->AddLog(CEC_LOG_ERROR, "no or invalid firmware version");
+      CLibCEC::AddLog(CEC_LOG_ERROR, "no or invalid firmware version");
     else
     {
       m_iFirmwareVersion = (input[1] << 8 | input[2]);
@@ -326,7 +327,7 @@ bool CAdapterCommunication::SetLineTimeout(uint8_t iTimeout)
     output->isTransmission = false;
 
     if ((bReturn = Write(output)) == false)
-      m_processor->AddLog(CEC_LOG_ERROR, "could not set the idletime");
+      CLibCEC::AddLog(CEC_LOG_ERROR, "could not set the idletime");
     delete output;
   }
 
@@ -338,7 +339,7 @@ bool CAdapterCommunication::SetAckMask(uint16_t iMask)
   bool bReturn(false);
   CStdString strLog;
   strLog.Format("setting ackmask to %2x", iMask);
-  m_processor->AddLog(CEC_LOG_DEBUG, strLog.c_str());
+  CLibCEC::AddLog(CEC_LOG_DEBUG, strLog.c_str());
 
   CCECAdapterMessage *output = new CCECAdapterMessage;
 
@@ -350,7 +351,7 @@ bool CAdapterCommunication::SetAckMask(uint16_t iMask)
   output->isTransmission = false;
 
   if ((bReturn = Write(output)) == false)
-    m_processor->AddLog(CEC_LOG_ERROR, "could not set the ackmask");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "could not set the ackmask");
   delete output;
 
   return bReturn;
@@ -398,21 +399,21 @@ bool CAdapterCommunication::WaitForTransmitSucceeded(CCECAdapterMessage *message
     if (bError)
     {
       message->reply = msg.Message();
-      m_processor->AddLog(CEC_LOG_DEBUG, msg.ToString());
+      CLibCEC::AddLog(CEC_LOG_DEBUG, msg.ToString());
     }
     else
     {
       switch(msg.Message())
       {
       case MSGCODE_COMMAND_ACCEPTED:
-        m_processor->AddLog(CEC_LOG_DEBUG, msg.ToString());
+        CLibCEC::AddLog(CEC_LOG_DEBUG, msg.ToString());
         if (iPacketsLeft > 0)
           iPacketsLeft--;
         if (!message->isTransmission && iPacketsLeft == 0)
           bTransmitSucceeded = true;
         break;
       case MSGCODE_TRANSMIT_SUCCEEDED:
-        m_processor->AddLog(CEC_LOG_DEBUG, msg.ToString());
+        CLibCEC::AddLog(CEC_LOG_DEBUG, msg.ToString());
         bTransmitSucceeded = (iPacketsLeft == 0);
         bError = !bTransmitSucceeded;
         message->reply = MSGCODE_TRANSMIT_SUCCEEDED;
@@ -451,7 +452,7 @@ bool CAdapterCommunication::ReadFromDevice(uint32_t iTimeout)
   {
     CStdString strError;
     strError.Format("error reading from serial port: %s", m_port->GetError().c_str());
-    m_processor->AddLog(CEC_LOG_ERROR, strError);
+    CLibCEC::AddLog(CEC_LOG_ERROR, strError);
     return false;
   }
   else if (iBytesRead > 0)
@@ -468,12 +469,12 @@ void CAdapterCommunication::SendMessageToAdapter(CCECAdapterMessage *msg)
   {
     CStdString strError;
     strError.Format("error writing to serial port: %s", m_port->GetError().c_str());
-    m_processor->AddLog(CEC_LOG_ERROR, strError);
+    CLibCEC::AddLog(CEC_LOG_ERROR, strError);
     msg->state = ADAPTER_MESSAGE_STATE_ERROR;
   }
   else
   {
-    m_processor->AddLog(CEC_LOG_DEBUG, "command sent");
+    CLibCEC::AddLog(CEC_LOG_DEBUG, "command sent");
     msg->state = ADAPTER_MESSAGE_STATE_SENT;
   }
   msg->condition.Signal();
index 7bdb0912de46d6b2b80431535f0daa1badc6cc93..e8fbf8c46fbe0865c910ffab58b3d953d4870405 100644 (file)
@@ -33,6 +33,7 @@
 #include "CECAudioSystem.h"
 #include "../CECProcessor.h"
 #include "../implementations/CECCommandHandler.h"
+#include "../LibCEC.h"
 
 using namespace CEC;
 using namespace PLATFORM;
@@ -52,10 +53,7 @@ bool CCECAudioSystem::SetAudioStatus(uint8_t status)
   CLockObject lock(m_mutex);
   if (m_audioStatus != status)
   {
-    CStdString strLog;
-    strLog.Format(">> %s (%X): audio status changed from %2x to %2x", GetLogicalAddressName(), m_iLogicalAddress, m_audioStatus, status);
-    AddLog(CEC_LOG_DEBUG, strLog.c_str());
-
+    CLibCEC::AddLog(CEC_LOG_DEBUG, ">> %s (%X): audio status changed from %2x to %2x", GetLogicalAddressName(), m_iLogicalAddress, m_audioStatus, status);
     m_audioStatus = status;
     return true;
   }
@@ -68,10 +66,7 @@ bool CCECAudioSystem::SetSystemAudioModeStatus(const cec_system_audio_status mod
   CLockObject lock(m_mutex);
   if (m_systemAudioStatus != mode)
   {
-    CStdString strLog;
-    strLog.Format(">> %s (%X): system audio mode status changed from %s to %s", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_systemAudioStatus), ToString(mode));
-    AddLog(CEC_LOG_DEBUG, strLog.c_str());
-
+    CLibCEC::AddLog(CEC_LOG_DEBUG, ">> %s (%X): system audio mode status changed from %s to %s", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_systemAudioStatus), ToString(mode));
     m_systemAudioStatus = mode;
     return true;
   }
@@ -84,9 +79,7 @@ bool CCECAudioSystem::TransmitAudioStatus(cec_logical_address dest)
   uint8_t state;
   {
     CLockObject lock(m_mutex);
-    CStdString strLog;
-    strLog.Format("<< %x -> %x: audio status '%2x'", m_iLogicalAddress, dest, m_audioStatus);
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %x -> %x: audio status '%2x'", m_iLogicalAddress, dest, m_audioStatus);
     state = m_audioStatus;
   }
 
@@ -98,9 +91,7 @@ bool CCECAudioSystem::TransmitSetSystemAudioMode(cec_logical_address dest)
   cec_system_audio_status state;
   {
     CLockObject lock(m_mutex);
-    CStdString strLog;
-    strLog.Format("<< %x -> %x: set system audio mode '%2x'", m_iLogicalAddress, dest, m_audioStatus);
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %x -> %x: set system audio mode '%2x'", m_iLogicalAddress, dest, m_audioStatus);
     state = m_systemAudioStatus;
   }
 
@@ -112,9 +103,7 @@ bool CCECAudioSystem::TransmitSystemAudioModeStatus(cec_logical_address dest)
   cec_system_audio_status state;
   {
     CLockObject lock(m_mutex);
-    CStdString strLog;
-    strLog.Format("<< %x -> %x: system audio mode '%s'", m_iLogicalAddress, dest, ToString(m_systemAudioStatus));
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %x -> %x: system audio mode '%s'", m_iLogicalAddress, dest, ToString(m_systemAudioStatus));
     state = m_systemAudioStatus;
   }
 
index a907fc8fd22d2950c649d8e49123adc52a344443..46e618c8ad952398b7517ae01e02a4a345daf956 100644 (file)
@@ -36,6 +36,7 @@
 #include "../implementations/CECCommandHandler.h"
 #include "../implementations/SLCommandHandler.h"
 #include "../implementations/VLCommandHandler.h"
+#include "../LibCEC.h"
 
 using namespace CEC;
 using namespace PLATFORM;
@@ -73,11 +74,6 @@ CCECBusDevice::~CCECBusDevice(void)
   delete m_handler;
 }
 
-void CCECBusDevice::AddLog(cec_log_level level, const CStdString &strMessage)
-{
-  m_processor->AddLog(level, strMessage);
-}
-
 bool CCECBusDevice::HandleCommand(const cec_command &command)
 {
   bool bHandled(false);
@@ -101,11 +97,7 @@ bool CCECBusDevice::HandleCommand(const cec_command &command)
     if (m_deviceStatus != CEC_DEVICE_STATUS_HANDLED_BY_LIBCEC)
     {
       if (m_deviceStatus != CEC_DEVICE_STATUS_PRESENT)
-      {
-        CStdString strLog;
-        strLog.Format("device %s (%x) status changed to present after command %s", GetLogicalAddressName(), (uint8_t)GetLogicalAddress(), ToString(command.opcode));
-        AddLog(CEC_LOG_DEBUG, strLog);
-      }
+        CLibCEC::AddLog(CEC_LOG_DEBUG, "device %s (%x) status changed to present after command %s", GetLogicalAddressName(), (uint8_t)GetLogicalAddress(), ToString(command.opcode));
       m_deviceStatus = CEC_DEVICE_STATUS_PRESENT;
     }
   }
@@ -115,9 +107,7 @@ bool CCECBusDevice::HandleCommand(const cec_command &command)
 
 bool CCECBusDevice::PowerOn(void)
 {
-  CStdString strLog;
-  strLog.Format("<< powering on '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
-  AddLog(CEC_LOG_DEBUG, strLog.c_str());
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "<< powering on '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
 
   if (m_handler->TransmitImageViewOn(GetMyLogicalAddress(), m_iLogicalAddress))
   {
@@ -132,7 +122,7 @@ bool CCECBusDevice::PowerOn(void)
 //      /* sending the normal power on command appears to have failed */
 //      CStdString strLog;
 //      strLog.Format("<< sending power on keypress to '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
-//      AddLog(CEC_LOG_DEBUG, strLog.c_str());
+//      CLibCEC::AddLog(CEC_LOG_DEBUG, strLog.c_str());
 //
 //      TransmitKeypress(CEC_USER_CONTROL_CODE_POWER);
 //      return TransmitKeyRelease();
@@ -145,10 +135,7 @@ bool CCECBusDevice::PowerOn(void)
 
 bool CCECBusDevice::Standby(void)
 {
-  CStdString strLog;
-  strLog.Format("<< putting '%s' (%X) in standby mode", GetLogicalAddressName(), m_iLogicalAddress);
-  AddLog(CEC_LOG_DEBUG, strLog.c_str());
-
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "<< putting '%s' (%X) in standby mode", GetLogicalAddressName(), m_iLogicalAddress);
   return m_handler->TransmitStandby(GetMyLogicalAddress(), m_iLogicalAddress);
 }
 
@@ -177,9 +164,7 @@ bool CCECBusDevice::RequestCecVersion(void)
   if (!MyLogicalAddressContains(m_iLogicalAddress))
   {
     m_handler->MarkBusy();
-    CStdString strLog;
-    strLog.Format("<< requesting CEC version of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< requesting CEC version of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
 
     bReturn = m_handler->TransmitRequestCecVersion(GetMyLogicalAddress(), m_iLogicalAddress);
     m_handler->MarkReady();
@@ -216,9 +201,7 @@ bool CCECBusDevice::RequestMenuLanguage(void)
       !IsUnsupportedFeature(CEC_OPCODE_GET_MENU_LANGUAGE))
   {
     m_handler->MarkBusy();
-    CStdString strLog;
-    strLog.Format("<< requesting menu language of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< requesting menu language of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
     bReturn = m_handler->TransmitRequestMenuLanguage(GetMyLogicalAddress(), m_iLogicalAddress);
     m_handler->MarkReady();
   }
@@ -266,9 +249,7 @@ bool CCECBusDevice::RequestOSDName(void)
       !IsUnsupportedFeature(CEC_OPCODE_GIVE_OSD_NAME))
   {
     m_handler->MarkBusy();
-    CStdString strLog;
-    strLog.Format("<< requesting OSD name of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< requesting OSD name of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
     bReturn = m_handler->TransmitRequestOSDName(GetMyLogicalAddress(), m_iLogicalAddress);
     m_handler->MarkReady();
   }
@@ -285,7 +266,7 @@ uint16_t CCECBusDevice::GetPhysicalAddress(bool bUpdate /* = false */)
   }
 
   if (bRequestUpdate && !RequestPhysicalAddress())
-    AddLog(CEC_LOG_ERROR, "failed to request the physical address (1)");
+    CLibCEC::AddLog(CEC_LOG_ERROR, "failed to request the physical address");
 
   CLockObject lock(m_mutex);
   return m_iPhysicalAddress;
@@ -298,9 +279,7 @@ bool CCECBusDevice::RequestPhysicalAddress(void)
   if (!MyLogicalAddressContains(m_iLogicalAddress))
   {
     m_handler->MarkBusy();
-    CStdString strLog;
-    strLog.Format("<< requesting physical address of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< requesting physical address of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
     bReturn = m_handler->TransmitRequestPhysicalAddress(GetMyLogicalAddress(), m_iLogicalAddress);
     m_handler->MarkReady();
   }
@@ -334,9 +313,7 @@ bool CCECBusDevice::RequestPowerStatus(void)
       !IsUnsupportedFeature(CEC_OPCODE_GIVE_DEVICE_POWER_STATUS))
   {
     m_handler->MarkBusy();
-    CStdString strLog;
-    strLog.Format("<< requesting power status of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< requesting power status of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
     bReturn = m_handler->TransmitRequestPowerStatus(GetMyLogicalAddress(), m_iLogicalAddress);
     m_handler->MarkReady();
   }
@@ -366,9 +343,7 @@ bool CCECBusDevice::RequestVendorId(void)
   if (!MyLogicalAddressContains(m_iLogicalAddress))
   {
     m_handler->MarkBusy();
-    CStdString strLog;
-    strLog.Format("<< requesting vendor ID of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< requesting vendor ID of '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
     bReturn = m_handler->TransmitRequestVendorId(GetMyLogicalAddress(), m_iLogicalAddress);
     m_handler->MarkReady();
 
@@ -459,10 +434,7 @@ cec_bus_device_status CCECBusDevice::GetStatus(bool bForcePoll /* = false */)
 void CCECBusDevice::SetCecVersion(const cec_version newVersion)
 {
   m_cecVersion = newVersion;
-
-  CStdString strLog;
-  strLog.Format("%s (%X): CEC version %s", GetLogicalAddressName(), m_iLogicalAddress, ToString(newVersion));
-  AddLog(CEC_LOG_DEBUG, strLog);
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "%s (%X): CEC version %s", GetLogicalAddressName(), m_iLogicalAddress, ToString(newVersion));
 }
 
 void CCECBusDevice::SetMenuLanguage(const cec_menu_language &language)
@@ -470,9 +442,7 @@ void CCECBusDevice::SetMenuLanguage(const cec_menu_language &language)
   CLockObject lock(m_mutex);
   if (language.device == m_iLogicalAddress)
   {
-    CStdString strLog;
-    strLog.Format(">> %s (%X): menu language set to '%s'", GetLogicalAddressName(), m_iLogicalAddress, language.language);
-    m_processor->AddLog(CEC_LOG_DEBUG, strLog);
+    CLibCEC::AddLog(CEC_LOG_DEBUG, ">> %s (%X): menu language set to '%s'", GetLogicalAddressName(), m_iLogicalAddress, language.language);
     m_menuLanguage = language;
   }
 }
@@ -482,9 +452,7 @@ void CCECBusDevice::SetOSDName(CStdString strName)
   CLockObject lock(m_mutex);
   if (m_strDeviceName != strName)
   {
-    CStdString strLog;
-    strLog.Format(">> %s (%X): osd name set to '%s'", GetLogicalAddressName(), m_iLogicalAddress, strName);
-    m_processor->AddLog(CEC_LOG_DEBUG, strLog);
+    CLibCEC::AddLog(CEC_LOG_DEBUG, ">> %s (%X): osd name set to '%s'", GetLogicalAddressName(), m_iLogicalAddress, strName.c_str());
     m_strDeviceName = strName;
   }
 }
@@ -494,9 +462,7 @@ void CCECBusDevice::SetMenuState(const cec_menu_state state)
   CLockObject lock(m_mutex);
   if (m_menuState != state)
   {
-    CStdString strLog;
-    strLog.Format(">> %s (%X): menu state set to '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_menuState));
-    m_processor->AddLog(CEC_LOG_DEBUG, strLog);
+    CLibCEC::AddLog(CEC_LOG_DEBUG, ">> %s (%X): menu state set to '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_menuState));
     m_menuState = state;
   }
 }
@@ -516,11 +482,7 @@ void CCECBusDevice::SetActiveSource(void)
 {
   CLockObject lock(m_mutex);
   if (!m_bActiveSource)
-  {
-    CStdString strLog;
-    strLog.Format("making %s (%x) the active source", GetLogicalAddressName(), m_iLogicalAddress);
-    AddLog(CEC_LOG_DEBUG, strLog);
-  }
+    CLibCEC::AddLog(CEC_LOG_DEBUG, "making %s (%x) the active source", GetLogicalAddressName(), m_iLogicalAddress);
 
   for (int iPtr = 0; iPtr < 16; iPtr++)
     if (iPtr != m_iLogicalAddress)
@@ -532,22 +494,18 @@ void CCECBusDevice::SetActiveSource(void)
 
 bool CCECBusDevice::TryLogicalAddress(void)
 {
-  CStdString strLog;
-  strLog.Format("trying logical address '%s'", GetLogicalAddressName());
-  AddLog(CEC_LOG_DEBUG, strLog);
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "trying logical address '%s'", GetLogicalAddressName());
 
   m_processor->SetAckMask(0x1 << m_iLogicalAddress);
   if (!TransmitPoll(m_iLogicalAddress))
   {
-    strLog.Format("using logical address '%s'", GetLogicalAddressName());
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "using logical address '%s'", GetLogicalAddressName());
     SetDeviceStatus(CEC_DEVICE_STATUS_HANDLED_BY_LIBCEC);
 
     return true;
   }
 
-  strLog.Format("logical address '%s' already taken", GetLogicalAddressName());
-  AddLog(CEC_LOG_DEBUG, strLog);
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "logical address '%s' already taken", GetLogicalAddressName());
   SetDeviceStatus(CEC_DEVICE_STATUS_PRESENT);
   return false;
 }
@@ -589,10 +547,7 @@ void CCECBusDevice::SetPhysicalAddress(uint16_t iNewAddress)
   CLockObject lock(m_mutex);
   if (iNewAddress > 0 && m_iPhysicalAddress != iNewAddress)
   {
-    CStdString strLog;
-    strLog.Format(">> %s (%X): physical address changed from %04x to %04x", GetLogicalAddressName(), m_iLogicalAddress, m_iPhysicalAddress, iNewAddress);
-    AddLog(CEC_LOG_DEBUG, strLog.c_str());
-
+    CLibCEC::AddLog(CEC_LOG_DEBUG, ">> %s (%X): physical address changed from %04x to %04x", GetLogicalAddressName(), m_iLogicalAddress, m_iPhysicalAddress, iNewAddress);
     m_iPhysicalAddress = iNewAddress;
   }
 }
@@ -602,10 +557,7 @@ void CCECBusDevice::SetStreamPath(uint16_t iNewAddress, uint16_t iOldAddress /*
   CLockObject lock(m_mutex);
   if (iNewAddress > 0)
   {
-    CStdString strLog;
-    strLog.Format(">> %s (%X): stream path changed from %04x to %04x", GetLogicalAddressName(), m_iLogicalAddress, iOldAddress == 0 ? m_iStreamPath : iOldAddress, iNewAddress);
-    AddLog(CEC_LOG_DEBUG, strLog.c_str());
-
+    CLibCEC::AddLog(CEC_LOG_DEBUG, ">> %s (%X): stream path changed from %04x to %04x", GetLogicalAddressName(), m_iLogicalAddress, iOldAddress == 0 ? m_iStreamPath : iOldAddress, iNewAddress);
     m_iStreamPath = iNewAddress;
 
     if (iNewAddress > 0)
@@ -622,9 +574,7 @@ void CCECBusDevice::SetPowerStatus(const cec_power_status powerStatus)
   if (m_powerStatus != powerStatus)
   {
     m_iLastPowerStateUpdate = GetTimeMs();
-    CStdString strLog;
-    strLog.Format(">> %s (%X): power status changed from '%s' to '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_powerStatus), ToString(powerStatus));
-    m_processor->AddLog(CEC_LOG_DEBUG, strLog);
+    CLibCEC::AddLog(CEC_LOG_DEBUG, ">> %s (%X): power status changed from '%s' to '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_powerStatus), ToString(powerStatus));
     m_powerStatus = powerStatus;
   }
 }
@@ -641,13 +591,11 @@ bool CCECBusDevice::ReplaceHandler(bool bActivateSource /* = true */)
       CStdString strLog;
       if (m_handler->InUse())
       {
-        strLog.Format("handler for device '%s' (%x) is being used. not replacing the command handler", GetLogicalAddressName(), GetLogicalAddress());
-        m_processor->AddLog(CEC_LOG_DEBUG, strLog);
+        CLibCEC::AddLog(CEC_LOG_DEBUG, "handler for device '%s' (%x) is being used. not replacing the command handler", GetLogicalAddressName(), GetLogicalAddress());
         return false;
       }
 
-      strLog.Format("replacing the command handler for device '%s' (%x)", GetLogicalAddressName(), GetLogicalAddress());
-      m_processor->AddLog(CEC_LOG_DEBUG, strLog);
+      CLibCEC::AddLog(CEC_LOG_DEBUG, "replacing the command handler for device '%s' (%x)", GetLogicalAddressName(), GetLogicalAddress());
       delete m_handler;
 
       switch (m_vendor)
@@ -687,9 +635,7 @@ bool CCECBusDevice::SetVendorId(uint64_t iVendorId)
     m_vendor = (cec_vendor_id)iVendorId;
   }
 
-  CStdString strLog;
-  strLog.Format("%s (%X): vendor = %s (%06x)", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_vendor), m_vendor);
-  m_processor->AddLog(CEC_LOG_DEBUG, strLog.c_str());
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "%s (%X): vendor = %s (%06x)", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_vendor), m_vendor);
 
   return bVendorChanged;
 }
@@ -704,24 +650,14 @@ bool CCECBusDevice::TransmitActiveSource(void)
   {
     CLockObject lock(m_mutex);
     if (m_powerStatus != CEC_POWER_STATUS_ON)
-    {
-      CStdString strLog;
-      strLog.Format("<< %s (%X) is not powered on", GetLogicalAddressName(), m_iLogicalAddress);
-      AddLog(CEC_LOG_DEBUG, strLog);
-    }
+      CLibCEC::AddLog(CEC_LOG_DEBUG, "<< %s (%X) is not powered on", GetLogicalAddressName(), m_iLogicalAddress);
     else if (m_bActiveSource)
     {
-      CStdString strLog;
-      strLog.Format("<< %s (%X) -> broadcast (F): active source (%4x)", GetLogicalAddressName(), m_iLogicalAddress, m_iPhysicalAddress);
-      AddLog(CEC_LOG_NOTICE, strLog);
+      CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %s (%X) -> broadcast (F): active source (%4x)", GetLogicalAddressName(), m_iLogicalAddress, m_iPhysicalAddress);
       bSendActiveSource = true;
     }
     else
-    {
-      CStdString strLog;
-      strLog.Format("<< %s (%X) is not the active source", GetLogicalAddressName(), m_iLogicalAddress);
-      AddLog(CEC_LOG_DEBUG, strLog);
-    }
+      CLibCEC::AddLog(CEC_LOG_DEBUG, "<< %s (%X) is not the active source", GetLogicalAddressName(), m_iLogicalAddress);
   }
 
   if (bSendActiveSource)
@@ -739,9 +675,7 @@ bool CCECBusDevice::TransmitCECVersion(cec_logical_address dest)
   cec_version version;
   {
     CLockObject lock(m_mutex);
-    CStdString strLog;
-    strLog.Format("<< %s (%X) -> %s (%X): cec version %s", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, ToString(m_cecVersion));
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %s (%X) -> %s (%X): cec version %s", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, ToString(m_cecVersion));
     version = m_cecVersion;
   }
 
@@ -753,9 +687,7 @@ bool CCECBusDevice::TransmitInactiveSource(void)
   uint16_t iPhysicalAddress;
   {
     CLockObject lock(m_mutex);
-    CStdString strLog;
-    strLog.Format("<< %s (%X) -> broadcast (F): inactive source", GetLogicalAddressName(), m_iLogicalAddress);
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %s (%X) -> broadcast (F): inactive source", GetLogicalAddressName(), m_iLogicalAddress);
     iPhysicalAddress = m_iPhysicalAddress;
   }
 
@@ -767,9 +699,7 @@ bool CCECBusDevice::TransmitMenuState(cec_logical_address dest)
   cec_menu_state menuState;
   {
     CLockObject lock(m_mutex);
-    CStdString strLog;
-    strLog.Format("<< %s (%X) -> %s (%X): menu state '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, ToString(m_menuState));
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %s (%X) -> %s (%X): menu state '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, ToString(m_menuState));
     menuState = m_menuState;
   }
 
@@ -781,9 +711,7 @@ bool CCECBusDevice::TransmitOSDName(cec_logical_address dest)
   CStdString strDeviceName;
   {
     CLockObject lock(m_mutex);
-    CStdString strLog;
-    strLog.Format("<< %s (%X) -> %s (%X): OSD name '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, m_strDeviceName.c_str());
-    AddLog(CEC_LOG_NOTICE, strLog.c_str());
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %s (%X) -> %s (%X): OSD name '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, m_strDeviceName.c_str());
     strDeviceName = m_strDeviceName;
   }
 
@@ -794,10 +722,7 @@ bool CCECBusDevice::TransmitOSDString(cec_logical_address dest, cec_display_cont
 {
   if (!IsUnsupportedFeature(CEC_OPCODE_SET_OSD_STRING))
   {
-    CStdString strLog;
-    strLog.Format("<< %s (%X) -> %s (%X): display OSD message '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, strMessage);
-    AddLog(CEC_LOG_NOTICE, strLog.c_str());
-
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %s (%X) -> %s (%X): display OSD message '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, strMessage);
     return m_handler->TransmitOSDString(m_iLogicalAddress, dest, duration, strMessage);
   }
   return false;
@@ -812,10 +737,7 @@ bool CCECBusDevice::TransmitPhysicalAddress(void)
     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());
-
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %s (%X) -> broadcast (F): physical adddress %4x", GetLogicalAddressName(), m_iLogicalAddress, m_iPhysicalAddress);
     iPhysicalAddress = m_iPhysicalAddress;
     type = m_type;
   }
@@ -833,11 +755,9 @@ bool CCECBusDevice::TransmitPoll(cec_logical_address dest)
   if (destDevice->m_deviceStatus == CEC_DEVICE_STATUS_HANDLED_BY_LIBCEC)
     return bReturn;
 
-  CStdString strLog;
-  strLog.Format("<< %s (%X) -> %s (%X): POLL", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest);
-  AddLog(CEC_LOG_NOTICE, strLog.c_str());
+  CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %s (%X) -> %s (%X): POLL", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest);
   bReturn = m_handler->TransmitPoll(m_iLogicalAddress, dest);
-  AddLog(CEC_LOG_DEBUG, bReturn ? ">> POLL sent" : ">> POLL not sent");
+  CLibCEC::AddLog(CEC_LOG_DEBUG, bReturn ? ">> POLL sent" : ">> POLL not sent");
 
   CLockObject lock(m_mutex);
   if (bReturn)
@@ -856,9 +776,7 @@ bool CCECBusDevice::TransmitPowerState(cec_logical_address dest)
   cec_power_status state;
   {
     CLockObject lock(m_mutex);
-    CStdString strLog;
-    strLog.Format("<< %s (%X) -> %s (%X): %s", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, ToString(m_powerStatus));
-    AddLog(CEC_LOG_NOTICE, strLog.c_str());
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %s (%X) -> %s (%X): %s", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, ToString(m_powerStatus));
     state = m_powerStatus;
   }
 
@@ -877,20 +795,14 @@ bool CCECBusDevice::TransmitVendorID(cec_logical_address dest, bool bSendAbort /
   {
     if (bSendAbort)
     {
-      CStdString strLog;
-      strLog.Format("<< %s (%X) -> %s (%X): vendor id feature abort", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest);
-      AddLog(CEC_LOG_NOTICE, strLog);
-
+      CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %s (%X) -> %s (%X): vendor id feature abort", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest);
       m_processor->TransmitAbort(dest, CEC_OPCODE_GIVE_DEVICE_VENDOR_ID);
     }
     return false;
   }
   else
   {
-    CStdString strLog;
-    strLog.Format("<< %s (%X) -> %s (%X): vendor id %s (%x)", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, ToString((cec_vendor_id)iVendorId), iVendorId);
-    AddLog(CEC_LOG_NOTICE, strLog);
-
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %s (%X) -> %s (%X): vendor id %s (%x)", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, ToString((cec_vendor_id)iVendorId), iVendorId);
     return m_handler->TransmitVendorID(m_iLogicalAddress, iVendorId);
   }
 }
index 412504e1987286b1d849eebee53c2de7b4516b61..ba686322ca3fe9dab6c87b3817b3afa1f1306477 100644 (file)
@@ -50,7 +50,6 @@ namespace CEC
     CCECBusDevice(CCECProcessor *processor, cec_logical_address address, uint16_t iPhysicalAddress = 0);
     virtual ~CCECBusDevice(void);
 
-    virtual void AddLog(cec_log_level level, const CStdString &strMessage);
     virtual bool HandleCommand(const cec_command &command);
     virtual bool PowerOn(void);
     virtual bool Standby(void);
index f9689cbe81a5ffb8816f12bed4995802f382a5b0..86c1679cabe9e5bbb26b725ade214047c3224122 100644 (file)
@@ -33,6 +33,7 @@
 #include "CECPlaybackDevice.h"
 #include "../implementations/CECCommandHandler.h"
 #include "../CECProcessor.h"
+#include "../LibCEC.h"
 
 using namespace CEC;
 using namespace PLATFORM;
@@ -58,10 +59,7 @@ void CCECPlaybackDevice::SetDeckStatus(cec_deck_info deckStatus)
   CLockObject lock(m_mutex);
   if (m_deckStatus != deckStatus && m_deckStatus != CEC_DECK_INFO_OTHER_STATUS_LG)
   {
-    CStdString strLog;
-    strLog.Format(">> %s (%X): deck status changed from '%s' to '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_deckStatus), ToString(deckStatus));
-    AddLog(CEC_LOG_DEBUG, strLog.c_str());
-
+    CLibCEC::AddLog(CEC_LOG_DEBUG, ">> %s (%X): deck status changed from '%s' to '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_deckStatus), ToString(deckStatus));
     m_deckStatus = deckStatus;
   }
 }
@@ -77,10 +75,7 @@ void CCECPlaybackDevice::SetDeckControlMode(cec_deck_control_mode mode)
   CLockObject lock(m_mutex);
   if (m_deckControlMode != mode)
   {
-    CStdString strLog;
-    strLog.Format(">> %s (%X): deck control mode changed from '%s' to '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_deckControlMode), ToString(mode));
-    AddLog(CEC_LOG_DEBUG, strLog.c_str());
-
+    CLibCEC::AddLog(CEC_LOG_DEBUG, ">> %s (%X): deck control mode changed from '%s' to '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_deckControlMode), ToString(mode));
     m_deckControlMode = mode;
   }
 }
@@ -90,9 +85,7 @@ bool CCECPlaybackDevice::TransmitDeckStatus(cec_logical_address dest)
   cec_deck_info state;
   {
     CLockObject lock(m_mutex);
-    CStdString strLog;
-    strLog.Format("<< %s (%X) -> %s (%X): deck status '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, ToString(m_deckStatus));
-    AddLog(CEC_LOG_NOTICE, strLog);
+    CLibCEC::AddLog(CEC_LOG_NOTICE, "<< %s (%X) -> %s (%X): deck status '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, ToString(m_deckStatus));
     state = m_deckStatus;
   }
 
index bf9dea52a25d982c027bc5345f06421f0094561a..1df94fa061c1a194936737bf1c7310d5a14b04fd 100644 (file)
@@ -33,6 +33,7 @@
 #include "ANCommandHandler.h"
 #include "../devices/CECBusDevice.h"
 #include "../CECProcessor.h"
+#include "../LibCEC.h"
 
 using namespace CEC;
 
@@ -62,10 +63,7 @@ bool CANCommandHandler::HandleVendorRemoteButtonDown(const cec_command &command)
 
     if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
     {
-      CStdString strLog;
-      strLog.Format("key pressed: %1x", key.keycode);
-      m_busDevice->AddLog(CEC_LOG_DEBUG, strLog);
-
+      CLibCEC::AddLog(CEC_LOG_DEBUG, "key pressed: %1x", key.keycode);
       m_busDevice->GetProcessor()->AddKey(key);
     }
   }
index d407e40221df6aad75f61c354ee5d8ddca96a455..0178ae069fedcef2123231dc5fadd80f408f4521 100644 (file)
@@ -35,6 +35,7 @@
 #include "../devices/CECAudioSystem.h"
 #include "../devices/CECPlaybackDevice.h"
 #include "../CECProcessor.h"
+#include "../LibCEC.h"
 
 using namespace CEC;
 using namespace std;
@@ -66,9 +67,7 @@ bool CCECCommandHandler::HandleCommand(const cec_command &command)
   bool bHandled(true);
 
   MarkBusy();
-  CStdString strLog;
-  strLog.Format(">> %s (%X) -> %s (%X): %s (%2X)", m_processor->ToString(command.initiator), command.initiator, m_processor->ToString(command.destination), command.destination, m_processor->ToString(command.opcode), command.opcode);
-  m_busDevice->AddLog(CEC_LOG_NOTICE, strLog);
+  CLibCEC::AddLog(CEC_LOG_NOTICE, ">> %s (%X) -> %s (%X): %s (%2X)", m_processor->ToString(command.initiator), command.initiator, m_processor->ToString(command.destination), command.destination, m_processor->ToString(command.opcode), command.opcode);
 
   m_processor->AddCommand(command);
 
@@ -422,9 +421,7 @@ bool CCECCommandHandler::HandleRequestActiveSource(const cec_command &command)
 {
   if (m_processor->IsStarted())
   {
-    CStdString strLog;
-    strLog.Format(">> %i requests active source", (uint8_t) command.initiator);
-    m_busDevice->AddLog(CEC_LOG_DEBUG, strLog.c_str());
+    CLibCEC::AddLog(CEC_LOG_DEBUG, ">> %i requests active source", (uint8_t) command.initiator);
 
     vector<CCECBusDevice *> devices;
     for (size_t iDevicePtr = 0; iDevicePtr < GetMyDevices(devices); iDevicePtr++)
@@ -505,9 +502,7 @@ bool CCECCommandHandler::HandleSetStreamPath(const cec_command &command)
   if (m_processor->IsStarted() && command.parameters.size >= 2)
   {
     uint16_t iStreamAddress = ((uint16_t)command.parameters[0] << 8) | ((uint16_t)command.parameters[1]);
-    CStdString strLog;
-    strLog.Format(">> %i sets stream path to physical address %04x", command.initiator, iStreamAddress);
-    m_busDevice->AddLog(CEC_LOG_DEBUG, strLog.c_str());
+    CLibCEC::AddLog(CEC_LOG_DEBUG, ">> %i sets stream path to physical address %04x", command.initiator, iStreamAddress);
 
     /* one of the device handled by libCEC has been made active */
     CCECBusDevice *device = GetDeviceByPhysicalAddress(iStreamAddress);
@@ -600,9 +595,7 @@ bool CCECCommandHandler::HandleUserControlPressed(const cec_command &command)
 
     if (command.parameters[0] <= CEC_USER_CONTROL_CODE_MAX)
     {
-      CStdString strLog;
-      strLog.Format("key pressed: %x", command.parameters[0]);
-      m_busDevice->AddLog(CEC_LOG_DEBUG, strLog.c_str());
+      CLibCEC::AddLog(CEC_LOG_DEBUG, "key pressed: %x", command.parameters[0]);
 
       if (command.parameters[0] == CEC_USER_CONTROL_CODE_POWER ||
           command.parameters[0] == CEC_USER_CONTROL_CODE_POWER_ON_FUNCTION)
@@ -647,9 +640,7 @@ bool CCECCommandHandler::HandleVendorCommand(const cec_command & UNUSED(command)
 
 void CCECCommandHandler::UnhandledCommand(const cec_command &command)
 {
-  CStdString strLog;
-  strLog.Format("unhandled command with opcode %02x from address %d", command.opcode, command.initiator);
-  m_busDevice->AddLog(CEC_LOG_DEBUG, strLog);
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "unhandled command with opcode %02x from address %d", command.opcode, command.initiator);
 }
 
 size_t CCECCommandHandler::GetMyDevices(vector<CCECBusDevice *> &devices) const
@@ -694,7 +685,7 @@ bool CCECCommandHandler::SetVendorId(const cec_command &command)
   bool bChanged(false);
   if (command.parameters.size < 3)
   {
-    m_busDevice->AddLog(CEC_LOG_WARNING, "invalid vendor ID received");
+    CLibCEC::AddLog(CEC_LOG_WARNING, "invalid vendor ID received");
     return bChanged;
   }
 
@@ -726,9 +717,7 @@ void CCECCommandHandler::SetPhysicalAddress(cec_logical_address iAddress, uint16
 
 void CCECCommandHandler::HandlePoll(const cec_logical_address iInitiator, const cec_logical_address iDestination)
 {
-  CStdString strLog;
-  strLog.Format("<< POLL: %s (%x) -> %s (%x)", m_processor->ToString(iInitiator), iInitiator, m_processor->ToString(iDestination), iDestination);
-  m_processor->AddLog(CEC_LOG_DEBUG, strLog);
+  CLibCEC::AddLog(CEC_LOG_DEBUG, "<< POLL: %s (%x) -> %s (%x)", m_processor->ToString(iInitiator), iInitiator, m_processor->ToString(iDestination), iDestination);
 }
 
 bool CCECCommandHandler::HandleReceiveFailed(void)
@@ -973,7 +962,7 @@ bool CCECCommandHandler::Transmit(cec_command &command, bool bExpectResponse /*
       m_expectedResponse = expectedResponse;
       if (m_processor->Transmit(command))
       {
-        m_processor->AddLog(CEC_LOG_DEBUG, "command transmitted");
+        CLibCEC::AddLog(CEC_LOG_DEBUG, "command transmitted");
         bReturn = bExpectResponse ?
             m_condition.Wait(m_receiveMutex, m_iTransmitWait) :
             true;