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;
   210   bool SaveSettings(AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   223                      const std::string& value,
   224                      AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   238                          AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   252                         AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   266                            AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   279                            const std::string& value,
   280                            AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   294   std::string 
GetSetting(
const std::string& key, AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   311                       AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   328                      AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   345                         AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   362                         AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   364   std::shared_ptr<CAddonSettings> GetSettings(AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   378   bool ReloadSettings(AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   380   void ResetSettings(AddonInstanceId 
id = ADDON_SETTINGS_ID) 
override;
   386   void OnPreInstall()
 override{};
   387   void OnPostInstall(
bool update, 
bool modal)
 override{};
   388   void OnPreUnInstall()
 override{};
   389   void OnPostUnInstall()
 override{};
   408   virtual bool SettingsLoaded(AddonInstanceId 
id = ADDON_SETTINGS_ID) 
const;
   421   bool LoadSettings(
bool bForce, 
bool loadUserSettings, AddonInstanceId 
id = ADDON_SETTINGS_ID);
   458                                AddonInstanceId 
id = ADDON_SETTINGS_ID);
   472   const AddonInfoPtr m_addonInfo;
   477     bool m_loadSettingsFailed{
false};
   478     bool m_hasUserSettings{
false};
   479     std::string m_addonSettingsPath;
   480     std::string m_userSettingsPath;
   481     std::shared_ptr<CAddonSettings> m_addonSettings;
   484   bool InitSettings(AddonInstanceId 
id);
   485   std::shared_ptr<CAddonSettings> FindInstanceSettings(AddonInstanceId 
id) 
const;
   487   mutable std::unordered_map<AddonInstanceId, CSettingsData> m_settings;
   488   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:444
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:465
CAddonVersion GetDependencyVersion(const std::string &dependencyID) const override
get the required version of a dependency. 
Definition: Addon.cpp:654
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:532
bool GetSettingNumber(const std::string &key, double &value, AddonInstanceId id=ADDON_SETTINGS_ID) override
Retrieve a particular settings value as number. 
Definition: Addon.cpp:451
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
virtual bool SettingsFromXML(const CXBMCTinyXML &doc, bool loadDefaults, AddonInstanceId id=ADDON_SETTINGS_ID)
Parse settings from an XML document. 
Definition: Addon.cpp:546
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:518
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 SaveSettings(AddonInstanceId id=ADDON_SETTINGS_ID) override
Save any user configured settings. 
Definition: Addon.cpp:375
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:579
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:408
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:525
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:437
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:539
AddonPtr GetRunningInstance() const override
retrieve the running instance of an add-on if it persists while running. 
Definition: Addon.h:384
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:458