11 #include "addons/Addon.h" 12 #include "addons/kodi-dev-kit/include/kodi/c-api/addon_base.h" 23 class CBinaryAddonBase;
24 using BinaryAddonBasePtr = std::shared_ptr<CBinaryAddonBase>;
35 using ADDON_INSTANCE_HANDLER =
void*;
48 virtual bool IsInUse(
const std::string&
id) = 0;
54 CAddonDll(
const AddonInfoPtr& addonInfo, BinaryAddonBasePtr addonBase);
55 CAddonDll(
const AddonInfoPtr& addonInfo, AddonType addonType);
59 std::string LibPath()
const override;
62 void SaveSettings(AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
64 bool DllLoaded(
void)
const;
103 bool IsInUse()
const override;
105 AddonPtr GetRunningInstance()
const override;
107 void OnPreInstall()
override;
108 void OnPostInstall(
bool update,
bool modal)
override;
109 void OnPreUnInstall()
override;
110 void OnPostUnInstall()
override;
112 bool Initialized()
const {
return m_initialized; }
115 static std::string GetDllPath(
const std::string& strFileName);
117 std::string m_parentLib;
143 bool CheckAPIVersion(
int type);
145 BinaryAddonBasePtr m_binaryAddonBase =
nullptr;
147 bool m_initialized =
false;
149 std::map<ADDON_INSTANCE_HANDLER, KODI_ADDON_INSTANCE_STRUCT*> m_usedInstances;
152 virtual ADDON_STATUS TransferSettings(AddonInstanceId instanceId);
Definition: AddonDll.h:51
Definition: AddonVersion.h:27
Main structure passed from kodi to addon with basic information needed to create add-on.
Definition: addon_base.h:378
Definition: addon_base.h:267
ADDON_STATUS
Definition: addon_base.h:137
Definition: DllAddon.h:22