xbmc
GUIInfoProviders.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "guilib/guiinfo/AddonsGUIInfo.h"
12 #include "guilib/guiinfo/GUIControlsGUIInfo.h"
13 #include "guilib/guiinfo/GamesGUIInfo.h"
14 #include "guilib/guiinfo/LibraryGUIInfo.h"
15 #include "guilib/guiinfo/MusicGUIInfo.h"
16 #include "guilib/guiinfo/PicturesGUIInfo.h"
17 #include "guilib/guiinfo/PlayerGUIInfo.h"
18 #include "guilib/guiinfo/SkinGUIInfo.h"
19 #include "guilib/guiinfo/SystemGUIInfo.h"
20 #include "guilib/guiinfo/VideoGUIInfo.h"
21 #include "guilib/guiinfo/VisualisationGUIInfo.h"
22 #include "guilib/guiinfo/WeatherGUIInfo.h"
23 
24 #include <string>
25 #include <vector>
26 
27 class CFileItem;
28 class CGUIListItem;
29 
30 struct AudioStreamInfo;
31 struct VideoStreamInfo;
32 
33 namespace KODI
34 {
35 namespace GUILIB
36 {
37 namespace GUIINFO
38 {
39 
40 class CGUIInfo;
41 class IGUIInfoProvider;
42 
44 {
45 public:
47  virtual ~CGUIInfoProviders();
48 
54  void RegisterProvider(IGUIInfoProvider *provider, bool bAppend = true);
55 
60  void UnregisterProvider(IGUIInfoProvider *provider);
61 
67  bool InitCurrentItem(CFileItem *item);
68 
78  bool GetLabel(std::string& value, const CFileItem *item, int contextWindow, const CGUIInfo &info, std::string *fallback) const;
79 
88  bool GetInt(int& value, const CGUIListItem *item, int contextWindow, const CGUIInfo &info) const;
89 
98  bool GetBool(bool& value, const CGUIListItem *item, int contextWindow, const CGUIInfo &info) const;
99 
106  void UpdateAVInfo(const AudioStreamInfo& audioInfo, const VideoStreamInfo& videoInfo, const SubtitleStreamInfo& subtitleInfo);
107 
112  CPlayerGUIInfo& GetPlayerInfoProvider() { return m_playerGUIInfo; }
113 
118  CSystemGUIInfo& GetSystemInfoProvider() { return m_systemGUIInfo; }
119 
124  CPicturesGUIInfo& GetPicturesInfoProvider() { return m_picturesGUIInfo; }
125 
130  CGUIControlsGUIInfo& GetGUIControlsInfoProvider() { return m_guiControlsGUIInfo; }
131 
136  CLibraryGUIInfo& GetLibraryInfoProvider() { return m_libraryGUIInfo; }
137 
138 private:
139  std::vector<IGUIInfoProvider *> m_providers;
140 
141  CAddonsGUIInfo m_addonsGUIInfo;
142  CGamesGUIInfo m_gamesGUIInfo;
143  CGUIControlsGUIInfo m_guiControlsGUIInfo;
144  CLibraryGUIInfo m_libraryGUIInfo;
145  CMusicGUIInfo m_musicGUIInfo;
146  CPicturesGUIInfo m_picturesGUIInfo;
147  CPlayerGUIInfo m_playerGUIInfo;
148  CSkinGUIInfo m_skinGUIInfo;
149  CSystemGUIInfo m_systemGUIInfo;
150  CVideoGUIInfo m_videoGUIInfo;
151  CVisualisationGUIInfo m_visualisationGUIInfo;
152  CWeatherGUIInfo m_weatherGUIInfo;
153 };
154 
155 } // namespace GUIINFO
156 } // namespace GUILIB
157 } // namespace KODI
CPlayerGUIInfo & GetPlayerInfoProvider()
Get the player guiinfo provider.
Definition: GUIInfoProviders.h:112
bool InitCurrentItem(CFileItem *item)
Init a new current guiinfo manager item. Gets called whenever the active guiinfo manager item changes...
Definition: GUIInfoProviders.cpp:70
Definition: PicturesGUIInfo.h:24
Definition: StreamInfo.h:65
Definition: GUIListItem.h:30
Definition: PlayerGUIInfo.h:42
Definition: IGUIInfoProvider.h:28
Definition: VisualisationGUIInfo.h:22
Definition: StreamInfo.h:55
Definition: SystemGUIInfo.h:23
bool GetInt(int &value, const CGUIListItem *item, int contextWindow, const CGUIInfo &info) const
Get a GUIInfoManager integer value from one of the registered providers.
Definition: GUIInfoProviders.cpp:96
CLibraryGUIInfo & GetLibraryInfoProvider()
Get the library guiinfo provider.
Definition: GUIInfoProviders.h:136
Definition: MusicGUIInfo.h:22
Definition: GUIControlsGUIInfo.h:25
void UnregisterProvider(IGUIInfoProvider *provider)
Unregister a guiinfo provider.
Definition: GUIInfoProviders.cpp:63
Definition: StreamInfo.h:62
Definition: WeatherGUIInfo.h:22
CGUIControlsGUIInfo & GetGUIControlsInfoProvider()
Get the gui controls guiinfo provider.
Definition: GUIInfoProviders.h:130
Controller configuration window.
Definition: AudioDecoder.h:18
CSystemGUIInfo & GetSystemInfoProvider()
Get the system guiinfo provider.
Definition: GUIInfoProviders.h:118
CPicturesGUIInfo & GetPicturesInfoProvider()
Get the pictures guiinfo provider.
Definition: GUIInfoProviders.h:124
Definition: LibraryGUIInfo.h:26
bool GetLabel(std::string &value, const CFileItem *item, int contextWindow, const CGUIInfo &info, std::string *fallback) const
Get a GUIInfoManager label string from one of the registered providers.
Definition: GUIInfoProviders.cpp:81
bool GetBool(bool &value, const CGUIListItem *item, int contextWindow, const CGUIInfo &info) const
Get a GUIInfoManager bool value from one of the registered providers.
Definition: GUIInfoProviders.cpp:106
void UpdateAVInfo(const AudioStreamInfo &audioInfo, const VideoStreamInfo &videoInfo, const SubtitleStreamInfo &subtitleInfo)
Set new audio/video/subtitle stream info data at all registered providers.
Definition: GUIInfoProviders.cpp:116
Definition: AddonsGUIInfo.h:22
Definition: SkinGUIInfo.h:22
Definition: GUIInfoProviders.h:43
Definition: GUIInfo.h:23
Definition: GamesGUIInfo.h:22
void RegisterProvider(IGUIInfoProvider *provider, bool bAppend=true)
Register a guiinfo provider.
Definition: GUIInfoProviders.cpp:51
Definition: VideoGUIInfo.h:27
Represents a file on a share.
Definition: FileItem.h:102