cec: refactored threading/locking - added windows native instead of pthread-win32...
[deb_libcec.git] / src / lib / platform / windows / os-types.h
similarity index 58%
rename from src/lib/platform/posix/pthreads.h
rename to src/lib/platform/windows/os-types.h
index b39c1e99cda2e24764143b43eceaa18a68103735..3943510fbad76ec8e55097d411d770b88044a331 100644 (file)
  *     http://www.pulse-eight.net/
  */
 
-#include "../threads.h"
+#pragma warning(disable:4005) // Disable "warning C4005: '_WINSOCKAPI_' : macro redefinition"
+#include <winsock2.h>
+#pragma warning(default:4005)
 
-namespace CEC
-{
-  class CMutex : public IMutex
-  {
-  public:
-    CMutex(bool bRecursive = true);
-    virtual ~CMutex(void);
+#include <sys/timeb.h>
+#include <io.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <stddef.h>
+#include <process.h>
 
-    virtual bool TryLock(void);
-    virtual bool Lock(void);
-    virtual void Unlock(void);
+typedef signed __int8    int8_t;
+typedef signed __int16   int16_t;
+typedef signed __int32   int32_t;
+typedef signed __int64   int64_t;
+typedef unsigned __int8  uint8_t;
+typedef unsigned __int16 uint16_t;
+typedef unsigned __int32 uint32_t;
+typedef unsigned __int64 uint64_t;
 
-    pthread_mutex_t m_mutex;
+#define snprintf _snprintf
 
-  private:
-    static pthread_mutexattr_t *GetMutexAttribute();
-  };
+#if defined(_MSC_VER)
+#pragma warning (push)
+#endif
 
-  class CCondition : public ICondition
-  {
-  public:
-    CCondition(void);
-    virtual ~CCondition(void);
+#define NOGDI
+#if defined(_MSC_VER) /* prevent inclusion of wingdi.h */
+#pragma warning (pop)
+#endif
 
-    virtual void Broadcast(void);
-    virtual void Signal(void);
-    virtual bool Wait(IMutex *mutex, uint32_t iTimeout = 0);
-
-  private:
-    pthread_cond_t  m_cond;
-  };
-
-  class CThread : public IThread
-  {
-  public:
-    CThread(void) { };
-    virtual ~CThread(void) { };
-
-    virtual bool CreateThread(bool bWait = true);
-    virtual bool StopThread(bool bWaitForExit = true);
-
-    static void *ThreadHandler(CThread *thread);
-
-  private:
-    pthread_t  m_thread;
-  };
-};
+#pragma warning(disable:4189) /* disable 'defined but not used' */
+#pragma warning(disable:4100) /* disable 'unreferenced formal parameter' */