1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #ifndef _SVC_IMGGEN_H
- #define _SVC_IMGGEN_H
- #include <bfc/dispatch.h>
- #include <api/service/services.h>
- class NOVTABLE svc_imageGenerator : public Dispatchable
- {
- public:
- static FOURCC getServiceType() { return WaSvc::IMAGEGENERATOR; }
- int testDesc(const wchar_t *desc);
- ARGB32 *genImage(const wchar_t *desc, int *has_alpha, int *w, int *h, ifc_xmlreaderparams *params = NULL);
- int outputCacheable();
- enum {
- TESTDESC = 10,
- GENIMAGE = 30,
- OUTPUTCACHEABLE = 40,
- };
- };
- inline int svc_imageGenerator::testDesc(const wchar_t *desc)
- {
- return _call(TESTDESC, 0, desc);
- }
- inline ARGB32 *svc_imageGenerator::genImage(const wchar_t *desc, int *has_alpha, int *w, int *h, ifc_xmlreaderparams *params)
- {
- return _call(GENIMAGE, (ARGB32 *)0, desc, has_alpha, w, h, params);
- }
- inline int svc_imageGenerator::outputCacheable()
- {
- return _call(OUTPUTCACHEABLE, 0);
- }
- // derive from this one
- class NOVTABLE svc_imageGeneratorI : public svc_imageGenerator
- {
- public:
- virtual int testDesc(const wchar_t *desc) = 0;
- virtual ARGB32 *genImage(const wchar_t *desc, int *has_alpha, int *w, int *h, ifc_xmlreaderparams *params = NULL) = 0;
- virtual int outputCacheable() { return 0; }
- protected:
- RECVS_DISPATCH;
- };
- #include <api/service/svc_enum.h>
- #include <bfc/string/StringW.h>
- class ImgGeneratorEnum : public SvcEnumT<svc_imageGenerator>
- {
- public:
- ImgGeneratorEnum(const wchar_t *_desc) : desc(_desc) { }
- protected:
- virtual int testService(svc_imageGenerator *svc)
- {
- return svc->testDesc(desc);
- }
- private:
- StringW desc;
- };
- #endif
|