Kodi Documentation  18.0
Kodi is an open source media player and entertainment hub.
AddonBase.h File Reference
#include <stdarg.h>
#include <cstdlib>
#include <cstring>
#include <stdexcept>
#include <string>
#include <vector>
#include "versions.h"

Classes

struct  ADDON_HANDLE_STRUCT
 Handle used to return data from the PVR add-on to CPVRClient. More...
 
struct  AddonToKodiFuncTable_Addon
 
struct  KodiToAddonFuncTable_Addon
 
struct  AddonGlobalInterface
 
class  kodi::addon::IAddonInstance
 
class  kodi::CSettingValue
 
class  kodi::addon::CAddonBase
 Add-on main instance class. More...
 

Namespaces

 kodi
 
 kodi::addon
 

Macros

#define __cdecl
 
#define __declspec(X)
 
#define ATTRIBUTE_PACKED
 
#define PRAGMA_PACK   1
 
#define ATTRIBUTE_HIDDEN
 
#define ADDON_STANDARD_STRING_LENGTH   1024
 
#define ADDON_STANDARD_STRING_LENGTH_SMALL   256
 
#define ADDONCREATOR(AddonClass)
 

Typedefs

typedef voidKODI_HANDLE
 Standard undefined pointer handle. More...
 
typedef enum ADDON_STATUS ADDON_STATUS
 
typedef enum AddonLog AddonLog
 
typedef ADDON_HANDLE_STRUCTADDON_HANDLE
 
typedef struct AddonToKodiFuncTable_Addon AddonToKodiFuncTable_Addon
 
typedef struct KodiToAddonFuncTable_Addon KodiToAddonFuncTable_Addon
 
typedef struct AddonGlobalInterface AddonGlobalInterface
 

Enumerations

enum  ADDON_STATUS {
  ADDON_STATUS_OK, ADDON_STATUS_LOST_CONNECTION, ADDON_STATUS_NEED_RESTART, ADDON_STATUS_NEED_SETTINGS,
  ADDON_STATUS_UNKNOWN, ADDON_STATUS_PERMANENT_FAILURE, ADDON_STATUS_NOT_IMPLEMENTED
}
 
enum  AddonLog {
  ADDON_LOG_DEBUG = 0, ADDON_LOG_INFO = 1, ADDON_LOG_NOTICE = 2, ADDON_LOG_WARNING = 3,
  ADDON_LOG_ERROR = 4, ADDON_LOG_SEVERE = 5, ADDON_LOG_FATAL = 6
}
 

Functions

std::string kodi::GetAddonPath (const std::string &append="")
 
std::string kodi::GetBaseUserPath (const std::string &append="")
 
std::string kodi::GetLibPath ()
 
void kodi::Log (const AddonLog loglevel, const char *format,...)
 
bool kodi::CheckSettingString (const std::string &settingName, std::string &settingValue)
 
std::string kodi::GetSettingString (const std::string &settingName)
 
void kodi::SetSettingString (const std::string &settingName, const std::string &settingValue)
 
bool kodi::CheckSettingInt (const std::string &settingName, int &settingValue)
 
int kodi::GetSettingInt (const std::string &settingName)
 
void kodi::SetSettingInt (const std::string &settingName, int settingValue)
 
bool kodi::CheckSettingBoolean (const std::string &settingName, bool &settingValue)
 
bool kodi::GetSettingBoolean (const std::string &settingName)
 
void kodi::SetSettingBoolean (const std::string &settingName, bool settingValue)
 
bool kodi::CheckSettingFloat (const std::string &settingName, float &settingValue)
 
float kodi::GetSettingFloat (const std::string &settingName)
 
void kodi::SetSettingFloat (const std::string &settingName, float settingValue)
 
std::string kodi::TranslateAddonStatus (ADDON_STATUS status)
 
voidkodi::GetInterface (const std::string &name, const std::string &version)
 Returns a function table to a named interface. More...
 

Macro Definition Documentation

§ __cdecl

#define __cdecl

§ __declspec

#define __declspec (   X)

§ ADDON_STANDARD_STRING_LENGTH

#define ADDON_STANDARD_STRING_LENGTH   1024

