diff options
Diffstat (limited to 'xbmc/interfaces/legacy/Addon.h')
-rw-r--r-- | xbmc/interfaces/legacy/Addon.h | 483 |
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 + }; + //@} + } +} |