cec: changed to use dlopen instead of static linkage. shuffled headers a bit. bumped...
[deb_libcec.git] / include / libcec / CECExports.h
similarity index 60%
rename from include/CECExportsCpp.h
rename to include/libcec/CECExports.h
index 7d70e7fe24c830cf74a36512bf7f316d6a5e0bff..0da18cffb5a594d09d1bcaac830731a043703c2e 100644 (file)
  *     http://www.pulse-eight.net/
  */
 
+#ifndef CECEXPORTS_H_
+#define CECEXPORTS_H_
+
+#include <libcec/CECTypes.h>
+
 namespace CEC
 {
   class ICECAdapter
@@ -119,80 +124,10 @@ namespace CEC
      * @see cec_set_inactive_view
      */
     virtual bool SetInactiveView(void) = 0;
-
   };
 };
 
-extern DECLSPEC void * CECCreate(const char *strDeviceName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS);
-
-extern DECLSPEC void CECDestroy(CEC::ICECAdapter *instance);
-
-#if !defined(DLL_EXPORT)
-#if defined(_WIN32) || defined(_WIN64)
-#include <windows.h>
-#include <conio.h>
-
-static HINSTANCE g_libCEC = NULL;
-static int g_iLibCECInstanceCount = 0;
-
-/*!
- * @see cec_init
- */
-inline CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS)
-{
-  typedef void* (__cdecl*_CreateLibCec)(const char *, uint8_t, uint16_t);
-  _CreateLibCec CreateLibCec;
-
-  if (!g_libCEC)
-    g_libCEC = LoadLibrary("libcec.dll");
-  if (!g_libCEC)
-    return NULL;
-
-  ++g_iLibCECInstanceCount;
-  CreateLibCec = (_CreateLibCec) (GetProcAddress(g_libCEC, "CECCreate"));
-  if (!CreateLibCec)
-    return NULL;
-  return static_cast< CEC::ICECAdapter* > (CreateLibCec(strName, (uint8_t) iLogicalAddress, iPhysicalAddress));
-}
-
-/*!
- * @brief Unload the given libcec instance.
- * @param device The instance to unload.
- */
-inline void UnloadLibCec(CEC::ICECAdapter *device)
-{
-  typedef void (__cdecl*_DestroyLibCec)(void * device);
-  _DestroyLibCec DestroyLibCec;
-  DestroyLibCec = (_DestroyLibCec) (GetProcAddress(g_libCEC, "CECDestroy"));
-  if (DestroyLibCec)
-    DestroyLibCec(device);
-
-  if (--g_iLibCECInstanceCount == 0)
-  {
-    FreeLibrary(g_libCEC);
-    g_libCEC = NULL;
-  }
-};
-
-#else
-
-/*!
- * @see cec_init
- */
-inline CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS)
-{
-  return (CEC::ICECAdapter*) CECCreate(strName, iLogicalAddress, iPhysicalAddress);
-};
-
-/*!
- * @brief Unload the given libcec instance.
- * @param device The instance to unload.
- */
-inline void UnloadLibCec(CEC::ICECAdapter *device)
-{
-  device->Close();
-  CECDestroy(device);
-};
-#endif
+extern "C" DECLSPEC void * CECCreate(const char *strDeviceName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS);
+extern "C" DECLSPEC void CECDestroy(CEC::ICECAdapter *instance);
 
-#endif
+#endif /* CECEXPORTS_H_ */