From ffca21f2743a7b367fa212799c6e2fea6190dd5d Mon Sep 17 00:00:00 2001 From: manuel Date: Tue, 3 Mar 2015 16:53:59 +0100 Subject: initial commit for kodi master --- xbmc/addons/IAddon.h | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 xbmc/addons/IAddon.h (limited to 'xbmc/addons/IAddon.h') diff --git a/xbmc/addons/IAddon.h b/xbmc/addons/IAddon.h new file mode 100644 index 0000000..76f22fa --- /dev/null +++ b/xbmc/addons/IAddon.h @@ -0,0 +1,138 @@ +#pragma once +/* +* Copyright (C) 2005-2013 Team XBMC +* http://xbmc.org +* +* This Program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2, or (at your option) +* any later version. +* +* This Program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with XBMC; see the file COPYING. If not, see +* . +* +*/ +#include + +#include +#include +#include +#include + +class TiXmlElement; + +namespace ADDON +{ + typedef enum + { + ADDON_UNKNOWN, + ADDON_VIZ, + ADDON_SKIN, + ADDON_PVRDLL, + ADDON_SCRIPT, + ADDON_SCRIPT_WEATHER, + ADDON_SUBTITLE_MODULE, + ADDON_SCRIPT_LYRICS, + ADDON_SCRAPER_ALBUMS, + ADDON_SCRAPER_ARTISTS, + ADDON_SCRAPER_MOVIES, + ADDON_SCRAPER_MUSICVIDEOS, + ADDON_SCRAPER_TVSHOWS, + ADDON_SCREENSAVER, + ADDON_PLUGIN, + ADDON_REPOSITORY, + ADDON_WEB_INTERFACE, + ADDON_SERVICE, + ADDON_AUDIOENCODER, + ADDON_CONTEXT_ITEM, + ADDON_VIDEO, // virtual addon types + ADDON_AUDIO, + ADDON_IMAGE, + ADDON_EXECUTABLE, + ADDON_VIZ_LIBRARY, + ADDON_SCRAPER_LIBRARY, + ADDON_SCRIPT_LIBRARY, + ADDON_SCRIPT_MODULE, + ADDON_MAX + } TYPE; + + class IAddon; + typedef std::shared_ptr AddonPtr; + class CVisualisation; + typedef std::shared_ptr VizPtr; + class CSkinInfo; + typedef std::shared_ptr SkinPtr; + class CPluginSource; + typedef std::shared_ptr PluginPtr; + + class CAddonMgr; + class AddonVersion; + typedef std::map > ADDONDEPS; + typedef std::map InfoMap; + class AddonProps; + + class IAddon : public std::enable_shared_from_this + { + public: + virtual ~IAddon() {}; + virtual AddonPtr Clone() const =0; + virtual TYPE Type() const =0; + virtual bool IsType(TYPE type) const =0; + virtual AddonProps Props() const =0; + virtual AddonProps& Props() =0; + virtual const std::string ID() const =0; + virtual const std::string Name() const =0; + virtual bool Enabled() const =0; + virtual bool IsInUse() const =0; + virtual const AddonVersion Version() const =0; + virtual const AddonVersion MinVersion() const =0; + virtual const std::string Summary() const =0; + virtual const std::string Description() const =0; + virtual const std::string Path() const =0; + virtual const std::string Profile() const =0; + virtual const std::string LibPath() const =0; + virtual const std::string ChangeLog() const =0; + virtual const std::string FanArt() const =0; + virtual const std::string Author() const =0; + virtual const std::string Icon() const =0; + virtual int Stars() const =0; + virtual const std::string Disclaimer() const =0; + virtual const InfoMap &ExtraInfo() const =0; + virtual bool HasSettings() =0; + virtual void SaveSettings() =0; + virtual void UpdateSetting(const std::string& key, const std::string& value) =0; + virtual std::string GetSetting(const std::string& key) =0; + virtual TiXmlElement* GetSettingsXML() =0; + virtual std::string GetString(uint32_t id) =0; + virtual const ADDONDEPS &GetDeps() const =0; + virtual AddonVersion GetDependencyVersion(const std::string &dependencyID) const =0; + virtual bool MeetsVersion(const AddonVersion &version) const =0; + virtual bool ReloadSettings() =0; + virtual void OnDisabled() =0; + virtual void OnEnabled() =0; + virtual AddonPtr GetRunningInstance() const=0; + virtual bool OnPreInstall() =0; + virtual void OnPostInstall(bool restart, bool update, bool modal) =0; + virtual void OnPreUnInstall() =0; + virtual void OnPostUnInstall() =0; + virtual bool CanInstall(const std::string& referer) =0; + + protected: + virtual bool LoadSettings(bool bForce = false) =0; + + private: + friend class CAddonMgr; + virtual bool IsAddonLibrary() =0; + virtual void Enable() =0; + virtual void Disable() =0; + virtual bool LoadStrings() =0; + virtual void ClearStrings() =0; + }; +}; + -- cgit v1.2.3