From 3cb8aa05f8cee9e860cf83531682ff0ed4af6a4f Mon Sep 17 00:00:00 2001 From: manuel Date: Thu, 4 Mar 2021 23:36:40 +0100 Subject: sync with upstream --- .../kodi-dev-kit/include/kodi/c-api/addon_base.h | 43 ++++++++++++++++------ 1 file changed, 32 insertions(+), 11 deletions(-) (limited to 'xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon_base.h') diff --git a/xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon_base.h b/xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon_base.h index faa99fa..1153eca 100644 --- a/xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon_base.h +++ b/xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon_base.h @@ -6,8 +6,6 @@ * See LICENSES/README.md for more information. */ -#pragma once - #ifndef C_API_ADDON_BASE_H #define C_API_ADDON_BASE_H @@ -27,6 +25,8 @@ #endif #endif +// Generic helper definitions for smallest possible alignment +//@{ #undef ATTRIBUTE_PACKED #undef PRAGMA_PACK_BEGIN #undef PRAGMA_PACK_END @@ -34,18 +34,16 @@ #if defined(__GNUC__) #define ATTRIBUTE_PACKED __attribute__((packed)) #define PRAGMA_PACK 0 -#define ATTRIBUTE_HIDDEN __attribute__((visibility("hidden"))) #endif #if !defined(ATTRIBUTE_PACKED) #define ATTRIBUTE_PACKED #define PRAGMA_PACK 1 #endif +//@} -#if !defined(ATTRIBUTE_HIDDEN) -#define ATTRIBUTE_HIDDEN -#endif - +// Generic helper definitions for inline function support +//@{ #ifdef _MSC_VER #define ATTRIBUTE_FORCEINLINE __forceinline #elif defined(__GNUC__) @@ -59,6 +57,27 @@ #else #define ATTRIBUTE_FORCEINLINE inline #endif +//@} + +// Generic helper definitions for shared library support +//@{ +#if defined _WIN32 || defined __CYGWIN__ +#define ATTRIBUTE_DLL_IMPORT __declspec(dllimport) +#define ATTRIBUTE_DLL_EXPORT __declspec(dllexport) +#define ATTRIBUTE_DLL_LOCAL +#else +#if __GNUC__ >= 4 +#define ATTRIBUTE_DLL_IMPORT __attribute__ ((visibility ("default"))) +#define ATTRIBUTE_DLL_EXPORT __attribute__ ((visibility ("default"))) +#define ATTRIBUTE_DLL_LOCAL __attribute__ ((visibility ("hidden"))) +#else +#define ATTRIBUTE_DLL_IMPORT +#define ATTRIBUTE_DLL_EXPORT +#define ATTRIBUTE_DLL_LOCAL +#endif +#endif +#define ATTRIBUTE_HIDDEN ATTRIBUTE_DLL_LOCAL // Fallback to old +//@} // Hardware specific device context interface #define ADDON_HARDWARE_CONTEXT void* @@ -75,9 +94,11 @@ extern "C" #endif /* __cplusplus */ //============================================================================ - /// @ingroup cpp_kodi_addon_addonbase - /// @brief Return value of functions in @ref cpp_kodi_addon_addonbase "kodi::addon::CAddonBase" - /// and associated classes. + /// @ingroup cpp_kodi_addon_addonbase_Defs + /// @defgroup cpp_kodi_addon_addonbase_Defs_ADDON_STATUS enum ADDON_STATUS + /// @brief Return value of functions in @ref cpp_kodi_addon_addonbase "kodi::addon::CAddonBase" + /// and associated classes\n + /// With this Kodi can do any follow-up work or add-on e.g. declare it as defective. /// ///@{ typedef enum ADDON_STATUS @@ -211,7 +232,7 @@ extern "C" typedef struct KodiToAddonFuncTable_Addon { void (*destroy)(); - ADDON_STATUS (*get_status)(); + ADDON_STATUS (*get_status)(); // TODO unused remove by next min version increase ADDON_STATUS(*create_instance) (int instanceType, const char* instanceID, -- cgit v1.2.3