11 #include "addons/IAddon.h" 15 #include <unordered_map> 27 using AddonInfoPtr = std::shared_ptr<CAddonInfo>;
29 void OnPreInstall(
const AddonPtr& addon);
30 void OnPostInstall(
const AddonPtr& addon,
bool update,
bool modal);
31 void OnPreUnInstall(
const AddonPtr& addon);
32 void OnPostUnInstall(
const AddonPtr& addon);
37 explicit CAddon(
const AddonInfoPtr& addonInfo, AddonType addonType);
38 ~
CAddon()
override =
default;
55 AddonType
Type()
const override {
return m_type; }
66 bool HasType(AddonType type)
const override;
98 std::string ID()
const override;
99 std::string Name()
const override;
100 bool IsInUse()
const override {
return false; }
101 bool IsBinary()
const override;
104 std::string Summary()
const override;
105 std::string Description()
const override;
106 std::string Path()
const override;
107 std::string Profile()
const override;
108 std::string LibPath()
const override;
109 std::string Author()
const override;
110 std::string ChangeLog()
const override;
111 std::string Icon()
const override;
112 ArtMap Art()
const override;
113 std::vector<std::string> Screenshots()
const override;
114 std::string Disclaimer()
const override;
115 AddonLifecycleState LifecycleState()
const override;
116 std::string LifecycleStateDescription()
const override;
120 std::string Origin()
const override;
121 std::string OriginName()
const override;
122 uint64_t PackageSize()
const override;
123 const InfoMap& ExtraInfo()
const override;
124 const std::vector<DependencyInfo>& GetDependencies()
const override;
125 std::string FanArt()
const override;
188 bool HasSettings(AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
209 void SaveSettings(AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
222 const std::string& value,
223 AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
237 AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
251 AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
265 AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
278 const std::string& value,
279 AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
293 std::string
GetSetting(
const std::string& key, AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
310 AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
327 AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
344 AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
361 AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
363 std::shared_ptr<CAddonSettings> GetSettings(AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
377 bool ReloadSettings(AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
379 void ResetSettings(AddonInstanceId
id = ADDON_SETTINGS_ID)
override;
385 void OnPreInstall()
override{};
386 void OnPostInstall(
bool update,
bool modal)
override{};
387 void OnPreUnInstall()
override{};
388 void OnPostUnInstall()
override{};
407 virtual bool SettingsLoaded(AddonInstanceId
id = ADDON_SETTINGS_ID)
const;
420 bool LoadSettings(
bool bForce,
bool loadUserSettings, AddonInstanceId
id = ADDON_SETTINGS_ID);
457 AddonInstanceId
id = ADDON_SETTINGS_ID);
471 const AddonInfoPtr m_addonInfo;
476 bool m_loadSettingsFailed{
false};
477 bool m_hasUserSettings{
false};
478 std::string m_addonSettingsPath;
479 std::string m_userSettingsPath;
480 std::shared_ptr<CAddonSettings> m_addonSettings;
483 bool InitSettings(AddonInstanceId
id);
484 std::shared_ptr<CAddonSettings> FindInstanceSettings(AddonInstanceId
id)
const;
486 mutable std::unordered_map<AddonInstanceId, CSettingsData> m_settings;
487 const AddonType m_type;
Definition: AddonType.h:77
bool GetSettingInt(const std::string &key, int &value, AddonInstanceId id=ADDON_SETTINGS_ID) override
Retrieve a particular settings value as integer.
Definition: Addon.cpp:442
bool HasType(AddonType type) const override
To check complete addon (not only this) contains a type.
Definition: Addon.cpp:53
virtual bool LoadUserSettings(AddonInstanceId id=ADDON_SETTINGS_ID)
Load the user settings.
Definition: Addon.cpp:342
bool HasMainType(AddonType type) const override
To check complete addon (not only this) has a specific type defined in its first extension point incl...
Definition: Addon.cpp:58
void UpdateSetting(const std::string &key, const std::string &value, AddonInstanceId id=ADDON_SETTINGS_ID) override
Update a user-configured setting with a new value.
Definition: Addon.cpp:463
CAddonVersion GetDependencyVersion(const std::string &dependencyID) const override
get the required version of a dependency.
Definition: Addon.cpp:652
bool UpdateSettingNumber(const std::string &key, double value, AddonInstanceId id=ADDON_SETTINGS_ID) override
Update a user-configured setting with a new number value.
Definition: Addon.cpp:530
bool GetSettingNumber(const std::string &key, double &value, AddonInstanceId id=ADDON_SETTINGS_ID) override
Retrieve a particular settings value as number.
Definition: Addon.cpp:449
AddonType MainType() const override
To get the main type of this addon.
Definition: Addon.cpp:48
virtual bool SettingsInitialized(AddonInstanceId id=ADDON_SETTINGS_ID) const
Whether or not the settings have been initialized.
Definition: Addon.cpp:255
Definition: AddonVersion.h:27
void SaveSettings(AddonInstanceId id=ADDON_SETTINGS_ID) override
Save any user configured settings.
Definition: Addon.cpp:375
virtual bool SettingsFromXML(const CXBMCTinyXML &doc, bool loadDefaults, AddonInstanceId id=ADDON_SETTINGS_ID)
Parse settings from an XML document.
Definition: Addon.cpp:544
AddonType Type() const override
To get the on this CAddon class processed addon type.
Definition: Addon.h:55
Definition: XBMCTinyXML.h:33
bool UpdateSettingBool(const std::string &key, bool value, AddonInstanceId id=ADDON_SETTINGS_ID) override
Update a user-configured setting with a new boolean value.
Definition: Addon.cpp:516
bool MeetsVersion(const CAddonVersion &versionMin, const CAddonVersion &version) const override
return whether or not this addon satisfies the given version requirements
Definition: Addon.cpp:199
bool CanHaveAddonOrInstanceSettings() override
Check whether this add-on can be configured by the user.
Definition: Addon.cpp:245
virtual bool SettingsToXML(CXBMCTinyXML &doc, AddonInstanceId id=ADDON_SETTINGS_ID) const
Write settings into an XML document.
Definition: Addon.cpp:577
virtual bool HasSettingsToSave(AddonInstanceId id=ADDON_SETTINGS_ID) const
Whether there are settings to be saved.
Definition: Addon.cpp:370
bool LoadSettings(bool bForce, bool loadUserSettings, AddonInstanceId id=ADDON_SETTINGS_ID)
Load the default settings and override these with any previously configured user settings.
Definition: Addon.cpp:267
AddonInstanceSupport InstanceUseType() const override
Return the used instance path type of the add-on type.
Definition: Addon.cpp:218
Definition: addon_base.h:267
bool SupportsInstanceSettings() const override
Check whether the add-on supports individual settings per add-on instance.
Definition: Addon.cpp:223
std::string GetSetting(const std::string &key, AddonInstanceId id=ADDON_SETTINGS_ID) override
Retrieve a particular settings value.
Definition: Addon.cpp:406
bool HasSettings(AddonInstanceId id=ADDON_SETTINGS_ID) override
Check whether this add-on can be configured by the user.
Definition: Addon.cpp:250
virtual bool SettingsLoaded(AddonInstanceId id=ADDON_SETTINGS_ID) const
Whether or not the settings have been loaded.
Definition: Addon.cpp:261
DateTime class, which uses FileTime as it's base.
Definition: XBDateTime.h:63
bool HasUserSettings(AddonInstanceId id=ADDON_SETTINGS_ID) override
Check whether the user has configured this add-on or not.
Definition: Addon.cpp:324
bool UpdateSettingInt(const std::string &key, int value, AddonInstanceId id=ADDON_SETTINGS_ID) override
Update a user-configured setting with a new integer value.
Definition: Addon.cpp:523
bool DeleteInstanceSettings(AddonInstanceId instance) override
Delete selected instance settings from storage.
Definition: Addon.cpp:228
bool GetSettingBool(const std::string &key, bool &value, AddonInstanceId id=ADDON_SETTINGS_ID) override
Retrieve a particular settings value as boolean.
Definition: Addon.cpp:435
bool UpdateSettingString(const std::string &key, const std::string &value, AddonInstanceId id=ADDON_SETTINGS_ID) override
Update a user-configured setting with a new string value.
Definition: Addon.cpp:537
AddonPtr GetRunningInstance() const override
retrieve the running instance of an add-on if it persists while running.
Definition: Addon.h:383
bool SupportsMultipleInstances() const override
Check add-on for support from independent work instances.
Definition: Addon.cpp:213
std::vector< AddonInstanceId > GetKnownInstanceIds() const override
Gives active, independently working instance identifiers for this add-on.
Definition: Addon.cpp:208
bool GetSettingString(const std::string &key, std::string &value, AddonInstanceId id=ADDON_SETTINGS_ID) override
Retrieve a particular settings value as string.
Definition: Addon.cpp:456