§ ADDON_STANDARD_STRING_LENGTH_SMALL

#define ADDON_STANDARD_STRING_LENGTH_SMALL   256

§ ADDONCREATOR

#define ADDONCREATOR (   AddonClass)
Value:
extern "C" __declspec(dllexport) void get_addon(void* pAddon) {} \
extern "C" __declspec(dllexport) ADDON_STATUS ADDON_Create(KODI_HANDLE addonInterface, void *unused) \
{ \
} \
extern "C" __declspec(dllexport) void ADDON_Destroy() \
{ \
} \
extern "C" __declspec(dllexport) ADDON_STATUS ADDON_GetStatus() \
{ \
} \
extern "C" __declspec(dllexport) ADDON_STATUS ADDON_SetSetting(const char *settingName, const void *settingValue) \
{ \
return kodi::addon::CAddonBase::ADDONBASE_SetSetting(settingName, settingValue); \
} \
extern "C" __declspec(dllexport) const char* ADDON_GetTypeVersion(int type) \
{ \
} \
AddonGlobalInterface* kodi::addon::CAddonBase::m_interface = nullptr;
const char * GetTypeVersion(int type)
Definition: versions.h:178
static void ADDONBASE_Destroy()
Definition: AddonBase.h:313
#define __declspec(X)
Definition: AddonBase.h:23
ADDON_STATUS
Definition: AddonBase.h:60
Definition: AddonBase.h:188
static ADDON_STATUS ADDONBASE_SetSetting(const char *settingName, const void *settingValue)
Definition: AddonBase.h:321
static AddonGlobalInterface * m_interface
Definition: AddonBase.h:310
static ADDON_STATUS ADDONBASE_GetStatus()
Definition: AddonBase.h:319
ADDON_STATUS const void * settingValue
Definition: xbmc_addon_dll.h:20
kodi::addon::CAddonBase * addonBase
Definition: AddonBase.h:200
void * KODI_HANDLE
Standard undefined pointer handle.
Definition: AddonBase.h:55
virtual ADDON_STATUS Create()
Definition: AddonBase.h:285
void(__cdecl *dll_signal(int sig, void(__cdecl *func)(int)))(int)
Definition: emu_msvcrt.cpp:1931

addon creation macro

Todo:
cleanup this stupid big macro This macro includes now all for add-on's needed functions. This becomes a bigger rework after everything is done on Kodi itself, currently is this way needed to have compatibility with not reworked interfaces.

Becomes really cleaned up soon :D

§ ATTRIBUTE_HIDDEN

#define ATTRIBUTE_HIDDEN

§ ATTRIBUTE_PACKED

§ PRAGMA_PACK

#define PRAGMA_PACK   1

Typedef Documentation

§ ADDON_HANDLE

§ ADDON_STATUS

typedef enum ADDON_STATUS ADDON_STATUS

§ AddonGlobalInterface

§ AddonLog

typedef enum AddonLog AddonLog
Todo:
remove start with ADDON_* after old way on libXBMC_addon.h is removed

§ AddonToKodiFuncTable_Addon

§ KODI_HANDLE

typedef void* KODI_HANDLE

Standard undefined pointer handle.

§ KodiToAddonFuncTable_Addon

Enumeration Type Documentation

§ ADDON_STATUS

Enumerator
ADDON_STATUS_OK 
ADDON_STATUS_LOST_CONNECTION 
ADDON_STATUS_NEED_RESTART 
ADDON_STATUS_NEED_SETTINGS 
ADDON_STATUS_UNKNOWN 
ADDON_STATUS_PERMANENT_FAILURE 

permanent failure, like failing to resolve methods

ADDON_STATUS_NOT_IMPLEMENTED 

§ AddonLog

enum AddonLog
Todo:
remove start with ADDON_* after old way on libXBMC_addon.h is removed
Enumerator
ADDON_LOG_DEBUG 
ADDON_LOG_INFO 
ADDON_LOG_NOTICE 
ADDON_LOG_WARNING 
ADDON_LOG_ERROR 
ADDON_LOG_SEVERE 
ADDON_LOG_FATAL