11 #include "addons/IAddon.h"    12 #include "addons/kodi-dev-kit/include/kodi/c-api/addon_base.h"    13 #include "addons/kodi-dev-kit/include/kodi/versions.h"    14 #include "threads/CriticalSection.h"    25 using AddonDllPtr = std::shared_ptr<CAddonDll>;
    28 using AddonInfoPtr = std::shared_ptr<CAddonInfo>;
    30 class CBinaryAddonBase;
    31 using BinaryAddonBasePtr = std::shared_ptr<CBinaryAddonBase>;
    62                         const AddonInfoPtr& addonInfo,
    63                         AddonInstanceId instanceId = ADDON_INSTANCE_ID_UNUSED,
    64                         KODI_HANDLE parentInstance = 
nullptr,
    65                         const std::string& uniqueWorkID = 
"");
    69   AddonInstanceId InstanceId()
 const { 
return m_instanceId; }
    70   const std::string& UniqueWorkID() { 
return m_uniqueWorkID; }
    72   std::string ID() 
const;
    73   std::string Name() 
const;
    74   std::string Author() 
const;
    75   std::string Icon() 
const;
    76   std::string Path() 
const;
    77   std::string Profile() 
const;
    81   void DestroyInstance();
    82   const AddonDllPtr& Addon()
 const { 
return m_addon; }
    83   AddonInfoPtr GetAddonInfo()
 const { 
return m_addonInfo; }
    85   virtual void OnPreInstall() {}
    86   virtual void OnPostInstall(
bool update, 
bool modal) {}
    87   virtual void OnPreUnInstall() {}
    88   virtual void OnPostUnInstall() {}
    95   std::shared_ptr<CSetting> GetSetting(
const std::string& setting);
    97   static char* get_instance_user_path(
const KODI_ADDON_INSTANCE_BACKEND_HDL hdl);
    98   static bool is_instance_setting_using_default(
const KODI_ADDON_INSTANCE_BACKEND_HDL hdl,
   100   static bool get_instance_setting_bool(
const KODI_ADDON_INSTANCE_BACKEND_HDL hdl,
   103   static bool get_instance_setting_int(
const KODI_ADDON_INSTANCE_BACKEND_HDL hdl,
   106   static bool get_instance_setting_float(
const KODI_ADDON_INSTANCE_BACKEND_HDL hdl,
   109   static bool get_instance_setting_string(
const KODI_ADDON_INSTANCE_BACKEND_HDL hdl,
   112   static bool set_instance_setting_bool(
const KODI_ADDON_INSTANCE_BACKEND_HDL hdl,
   115   static bool set_instance_setting_int(
const KODI_ADDON_INSTANCE_BACKEND_HDL hdl,
   118   static bool set_instance_setting_float(
const KODI_ADDON_INSTANCE_BACKEND_HDL hdl,
   121   static bool set_instance_setting_string(
const KODI_ADDON_INSTANCE_BACKEND_HDL hdl,
   126   const AddonInstanceId m_instanceId;
   127   std::string m_uniqueWorkID;
   128   KODI_HANDLE m_parentInstance;
   129   AddonInfoPtr m_addonInfo;
   130   BinaryAddonBasePtr m_addonBase;
   132   static CCriticalSection m_cdSec;
 Definition: AddonVersion.h:27
Setting base class containing all the properties which are common to all settings independent of the ...
Definition: Setting.h:46
ADDON_TYPE
Definition: versions.h:201
IAddonInstanceHandler(ADDON_TYPE type, const AddonInfoPtr &addonInfo, AddonInstanceId instanceId=ADDON_INSTANCE_ID_UNUSED, KODI_HANDLE parentInstance=nullptr, const std::string &uniqueWorkID="")
Class constructor for handling add-on instance processes, allowing an add-on to handle multiple work ...
Definition: AddonInstanceHandler.cpp:31
Definition: AddonInstanceHandler.h:33
Definition: addon_base.h:267
ADDON_STATUS
Definition: addon_base.h:137
Definition: addon_base.h:254