summaryrefslogtreecommitdiff
path: root/rssreader.h
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2013-04-07 10:39:42 +0200
committerlouis <louis.braun@gmx.de>2013-04-07 10:39:42 +0200
commitfba3191de71867e91eb51cde93136fcdda64c0ab (patch)
treee99221ec2c9a7dc612b7e818c4b544a0c1e65a1d /rssreader.h
parent518e7e87332e2b53e9f3e5f9fc853abaec2b360f (diff)
downloadskin-nopacity-fba3191de71867e91eb51cde93136fcdda64c0ab.tar.gz
skin-nopacity-fba3191de71867e91eb51cde93136fcdda64c0ab.tar.bz2
Added RSS Feed support
Diffstat (limited to 'rssreader.h')
-rw-r--r--rssreader.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/rssreader.h b/rssreader.h
new file mode 100644
index 0000000..44fe36a
--- /dev/null
+++ b/rssreader.h
@@ -0,0 +1,58 @@
+#ifndef __NOPACITY_RSSREADER_H
+#define __NOPACITY_RSSREADER_H
+
+#include <curl/curl.h>
+#include <curl/easy.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <string>
+#include <vector>
+
+#define NOPACITY_USERAGENT "libcurl-agent/1.0"
+
+struct XMLMemoryStruct {
+ char *memory;
+ size_t size;
+};
+
+struct RssElement {
+ std::string title;
+ std::string content;
+ int width;
+};
+
+class cRssReader : public cThread{
+public:
+ cRssReader(cOsd *osd, cFont *font, cPoint position, cPoint size);
+ ~cRssReader();
+ virtual void Action(void);
+ void Stop(void) {Cancel(-1);};
+ void SetFeed(std::string feedUrl) {this->feedUrl = feedUrl;};
+ void SwitchNextMessage(void) {switchToNextMessage = true;};
+private:
+ cOsd *osd;
+ cFont *font;
+ cPixmap *pixmap;
+ std::string feedUrl;
+ int x, y;
+ int width, height;
+ void createPixmap(void);
+ void drawText(void);
+ int readRssURL(const char *url);
+ void saveRss(void);
+ void traverseTree(xmlNode * a_node, bool foundItem);
+ void saveItem(void);
+ void fadeInOut(bool fadeIn);
+ XMLMemoryStruct xmlData;
+ xmlDoc *doc;
+ std::string title, content;
+ std::vector<RssElement> rssElements;
+ int currentElement;
+ bool useProxy;
+ std::string httpproxy;
+ std::string separator;
+ void DoSleep(int duration);
+ bool switchToNextMessage;
+};
+
+#endif //__NOPACITY_RSSREADER_H \ No newline at end of file