diff options
Diffstat (limited to 'server/menuHTTP.h')
-rw-r--r-- | server/menuHTTP.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/server/menuHTTP.h b/server/menuHTTP.h index 4ef6363..b025598 100644 --- a/server/menuHTTP.h +++ b/server/menuHTTP.h @@ -107,6 +107,7 @@ class cHtmlChannelList: public cChannelList const cChannel *current; eStreamType streamType; const char* self; + const char* rss; const char* groupTarget; std::string StreamTypeMenu(); @@ -124,7 +125,7 @@ class cHtmlChannelList: public cChannelList } virtual bool HasNext(); virtual std::string Next(); - cHtmlChannelList(cChannelIterator *Iterator, eStreamType StreamType, const char *Self, const char *GroupTarget); + cHtmlChannelList(cChannelIterator *Iterator, eStreamType StreamType, const char *Self, const char *Rss, const char *GroupTarget); virtual ~cHtmlChannelList(); }; @@ -143,6 +144,23 @@ class cM3uChannelList: public cChannelList virtual ~cM3uChannelList(); }; +class cRssChannelList: public cChannelList +{ + private: + char *base; + char *html; + enum eRssState { msFirst, msContinue, msLast }; + eRssState rssState; + cCharSetConv m_IConv; + public: + virtual std::string HttpHeader() { return cChannelList::HttpHeader() + "Content-type: application/rss+xml\r\n"; }; + virtual bool HasNext(); + virtual std::string Next(); + + cRssChannelList(cChannelIterator *Iterator, const char *Base, const char *Html); + virtual ~cRssChannelList(); +}; + inline const cChannel* cChannelIterator::SkipFakeGroups(const cChannel* Group) { while (Group && Group->GroupSep() && !*Group->Name()) |