summaryrefslogtreecommitdiffstats
path: root/xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon_base.h')
-rw-r--r--xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon_base.h43
1 files changed, 32 insertions, 11 deletions
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 @@
6 * See LICENSES/README.md for more information. 6 * See LICENSES/README.md for more information.
7 */ 7 */
8 8
9#pragma once
10
11#ifndef C_API_ADDON_BASE_H 9#ifndef C_API_ADDON_BASE_H
12#define C_API_ADDON_BASE_H 10#define C_API_ADDON_BASE_H
13 11
@@ -27,6 +25,8 @@
27#endif 25#endif
28#endif 26#endif
29 27
28// Generic helper definitions for smallest possible alignment
29//@{
30#undef ATTRIBUTE_PACKED 30#undef ATTRIBUTE_PACKED
31#undef PRAGMA_PACK_BEGIN 31#undef PRAGMA_PACK_BEGIN
32#undef PRAGMA_PACK_END 32#undef PRAGMA_PACK_END
@@ -34,18 +34,16 @@
34#if defined(__GNUC__) 34#if defined(__GNUC__)
35#define ATTRIBUTE_PACKED __attribute__((packed)) 35#define ATTRIBUTE_PACKED __attribute__((packed))
36#define PRAGMA_PACK 0 36#define PRAGMA_PACK 0
37#define ATTRIBUTE_HIDDEN __attribute__((visibility("hidden")))
38#endif 37#endif
39 38
40#if !defined(ATTRIBUTE_PACKED) 39#if !defined(ATTRIBUTE_PACKED)
41#define ATTRIBUTE_PACKED 40#define ATTRIBUTE_PACKED
42#define PRAGMA_PACK 1 41#define PRAGMA_PACK 1
43#endif 42#endif
43//@}
44 44
45#if !defined(ATTRIBUTE_HIDDEN) 45// Generic helper definitions for inline function support
46#define ATTRIBUTE_HIDDEN 46//@{
47#endif
48
49#ifdef _MSC_VER 47#ifdef _MSC_VER
50#define ATTRIBUTE_FORCEINLINE __forceinline 48#define ATTRIBUTE_FORCEINLINE __forceinline
51#elif defined(__GNUC__) 49#elif defined(__GNUC__)
@@ -59,6 +57,27 @@
59#else 57#else
60#define ATTRIBUTE_FORCEINLINE inline 58#define ATTRIBUTE_FORCEINLINE inline
61#endif 59#endif
60//@}
61
62// Generic helper definitions for shared library support
63//@{
64#if defined _WIN32 || defined __CYGWIN__
65#define ATTRIBUTE_DLL_IMPORT __declspec(dllimport)
66#define ATTRIBUTE_DLL_EXPORT __declspec(dllexport)
67#define ATTRIBUTE_DLL_LOCAL
68#else
69#if __GNUC__ >= 4
70#define ATTRIBUTE_DLL_IMPORT __attribute__ ((visibility ("default")))
71#define ATTRIBUTE_DLL_EXPORT __attribute__ ((visibility ("default")))
72#define ATTRIBUTE_DLL_LOCAL __attribute__ ((visibility ("hidden")))
73#else
74#define ATTRIBUTE_DLL_IMPORT
75#define ATTRIBUTE_DLL_EXPORT
76#define ATTRIBUTE_DLL_LOCAL
77#endif
78#endif
79#define ATTRIBUTE_HIDDEN ATTRIBUTE_DLL_LOCAL // Fallback to old
80//@}
62 81
63// Hardware specific device context interface 82// Hardware specific device context interface
64#define ADDON_HARDWARE_CONTEXT void* 83#define ADDON_HARDWARE_CONTEXT void*
@@ -75,9 +94,11 @@ extern "C"
75#endif /* __cplusplus */ 94#endif /* __cplusplus */
76 95
77 //============================================================================ 96 //============================================================================
78 /// @ingroup cpp_kodi_addon_addonbase 97 /// @ingroup cpp_kodi_addon_addonbase_Defs
79 /// @brief Return value of functions in @ref cpp_kodi_addon_addonbase "kodi::addon::CAddonBase" 98 /// @defgroup cpp_kodi_addon_addonbase_Defs_ADDON_STATUS enum ADDON_STATUS
80 /// and associated classes. 99 /// @brief <b>Return value of functions in @ref cpp_kodi_addon_addonbase "kodi::addon::CAddonBase"
100 /// and associated classes</b>\n
101 /// With this Kodi can do any follow-up work or add-on e.g. declare it as defective.
81 /// 102 ///
82 ///@{ 103 ///@{
83 typedef enum ADDON_STATUS 104 typedef enum ADDON_STATUS
@@ -211,7 +232,7 @@ extern "C"
211 typedef struct KodiToAddonFuncTable_Addon 232 typedef struct KodiToAddonFuncTable_Addon
212 { 233 {
213 void (*destroy)(); 234 void (*destroy)();
214 ADDON_STATUS (*get_status)(); 235 ADDON_STATUS (*get_status)(); // TODO unused remove by next min version increase
215 ADDON_STATUS(*create_instance) 236 ADDON_STATUS(*create_instance)
216 (int instanceType, 237 (int instanceType,
217 const char* instanceID, 238 const char* instanceID,