aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/skin/feeds/feedwatch.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Wasabi/api/skin/feeds/feedwatch.h')
-rw-r--r--Src/Wasabi/api/skin/feeds/feedwatch.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/Src/Wasabi/api/skin/feeds/feedwatch.h b/Src/Wasabi/api/skin/feeds/feedwatch.h
new file mode 100644
index 00000000..3e3bd7a2
--- /dev/null
+++ b/Src/Wasabi/api/skin/feeds/feedwatch.h
@@ -0,0 +1,54 @@
+#ifndef __FEEDWATCH_H
+#define __FEEDWATCH_H
+
+#include <bfc/wasabi_std.h>
+#include <api/syscb/callbacks/svccbi.h>
+#include "feedwatcherso.h"
+
+class svc_textFeed;
+class ifc_dependent;
+
+
+
+class FeedWatcher : private SvcCallbackI, public FeedWatcherScriptObject {
+public:
+ FeedWatcher();
+ virtual ~FeedWatcher();
+
+ int setFeed(const wchar_t *feedid);
+ void releaseFeed();
+
+ const wchar_t *getFeedId();
+
+ virtual void feedwatcher_onSetFeed(svc_textFeed *svc) { }
+ virtual void feedwatcher_onFeedChange(const wchar_t *data) { }
+
+protected:
+ class FWDV : public DependentViewerI
+{
+public:
+ friend class FeedWatcher;
+
+ FWDV(FeedWatcher *parent);
+
+ virtual int viewer_onItemDeleted(ifc_dependent *item);
+ virtual int viewer_onEvent(ifc_dependent *item, const GUID *classguid, int event, intptr_t param, void *ptr, size_t ptrlen);
+
+ FeedWatcher *parent;
+};
+
+ // catches text feed change events
+ virtual int fwdv_onItemDeleted(ifc_dependent *item);
+ virtual int fwdv_onEvent(ifc_dependent *item, int event, intptr_t param2, void *ptr, size_t ptrlen);
+
+private:
+ // catches new feeds being registered
+ virtual void svccb_onSvcRegister(FOURCC type, waServiceFactory *svc);
+
+ int registered_syscb;
+ StringW feed_id;
+ svc_textFeed *textfeed;
+ FWDV fwdv;
+};
+
+#endif