diff options
Diffstat (limited to 'xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h')
| -rw-r--r-- | xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h index ddeb1db..70bd19b 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | #endif | 34 | #endif |
| 35 | 35 | ||
| 36 | struct VFSDirEntry; | 36 | struct VFSDirEntry; |
| 37 | struct __stat64; | ||
| 37 | 38 | ||
| 38 | #ifdef _WIN32 // windows | 39 | #ifdef _WIN32 // windows |
| 39 | #ifndef _SSIZE_T_DEFINED | 40 | #ifndef _SSIZE_T_DEFINED |
| @@ -47,9 +48,14 @@ typedef intptr_t ssize_t; | |||
| 47 | #include "dlfcn-win32.h" | 48 | #include "dlfcn-win32.h" |
| 48 | #endif | 49 | #endif |
| 49 | 50 | ||
| 50 | #define ADDON_DLL "\\library.xbmc.addon\\libXBMC_addon" ADDON_HELPER_EXT | ||
| 51 | #define ADDON_HELPER_EXT ".dll" | 51 | #define ADDON_HELPER_EXT ".dll" |
| 52 | #define ADDON_HELPER_PATHSEP "\\" | ||
| 53 | #define ADDON_HELPER_ARCHSEP "" | ||
| 54 | #define ADDON_HELPER_ARCH "" | ||
| 55 | |||
| 52 | #else // windows | 56 | #else // windows |
| 57 | #define ADDON_HELPER_PATHSEP "/" | ||
| 58 | #define ADDON_HELPER_ARCHSEP "-" | ||
| 53 | // the ADDON_HELPER_ARCH is the platform dependend name which is used | 59 | // the ADDON_HELPER_ARCH is the platform dependend name which is used |
| 54 | // as part of the name of dynamic addon libraries. It has to match the | 60 | // as part of the name of dynamic addon libraries. It has to match the |
| 55 | // strings which are set in configure.ac for the "ARCH" variable. | 61 | // strings which are set in configure.ac for the "ARCH" variable. |
| @@ -79,14 +85,20 @@ typedef intptr_t ssize_t; | |||
| 79 | #define ADDON_HELPER_EXT ".so" | 85 | #define ADDON_HELPER_EXT ".so" |
| 80 | #endif | 86 | #endif |
| 81 | #include <dlfcn.h> // linux+osx | 87 | #include <dlfcn.h> // linux+osx |
| 82 | #define ADDON_DLL_NAME "libXBMC_addon-" ADDON_HELPER_ARCH ADDON_HELPER_EXT | ||
| 83 | #define ADDON_DLL "/library.xbmc.addon/" ADDON_DLL_NAME | ||
| 84 | #endif | 88 | #endif |
| 89 | |||
| 90 | #define KODI_DLL_NAME(name) "libKODI_" name ADDON_HELPER_ARCHSEP ADDON_HELPER_ARCH ADDON_HELPER_EXT | ||
| 91 | #define XBMC_DLL_NAME(name) "libXBMC_" name ADDON_HELPER_ARCHSEP ADDON_HELPER_ARCH ADDON_HELPER_EXT | ||
| 85 | #if defined(ANDROID) | 92 | #if defined(ANDROID) |
| 86 | #include <sys/stat.h> | 93 | #define KODI_DLL(name) ADDON_HELPER_PATHSEP KODI_DLL_NAME(name) |
| 94 | #define XBMC_DLL(name) ADDON_HELPER_PATHSEP XBMC_DLL_NAME(name) | ||
| 95 | #else | ||
| 96 | #define KODI_DLL(name) ADDON_HELPER_PATHSEP "library.kodi." name ADDON_HELPER_PATHSEP KODI_DLL_NAME(name) | ||
| 97 | #define XBMC_DLL(name) ADDON_HELPER_PATHSEP "library.xbmc." name ADDON_HELPER_PATHSEP XBMC_DLL_NAME(name) | ||
| 87 | #endif | 98 | #endif |
| 88 | 99 | ||
| 89 | struct __stat64; | 100 | #define ADDON_DLL_NAME XBMC_DLL_NAME("addon") |
| 101 | #define ADDON_DLL XBMC_DLL("addon") | ||
| 90 | 102 | ||
| 91 | #ifdef LOG_DEBUG | 103 | #ifdef LOG_DEBUG |
| 92 | #undef LOG_DEBUG | 104 | #undef LOG_DEBUG |
| @@ -147,15 +159,6 @@ namespace ADDON | |||
| 147 | libBasePath = ((cb_array*)m_Handle)->libPath; | 159 | libBasePath = ((cb_array*)m_Handle)->libPath; |
| 148 | libBasePath += ADDON_DLL; | 160 | libBasePath += ADDON_DLL; |
| 149 | 161 | ||
| 150 | #if defined(ANDROID) | ||
| 151 | struct stat st; | ||
| 152 | if(stat(libBasePath.c_str(),&st) != 0) | ||
| 153 | { | ||
| 154 | std::string tempbin = getenv("XBMC_ANDROID_LIBS"); | ||
| 155 | libBasePath = tempbin + "/" + ADDON_DLL_NAME; | ||
| 156 | } | ||
| 157 | #endif | ||
| 158 | |||
| 159 | m_libXBMC_addon = dlopen(libBasePath.c_str(), RTLD_LAZY); | 162 | m_libXBMC_addon = dlopen(libBasePath.c_str(), RTLD_LAZY); |
| 160 | if (m_libXBMC_addon == NULL) | 163 | if (m_libXBMC_addon == NULL) |
| 161 | { | 164 | { |
