timeout parameter removed from Close()/cec_close(). return type changed to void....
authorLars Op den Kamp <lars.opdenkamp@pulse-eight.com>
Mon, 3 Oct 2011 11:09:25 +0000 (13:09 +0200)
committerLars Op den Kamp <lars.opdenkamp@pulse-eight.com>
Mon, 3 Oct 2011 11:09:25 +0000 (13:09 +0200)
include/CECExportsC.h
include/CECExportsCpp.h
src/lib/CECParser.cpp
src/lib/CECParser.h
src/lib/CECParserC.cpp
src/testclient/main.cpp

index 19706f468f93ddd70f607072c03a0aec79204428..d03bfe0b2d77fd3262cf851caa3a7a799202d7e7 100644 (file)
@@ -45,13 +45,17 @@ extern "C" {
  * @param iPhysicalAddress The physical address of this device. 0x1000 by default.
  * @return True when initialised, false otherwise.
  */
-
 #ifdef __cplusplus
 extern DECLSPEC bool cec_init(const char *strDeviceName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, int iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS);
 #else
 extern DECLSPEC bool cec_init(const char *strDeviceName, cec_logical_address iLogicalAddress = CECDEVICE_PLAYBACKDEVICE1, int iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS);
 #endif
 
+/*!
+ * @brief Unload the CEC adapter library.
+ */
+extern DECLSPEC void cec_destroy(void);
+
 /*!
  * @brief Open a connection to the CEC adapter.
  * @param strPort The path to the port.
@@ -62,9 +66,8 @@ extern DECLSPEC bool cec_open(const char *strPort, int iTimeout);
 
 /*!
  * @brief Close the connection to the CEC adapter.
- * @param iTimeout Timeout in ms
  */
-extern DECLSPEC bool cec_close(int iTimeout);
+extern DECLSPEC void cec_close(void);
 
 /*!
  * @brief Ping the CEC adapter.
index a87c2d018434d19e3ba457113b9f503fbb85f8bd..635d5056bb8d7004188dc3e1e524f1e5cd05f9af 100644 (file)
@@ -44,7 +44,7 @@ namespace CEC
     /*!
      * @see cec_close
      */
-    virtual bool Close(int iTimeoutMs = 2000) = 0;
+    virtual void Close(void) = 0;
 
     /*!
      * @see cec_find_devices
index 1eaa1f5bb9d3d8f7012cdecb0e18f3950f9cb7e1..7a6d871700a7d701ec0eccf572a9c62d3e883afa 100644 (file)
@@ -66,7 +66,7 @@ CCECParser::CCECParser(const char *strDeviceName, cec_logical_address iLogicalAd
 
 CCECParser::~CCECParser(void)
 {
-  Close(0);
+  Close();
   m_communication->Close();
   delete m_communication;
 }
@@ -110,22 +110,10 @@ bool CCECParser::Open(const char *strPort, int iTimeoutMs /* = 10000 */)
   return false;
 }
 
-bool CCECParser::Close(int iTimeoutMs /* = 2000 */)
+void CCECParser::Close(void)
 {
   m_bRunning = false;
-  bool bExit(false);
-  if (iTimeoutMs > 0)
-  {
-    bExit = m_exitCondition.Wait(&m_mutex, iTimeoutMs);
-    m_mutex.Unlock();
-  }
-  else
-  {
-    pthread_join(m_thread, NULL);
-    bExit = true;
-  }
-
-  return bExit;
+  pthread_join(m_thread, NULL);
 }
 
 void *CCECParser::ThreadHandler(CCECParser *parser)
index 1c72c1ec56c276f24acfb2bf112f886a48f6aa2a..7b369df474588493b4d94f6b4a2061cb0d1977dc 100644 (file)
@@ -54,7 +54,7 @@ namespace CEC
       virtual ~CCECParser(void);
 
       virtual bool Open(const char *strPort, int iTimeout = 10000);
-      virtual bool Close(int iTimeoutMs = 2000);
+      virtual void Close(void);
       virtual int  FindDevices(std::vector<cec_device> &deviceList, const char *strDevicePath = NULL);
       virtual bool Ping(void);
       virtual bool StartBootloader(void);
index 7deb982920866b62f31428f71020c1bf2a1543bc..5d7bf61223d952afa496d6346439e584dfb8591a 100644 (file)
@@ -47,6 +47,13 @@ bool cec_init(const char *strDeviceName, cec_logical_address iLogicalAddress /*
   return (cec_parser != NULL);
 }
 
+void cec_destroy(void)
+{
+  cec_close();
+  delete cec_parser;
+  cec_parser = NULL;
+}
+
 bool cec_open(const char *strPort, int iTimeout)
 {
   if (cec_parser)
@@ -54,15 +61,10 @@ bool cec_open(const char *strPort, int iTimeout)
   return false;
 }
 
-bool cec_close(int iTimeout)
+void cec_close(void)
 {
-  bool bReturn = false;
   if (cec_parser)
-    bReturn = cec_parser->Close(iTimeout);
-
-  delete cec_parser;
-  cec_parser = NULL;
-  return bReturn;
+    cec_parser->Close();
 }
 
 bool cec_ping(void)
index 37df94d41ac49f79c095672dcb7890806e481616..458c73404b4750062329526ec6cf3582e74975b6 100644 (file)
@@ -263,7 +263,8 @@ int main (int argc, char *argv[])
     CCondition::Sleep(50);
   }
 
-  parser->PowerOffDevices(CECDEVICE_TV);
+  parser->PowerOffDevices(CECDEVICE_BROADCAST);
+  parser->Close();
   flush_log(parser);
   UnloadLibCec(parser);
   return 0;