diff options
author | Jean-Francois Mauguit <jfmauguit@mac.com> | 2024-09-24 09:03:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-24 09:03:25 -0400 |
commit | bab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Wasabi/api/script/objects/wacobj.h | |
parent | 4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff) | |
parent | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff) | |
download | winamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz |
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/Wasabi/api/script/objects/wacobj.h')
-rw-r--r-- | Src/Wasabi/api/script/objects/wacobj.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/Src/Wasabi/api/script/objects/wacobj.h b/Src/Wasabi/api/script/objects/wacobj.h new file mode 100644 index 00000000..44cf2d3e --- /dev/null +++ b/Src/Wasabi/api/script/objects/wacobj.h @@ -0,0 +1,75 @@ +#ifndef _WACOBJ_H +#define _WACOBJ_H + +#include <api/script/script.h> +#include <api/script/scriptobj.h> +#include <api/script/objects/guiobj.h> +#include <bfc/ptrlist.h> +#include <api/wac/wac.h> + +// {00C074A0-FEA2-49a0-BE8D-FABBDB161640} +static const GUID wacGuid = +{ 0xc074a0, 0xfea2, 0x49a0, { 0xbe, 0x8d, 0xfa, 0xbb, 0xdb, 0x16, 0x16, 0x40 } }; + +#define WACOBJECT_SCRIPTPARENT RootObjectInstance + +class WacScriptController : public ScriptObjectControllerI { + public: + + virtual const wchar_t *getClassName(); + virtual const wchar_t *getAncestorClassName(); + virtual ScriptObjectController *getAncestorController(); + virtual int getNumFunctions(); + virtual const function_descriptor_struct *getExportedFunctions(); + virtual GUID getClassGuid(); + virtual ScriptObject *instantiate(); + virtual void destroy(ScriptObject *o); + virtual int getInstantiable(); + virtual void *encapsulate(ScriptObject *o); + virtual void deencapsulate(void *o); + + private: + + static function_descriptor_struct exportedFunction[]; + +}; + +extern WacScriptController *wacController; + +#include <api/wnd/virtualwnd.h> + +class WACObject : public WACOBJECT_SCRIPTPARENT { + +public: + WACObject(); + virtual ~WACObject(); + + void setGUID(GUID g); + GUID getGUID(void); + + int onScriptNotify(const wchar_t *s, int i1, int i2); + + // VCPU + static scriptVar script_getGUID(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_getName(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_onNotify(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar str, scriptVar i1, scriptVar i2); + + static scriptVar script_vcpu_dummy4(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a, scriptVar b, scriptVar c, scriptVar d); + static scriptVar script_vcpu_dummy1(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a); + static scriptVar script_vcpu_dummy0(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + + // End VCPU + + static int notifyScripts(WaComponent *comp, const wchar_t *s, int i1, int i2); + + GUID myGUID; + +private: + + static PtrList<WACObject> wacobjs; + +public: +}; + + +#endif |