-/*!
- * @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 *LibCecInit(const char *strDeviceName, CEC::cec_device_type_list types, const char *strLib = NULL)
-{
- if (!g_libCEC)
- {
-#if defined(__APPLE__)
- g_libCEC = dlopen(strLib ? strLib : "libcec.dylib", RTLD_LAZY);
-#else
- g_libCEC = dlopen(strLib ? strLib : "libcec.so", RTLD_LAZY);
-#endif
- if (!g_libCEC)
- {
-#if defined(__APPLE__)
- cout << "cannot find " << (strLib ? strLib : "libcec.dylib") << dlerror() << endl;
-#else
- cout << "cannot find " << (strLib ? strLib : "libcec.so") << dlerror() << endl;
-#endif
- return NULL;
- }
- }
-
- typedef void* _LibCecInit(const char *, CEC::cec_device_type_list);
- _LibCecInit* LibCecInit = (_LibCecInit*) dlsym(g_libCEC, "CECInit");
- if (!LibCecInit)
- {
- cout << "cannot find CECInit" << endl;
- return NULL;
- }
-
- return (CEC::ICECAdapter*) LibCecInit(strDeviceName, types);
-}
-