summaryrefslogtreecommitdiffstats
path: root/xbmc/guilib/guiinfo/IGUIInfoProvider.h
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/guilib/guiinfo/IGUIInfoProvider.h')
-rw-r--r--xbmc/guilib/guiinfo/IGUIInfoProvider.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/xbmc/guilib/guiinfo/IGUIInfoProvider.h b/xbmc/guilib/guiinfo/IGUIInfoProvider.h
new file mode 100644
index 0000000..4560b08
--- /dev/null
+++ b/xbmc/guilib/guiinfo/IGUIInfoProvider.h
@@ -0,0 +1,97 @@
+/*
+ * 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 <string>
+
+class CFileItem;
+class CGUIListItem;
+
+struct AudioStreamInfo;
+struct VideoStreamInfo;
+
+namespace KODI
+{
+namespace GUILIB
+{
+namespace GUIINFO
+{
+
+class CGUIInfo;
+
+class IGUIInfoProvider
+{
+public:
+ virtual ~IGUIInfoProvider() = default;
+
+ /*!
+ * @brief Init a new current guiinfo manager item. Gets called whenever the active guiinfo manager item changes.
+ * @param item The new item.
+ * @return True if the item was inited by the provider, false otherwise.
+ */
+ virtual bool InitCurrentItem(CFileItem *item) = 0;
+
+ /*!
+ * @brief Get a GUIInfoManager label string.
+ * @param value Will be filled with the requested value.
+ * @param item The item to get the value for. Can be nullptr.
+ * @param contextWindow The context window. Can be 0.
+ * @param info The GUI info (label id + additional data).
+ * @param fallback A fallback value. Can be nullptr.
+ * @return True if the value was filled successfully, false otherwise.
+ */
+ virtual bool GetLabel(std::string &value, const CFileItem *item, int contextWindow, const CGUIInfo &info, std::string *fallback) const = 0;
+
+ /*!
+ * @brief Get a GUIInfoManager label fallback string. Will be called if none of the registered
+ * provider's GetLabel() implementation has returned success.
+ * @param value Will be filled with the requested value.
+ * @param item The item to get the value for. Can be nullptr.
+ * @param contextWindow The context window. Can be 0.
+ * @param info The GUI info (label id + additional data).
+ * @param fallback A fallback value. Can be nullptr.
+ * @return True if the value was filled successfully, false otherwise.
+ */
+ virtual bool GetFallbackLabel(std::string& value,
+ const CFileItem* item,
+ int contextWindow,
+ const CGUIInfo& info,
+ std::string* fallback) = 0;
+
+ /*!
+ * @brief Get a GUIInfoManager integer value.
+ * @param value Will be filled with the requested value.
+ * @param item The item to get the value for. Can be nullptr.
+ * @param contextWindow The context window. Can be 0.
+ * @param info The GUI info (label id + additional data).
+ * @return True if the value was filled successfully, false otherwise.
+ */
+ virtual bool GetInt(int& value, const CGUIListItem *item, int contextWindow, const CGUIInfo &info) const = 0;
+
+ /*!
+ * @brief Get a GUIInfoManager bool value.
+ * @param value Will be filled with the requested value.
+ * @param item The item to get the value for. Can be nullptr.
+ * @param contextWindow The context window. Can be 0.
+ * @param info The GUI info (label id + additional data).
+ * @return True if the value was filled successfully, false otherwise.
+ */
+ virtual bool GetBool(bool& value, const CGUIListItem *item, int contextWindow, const CGUIInfo &info) const = 0;
+
+ /*!
+ * @brief Set new audio/video stream info data.
+ * @param audioInfo New audio stream info.
+ * @param videoInfo New video stream info.
+ */
+ virtual void UpdateAVInfo(const AudioStreamInfo& audioInfo, const VideoStreamInfo& videoInfo, const SubtitleStreamInfo& subtitleInfo) = 0;
+};
+
+} // namespace GUIINFO
+} // namespace GUILIB
+} // namespace KODI