From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Wasabi/api/skin/feeds/feedwatch.h | 54 +++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Src/Wasabi/api/skin/feeds/feedwatch.h (limited to 'Src/Wasabi/api/skin/feeds/feedwatch.h') 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 +#include +#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 -- cgit