diff options
author | Alwin Esch <alwin.esch@web.de> | 2020-09-12 10:20:19 +0200 |
---|---|---|
committer | Alwin Esch <alwin.esch@web.de> | 2020-09-12 11:17:30 +0200 |
commit | e67a956ff53e04c9fbe8a88f654b4933fb65e3f7 (patch) | |
tree | e50b6671bd1fcc047db75bf74adddb3584d93886 | |
parent | 724892322f2a77dce614dd0332b06ae41406ef36 (diff) |
[addons][platform][android] spearate "C" parts to own file
This place the "C" parts about game to a new file on "kodi/c-api/platform/android/system.h".
This done to allow also "C" language only (as base for other languages) and to confirm safe "C" ABI
between addon and Kodi.
3 files changed, 42 insertions, 23 deletions
diff --git a/xbmc/addons/kodi-dev-kit/include/kodi/c-api/CMakeLists.txt b/xbmc/addons/kodi-dev-kit/include/kodi/c-api/CMakeLists.txt index 5db93daa01..091e0fe5b8 100644 --- a/xbmc/addons/kodi-dev-kit/include/kodi/c-api/CMakeLists.txt +++ b/xbmc/addons/kodi-dev-kit/include/kodi/c-api/CMakeLists.txt @@ -4,6 +4,10 @@ set(HEADERS addon_base.h general.h network.h) +if(CORE_SYSTEM_NAME STREQUAL android) + list(APPEND SOURCES platform/android/system.h) +endif() + if(NOT ENABLE_STATIC_LIBS) core_add_library(addons_kodi-dev-kit_include_kodi_c-api) endif() diff --git a/xbmc/addons/kodi-dev-kit/include/kodi/c-api/platform/android/system.h b/xbmc/addons/kodi-dev-kit/include/kodi/c-api/platform/android/system.h new file mode 100644 index 0000000000..e515d2c56b --- /dev/null +++ b/xbmc/addons/kodi-dev-kit/include/kodi/c-api/platform/android/system.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2005-2020 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#pragma once + +#ifndef C_API_PLATFORM_ANDROID_H +#define C_API_PLATFORM_ANDROID_H + +#define INTERFACE_ANDROID_SYSTEM_NAME "ANDROID_SYSTEM" +#define INTERFACE_ANDROID_SYSTEM_VERSION "1.0.1" +#define INTERFACE_ANDROID_SYSTEM_VERSION_MIN "1.0.1" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + struct AddonToKodiFuncTable_android_system + { + void* (*get_jni_env)(); + int (*get_sdk_version)(); + const char *(*get_class_name)(); + }; + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* !C_API_PLATFORM_ANDROID_H */ diff --git a/xbmc/addons/kodi-dev-kit/include/kodi/platform/android/System.h b/xbmc/addons/kodi-dev-kit/include/kodi/platform/android/System.h index ef2d728892..0520380a82 100644 --- a/xbmc/addons/kodi-dev-kit/include/kodi/platform/android/System.h +++ b/xbmc/addons/kodi-dev-kit/include/kodi/platform/android/System.h @@ -9,29 +9,7 @@ #pragma once #include "../../AddonBase.h" - -/* - * For interface between add-on and kodi. - * - * This structure defines the addresses of functions stored inside Kodi which - * are then available for the add-on to call - * - * All function pointers there are used by the C++ interface functions below. - * You find the set of them on xbmc/addons/interfaces/General.cpp - * - * Note: For add-on development itself this is not needed - */ - -static const char* INTERFACE_ANDROID_SYSTEM_NAME = "ANDROID_SYSTEM"; -static const char* INTERFACE_ANDROID_SYSTEM_VERSION = "1.0.1"; -static const char* INTERFACE_ANDROID_SYSTEM_VERSION_MIN = "1.0.1"; - -struct AddonToKodiFuncTable_android_system -{ - void* (*get_jni_env)(); - int (*get_sdk_version)(); - const char *(*get_class_name)(); -}; +#include "../../c-api/platform/android/system.h" //============================================================================== /// @@ -43,10 +21,12 @@ struct AddonToKodiFuncTable_android_system /// //------------------------------------------------------------------------------ +#ifdef __cplusplus namespace kodi { namespace platform { + class ATTRIBUTE_HIDDEN CInterfaceAndroidSystem { public: @@ -112,3 +92,4 @@ private: } /* namespace platform */ } /* namespace kodi */ +#endif /* __cplusplus */ |