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