[PVR][Estuary] Timer settings dialog: Show client name in timer type selection dialog...
[xbmc.git] / xbmc / utils / RssManager.h
blob2b807d739fb09d1df823835edc4822f9695cf55e
1 /*
2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #pragma once
11 #include "settings/lib/ISettingCallback.h"
12 #include "settings/lib/ISettingsHandler.h"
13 #include "threads/CriticalSection.h"
15 #include <map>
16 #include <string>
17 #include <vector>
19 class CRssReader;
20 class IRssObserver;
22 typedef struct
24 bool rtl;
25 std::vector<int> interval;
26 std::vector<std::string> url;
27 } RssSet;
28 typedef std::map<int, RssSet> RssUrls;
30 class CRssManager : public ISettingCallback, public ISettingsHandler
32 public:
33 static CRssManager& GetInstance();
35 void OnSettingsLoaded() override;
36 void OnSettingsUnloaded() override;
38 void OnSettingAction(const std::shared_ptr<const CSetting>& setting) override;
40 void Start();
41 void Stop();
42 bool Load();
43 bool Reload();
44 void Clear();
45 bool IsActive() const { return m_bActive; }
47 bool GetReader(int controlID, int windowID, IRssObserver* observer, CRssReader *&reader);
48 const RssUrls& GetUrls() const { return m_mapRssUrls; }
50 protected:
51 CRssManager();
52 ~CRssManager() override;
54 private:
55 CRssManager(const CRssManager&) = delete;
56 CRssManager& operator=(const CRssManager&) = delete;
57 struct READERCONTROL
59 int controlID;
60 int windowID;
61 CRssReader *reader;
64 std::vector<READERCONTROL> m_readers;
65 RssUrls m_mapRssUrls;
66 bool m_bActive;
67 CCriticalSection m_critical;