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.
11 #include "threads/CriticalSection.h"
12 #include "threads/Thread.h"
13 #include "utils/IRssObserver.h"
14 #include "utils/XBMCTinyXML.h"
25 class CRssReader
: public CThread
29 ~CRssReader() override
;
31 void Create(IRssObserver
* aObserver
, const std::vector
<std::string
>& aUrl
, const std::vector
<int>& times
, int spacesBetweenFeeds
, bool rtl
);
32 bool Parse(const std::string
& data
, int iFeed
, const std::string
& charset
);
33 void getFeed(vecText
&text
);
34 void AddTag(const std::string
&addTag
);
35 void AddToQueue(int iAdd
);
36 void UpdateObserver();
37 void SetObserver(IRssObserver
* observer
);
38 void CheckForUpdates();
39 void requestRefresh();
40 float m_savedScrollPixelPos
;
43 void Process() override
;
44 bool Parse(int iFeed
);
45 void GetNewsItems(TiXmlElement
* channelXmlNode
, int iFeed
);
46 void AddString(std::wstring aString
, int aColour
, int iFeed
);
48 void OnExit() override
;
51 IRssObserver
* m_pObserver
;
53 std::vector
<std::wstring
> m_strFeed
;
54 std::vector
<std::wstring
> m_strColors
;
55 std::vector
<KODI::TIME::SystemTime
*> m_vecTimeStamps
;
56 std::vector
<int> m_vecUpdateTimes
;
57 int m_spacesBetweenFeeds
;
59 std::list
<std::string
> m_tagSet
;
60 std::vector
<std::string
> m_vecUrls
;
61 std::vector
<int> m_vecQueue
;
64 bool m_requestRefresh
;
66 CCriticalSection m_critical
;