diff options
author | louis <louis.braun@gmx.de> | 2013-04-07 10:39:42 +0200 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2013-04-07 10:39:42 +0200 |
commit | fba3191de71867e91eb51cde93136fcdda64c0ab (patch) | |
tree | e99221ec2c9a7dc612b7e818c4b544a0c1e65a1d /rssreader.h | |
parent | 518e7e87332e2b53e9f3e5f9fc853abaec2b360f (diff) | |
download | skin-nopacity-fba3191de71867e91eb51cde93136fcdda64c0ab.tar.gz skin-nopacity-fba3191de71867e91eb51cde93136fcdda64c0ab.tar.bz2 |
Added RSS Feed support
Diffstat (limited to 'rssreader.h')
-rw-r--r-- | rssreader.h | 58 |
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 |