summaryrefslogtreecommitdiffstats
path: root/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h
diff options
context:
space:
mode:
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.h31
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
36struct VFSDirEntry; 36struct VFSDirEntry;
37struct __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
89struct __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 {