summaryrefslogtreecommitdiffstats
path: root/xbmc/interfaces/legacy/Addon.h
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/interfaces/legacy/Addon.h')
-rw-r--r--xbmc/interfaces/legacy/Addon.h483
1 files changed, 483 insertions, 0 deletions
diff --git a/xbmc/interfaces/legacy/Addon.h b/xbmc/interfaces/legacy/Addon.h
new file mode 100644
index 0000000..97c598f
--- /dev/null
+++ b/xbmc/interfaces/legacy/Addon.h
@@ -0,0 +1,483 @@
+/*
+ * Copyright (C) 2005-2018 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#pragma once
+
+#include "AddonClass.h"
+#include "AddonString.h"
+#include "Exception.h"
+#include "Settings.h"
+#include "addons/IAddon.h"
+
+namespace XBMCAddon
+{
+ namespace xbmcaddon
+ {
+ XBMCCOMMONS_STANDARD_EXCEPTION(AddonException);
+
+ ///
+ /// \addtogroup python_xbmcaddon
+ /// @{
+ /// @brief **Kodi's addon class.**
+ ///
+ /// Offers classes and functions that manipulate the add-on settings,
+ /// information and localization.
+ ///
+ ///-------------------------------------------------------------------------
+ ///
+ /// \python_class{ xbmcaddon.Addon([id]) }
+ ///
+ /// Creates a new AddOn class.
+ ///
+ /// @param id [opt] string - id of the addon as
+ /// specified in [addon.xml](http://kodi.wiki/view/Addon.xml)
+ ///
+ /// @note Specifying the addon id is not needed.\n
+ /// Important however is that the addon folder has the same name as the AddOn
+ /// id provided in [addon.xml](http://kodi.wiki/view/Addon.xml).\n
+ /// You can optionally specify the addon id from another installed addon to
+ /// retrieve settings from it.
+ ///
+ ///
+ ///-------------------------------------------------------------------------
+ /// @python_v13
+ /// **id** is optional as it will be auto detected for this add-on instance.
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// self.Addon = xbmcaddon.Addon()
+ /// self.Addon = xbmcaddon.Addon('script.foo.bar')
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ class Addon : public AddonClass
+ {
+ ADDON::AddonPtr pAddon;
+
+ String getDefaultId();
+
+ String getAddonVersion();
+
+ bool UpdateSettingInActiveDialog(const char* id, const String& value);
+
+ public:
+ explicit Addon(const char* id = NULL);
+ ~Addon() override;
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).getLocalizedString(id) }
+ /// Returns an addon's localized 'string'.
+ ///
+ /// @param id integer - id# for string you want to
+ /// localize.
+ /// @return Localized 'string'
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ /// @python_v13
+ /// **id** is optional as it will be auto detected for this add-on instance.
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// locstr = self.Addon.getLocalizedString(32000)
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ getLocalizedString(...);
+#else
+ String getLocalizedString(int id);
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).getSettings() }
+ /// Returns a wrapper around the addon's settings.
+ ///
+ /// @return @ref python_settings wrapper
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ /// @python_v20 New function added.
+ ///
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// settings = self.Addon.getSettings()
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ getSettings(...);
+#else
+ Settings* getSettings();
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).getSetting(id) }
+ /// Returns the value of a setting as string.
+ ///
+ /// @param id string - id of the setting that the module
+ /// needs to access.
+ /// @return Setting as a string
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ /// @python_v13
+ /// **id** is optional as it will be auto detected for this add-on instance.
+ ///
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// apikey = self.Addon.getSetting('apikey')
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ getSetting(...);
+#else
+ String getSetting(const char* id);
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).getSettingBool(id) }
+ /// Returns the value of a setting as a boolean.
+ ///
+ /// @param id string - id of the setting that the module
+ /// needs to access.
+ /// @return Setting as a boolean
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ /// @python_v18
+ /// New function added.
+ /// @python_v20 Deprecated. Use **Settings.getBool()** instead.
+ ///
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// enabled = self.Addon.getSettingBool('enabled')
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ getSettingBool(...);
+#else
+ bool getSettingBool(const char* id);
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).getSettingInt(id) }
+ /// Returns the value of a setting as an integer.
+ ///
+ /// @param id string - id of the setting that the module
+ /// needs to access.
+ /// @return Setting as an integer
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ /// @python_v18
+ /// New function added.
+ /// @python_v20 Deprecated. Use **Settings.getInt()** instead.
+ ///
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// max = self.Addon.getSettingInt('max')
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ getSettingInt(...);
+#else
+ int getSettingInt(const char* id);
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).getSettingNumber(id) }
+ /// Returns the value of a setting as a floating point number.
+ ///
+ /// @param id string - id of the setting that the module
+ /// needs to access.
+ /// @return Setting as a floating point number
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ /// @python_v18
+ /// New function added.
+ /// @python_v20 Deprecated. Use **Settings.getNumber()** instead.
+ ///
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// max = self.Addon.getSettingNumber('max')
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ getSettingNumber(...);
+#else
+ double getSettingNumber(const char* id);
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).getSettingString(id) }
+ /// Returns the value of a setting as a string.
+ ///
+ /// @param id string - id of the setting that the module
+ /// needs to access.
+ /// @return Setting as a string
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ /// @python_v18
+ /// New function added.
+ /// @python_v20 Deprecated. Use **Settings.getString()** instead.
+ ///
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// apikey = self.Addon.getSettingString('apikey')
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ getSettingString(...);
+#else
+ String getSettingString(const char* id);
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).setSetting(id, value) }
+ /// Sets a script setting.
+ ///
+ /// @param id string - id of the setting that the module needs to access.
+ /// @param value string - value of the setting.
+ ///
+ ///
+ /// @note You can use the above as keywords for arguments.
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ /// @python_v13
+ /// **id** is optional as it will be auto detected for this add-on instance.
+ ///
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// self.Addon.setSetting(id='username', value='teamkodi')
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ setSetting(...);
+#else
+ void setSetting(const char* id, const String& value);
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).setSettingBool(id, value) }
+ /// Sets a script setting.
+ ///
+ /// @param id string - id of the setting that the module needs to access.
+ /// @param value boolean - value of the setting.
+ /// @return True if the value of the setting was set, false otherwise
+ ///
+ ///
+ /// @note You can use the above as keywords for arguments.
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ /// @python_v18
+ /// New function added.
+ /// @python_v20 Deprecated. Use **Settings.setBool()** instead.
+ ///
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// self.Addon.setSettingBool(id='enabled', value=True)
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ setSettingBool(...);
+#else
+ bool setSettingBool(const char* id, bool value);
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).setSettingInt(id, value) }
+ /// Sets a script setting.
+ ///
+ /// @param id string - id of the setting that the module needs to access.
+ /// @param value integer - value of the setting.
+ /// @return True if the value of the setting was set, false otherwise
+ ///
+ ///
+ /// @note You can use the above as keywords for arguments.
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ /// @python_v18
+ /// New function added.
+ /// @python_v20 Deprecated. Use **Settings.setInt()** instead.
+ ///
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// self.Addon.setSettingInt(id='max', value=5)
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ setSettingInt(...);
+#else
+ bool setSettingInt(const char* id, int value);
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).setSettingNumber(id, value) }
+ /// Sets a script setting.
+ ///
+ /// @param id string - id of the setting that the module needs to access.
+ /// @param value float - value of the setting.
+ /// @return True if the value of the setting was set, false otherwise
+ ///
+ ///
+ /// @note You can use the above as keywords for arguments.
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ /// @python_v18
+ /// New function added.
+ /// @python_v20 Deprecated. Use **Settings.setNumber()** instead.
+ ///
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// self.Addon.setSettingNumber(id='max', value=5.5)
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ setSettingNumber(...);
+#else
+ bool setSettingNumber(const char* id, double value);
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).setSettingString(id, value) }
+ /// Sets a script setting.
+ ///
+ /// @param id string - id of the setting that the module needs to access.
+ /// @param value string or unicode - value of the setting.
+ /// @return True if the value of the setting was set, false otherwise
+ ///
+ ///
+ /// @note You can use the above as keywords for arguments.
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ /// @python_v18
+ /// New function added.
+ /// @python_v20 Deprecated. Use **Settings.setString()** instead.
+ ///
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// self.Addon.setSettingString(id='username', value='teamkodi')
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ setSettingString(...);
+#else
+ bool setSettingString(const char* id, const String& value);
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).openSettings() }
+ /// Opens this scripts settings dialog.
+ ///
+ ///-----------------------------------------------------------------------
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// self.Addon.openSettings()
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ openSettings();
+#else
+ void openSettings();
+#endif
+
+#ifdef DOXYGEN_SHOULD_USE_THIS
+ ///
+ /// \ingroup python_xbmcaddon
+ /// \anchor python_xbmcaddon_Addon
+ /// @brief \python_func{ xbmcaddon.Addon([id]).getAddonInfo(id) }
+ /// Returns the value of an addon property as a string.
+ ///
+ /// @param id string - id of the property that the
+ /// module needs to access.
+ /// @par Choices for the property are
+ /// | | | | |
+ /// |:-----------:|:-----------:|:-----------:|:-----------:|
+ /// | author | changelog | description | disclaimer |
+ /// | fanart | icon | id | name |
+ /// | path | profile | stars | summary |
+ /// | type | version | | |
+ /// @return AddOn property as a string
+ ///
+ ///
+ ///
+ ///-----------------------------------------------------------------------
+ ///
+ /// **Example:**
+ /// ~~~~~~~~~~~~~{.py}
+ /// ..
+ /// version = self.Addon.getAddonInfo('version')
+ /// ..
+ /// ~~~~~~~~~~~~~
+ ///
+ getAddonInfo(...);
+#else
+ String getAddonInfo(const char* id);
+#endif
+ };
+ //@}
+ }
+}