summaryrefslogtreecommitdiff
path: root/server/menuHTTP.h
diff options
context:
space:
mode:
Diffstat (limited to 'server/menuHTTP.h')
-rw-r--r--server/menuHTTP.h20
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())