cec: added RescanDevices()/cec_rescan_devices() to the interface, to let libCEC force...
[deb_libcec.git] / include / cecloader.h
index 1e6d7167710053aa5d5222b87f0748748e849ac1..624f29a5c7a54961ab53f0565e95945138fbb65c 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * This file is part of the libCEC(R) library.
  *
- * libCEC(R) is Copyright (C) 2011 Pulse-Eight Limited.  All rights reserved.
+ * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited.  All rights reserved.
  * libCEC(R) is an original work, containing original code.
  *
  * libCEC(R) is a trademark of Pulse-Eight Limited.
 HINSTANCE g_libCEC = NULL;
 
 /*!
- * @deprecated Please use LibCecInit() instead
+ * @brief Create a new libCEC instance.
+ * @param strDeviceName The name of the primary device to pass to other CEC devices.
+ * @param types The list of device types to register on the bus.
+ * @param strLib The name of and/or path to libCEC
+ * @return An instance of libCEC or NULL when it failed to load.
  */
-CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS, const char *strLib = NULL)
+CEC::ICECAdapter *LibCecInit(const char *strDeviceName, CEC::cec_device_type_list types, const char *strLib = NULL)
 {
   if (!g_libCEC)
 #if defined(_WIN64)
@@ -54,22 +58,21 @@ CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_address iLogi
   if (!g_libCEC)
     return NULL;
 
-  typedef void* (__cdecl*_CreateLibCec)(const char *, uint8_t, uint16_t);
-  _CreateLibCec CreateLibCec;
-  CreateLibCec = (_CreateLibCec) (GetProcAddress(g_libCEC, "CECCreate"));
-  if (!CreateLibCec)
+  typedef void* (__cdecl*_LibCecInit)(const char *, CEC::cec_device_type_list);
+  _LibCecInit LibCecInit;
+  LibCecInit = (_LibCecInit) (GetProcAddress(g_libCEC, "CECInit"));
+  if (!LibCecInit)
     return NULL;
-  return static_cast< CEC::ICECAdapter* > (CreateLibCec(strName, (uint8_t) iLogicalAddress, iPhysicalAddress));
+  return static_cast< CEC::ICECAdapter* > (LibCecInit(strDeviceName, types));
 }
 
 /*!
  * @brief Create a new libCEC instance.
- * @param strDeviceName The name of the primary device to pass to other CEC devices.
- * @param types The list of device types to register on the bus.
+ * @param configuration The configuration to pass to libCEC
  * @param strLib The name of and/or path to libCEC
- * @return An instance of libCEC or NULL when it failed to load.
+ * @return An instance of ICECAdapter or NULL on error.
  */
-CEC::ICECAdapter *LibCecInit(const char *strDeviceName, CEC::cec_device_type_list types, const char *strLib = NULL)
+CEC::ICECAdapter *LibCecInitialise(CEC::libcec_configuration *configuration, const char *strLib = NULL)
 {
   if (!g_libCEC)
 #if defined(_WIN64)
@@ -80,12 +83,16 @@ CEC::ICECAdapter *LibCecInit(const char *strDeviceName, CEC::cec_device_type_lis
   if (!g_libCEC)
     return NULL;
 
-  typedef void* (__cdecl*_LibCecInit)(const char *, CEC::cec_device_type_list);
-  _LibCecInit LibCecInit;
-  LibCecInit = (_LibCecInit) (GetProcAddress(g_libCEC, "CECInit"));
-  if (!LibCecInit)
+  typedef void* (__cdecl*_LibCecInitialise)(CEC::libcec_configuration *);
+  _LibCecInitialise LibCecInitialise;
+  LibCecInitialise = (_LibCecInitialise) (GetProcAddress(g_libCEC, "CECInitialise"));
+  if (!LibCecInitialise)
+  {
+    cout << "cannot find CECInitialise" << endl;
     return NULL;
-  return static_cast< CEC::ICECAdapter* > (LibCecInit(strDeviceName, types));
+  }
+
+  return static_cast< CEC::ICECAdapter* > (LibCecInitialise(configuration));
 }
 
 /*!
@@ -111,9 +118,13 @@ void UnloadLibCec(CEC::ICECAdapter *device)
 void *g_libCEC = NULL;
 
 /*!
- * @deprecated Please use LibCecInit() instead
+ * @brief Create a new libCEC instance.
+ * @param strDeviceName The name of the primary device to pass to other CEC devices.
+ * @param types The list of device types to register on the bus.
+ * @param strLib The name of and/or path to libCEC
+ * @return An instance of libCEC or NULL when it failed to load.
  */
-CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS, const char *strLib = NULL)
+CEC::ICECAdapter *LibCecInit(const char *strDeviceName, CEC::cec_device_type_list types, const char *strLib = NULL)
 {
   if (!g_libCEC)
   {
@@ -133,25 +144,24 @@ CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_address iLogi
     }
   }
 
-  typedef void* _CreateLibCec(const char *, uint8_t, uint16_t);
-  _CreateLibCec* CreateLibCec = (_CreateLibCec*) dlsym(g_libCEC, "CECCreate");
-  if (!CreateLibCec)
+  typedef void* _LibCecInit(const char *, CEC::cec_device_type_list);
+  _LibCecInit* LibCecInit = (_LibCecInit*) dlsym(g_libCEC, "CECInit");
+  if (!LibCecInit)
   {
-    cout << "cannot find CECCreate" << endl;
+    cout << "cannot find CECInit" << endl;
     return NULL;
   }
 
-  return (CEC::ICECAdapter*) CreateLibCec(strName, iLogicalAddress, iPhysicalAddress);
+  return (CEC::ICECAdapter*) LibCecInit(strDeviceName, types);
 }
 
 /*!
  * @brief Create a new libCEC instance.
- * @param strDeviceName The name of the primary device to pass to other CEC devices.
- * @param types The list of device types to register on the bus.
+ * @param configuration The configuration to pass to libCEC
  * @param strLib The name of and/or path to libCEC
- * @return An instance of libCEC or NULL when it failed to load.
+ * @return An instance of ICECAdapter or NULL on error.
  */
-CEC::ICECAdapter *LibCecInit(const char *strDeviceName, CEC::cec_device_type_list types, const char *strLib = NULL)
+CEC::ICECAdapter *LibCecInitialise(CEC::libcec_configuration *configuration, const char *strLib = NULL)
 {
   if (!g_libCEC)
   {
@@ -171,15 +181,15 @@ CEC::ICECAdapter *LibCecInit(const char *strDeviceName, CEC::cec_device_type_lis
     }
   }
 
-  typedef void* _LibCecInit(const char *, CEC::cec_device_type_list);
-  _LibCecInit* LibCecInit = (_LibCecInit*) dlsym(g_libCEC, "CECInit");
-  if (!LibCecInit)
+  typedef void* _LibCecInitialise(CEC::libcec_configuration *);
+  _LibCecInitialise* LibCecInitialise = (_LibCecInitialise*) dlsym(g_libCEC, "CECInitialise");
+  if (!LibCecInitialise)
   {
-    cout << "cannot find CECInit" << endl;
+    cout << "cannot find CECInitialise" << endl;
     return NULL;
   }
 
-  return (CEC::ICECAdapter*) LibCecInit(strDeviceName, types);
+  return (CEC::ICECAdapter*) LibCecInitialise(configuration);
 }
 
 /*!