diff options
Diffstat (limited to 'Src/Wasabi/api/skin/widgets/seqvis.h')
-rw-r--r-- | Src/Wasabi/api/skin/widgets/seqvis.h | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/Src/Wasabi/api/skin/widgets/seqvis.h b/Src/Wasabi/api/skin/widgets/seqvis.h new file mode 100644 index 00000000..0562c8a2 --- /dev/null +++ b/Src/Wasabi/api/skin/widgets/seqvis.h @@ -0,0 +1,104 @@ +#ifndef _SEQVIS_H +#define _SEQVIS_H + +#include <api/wnd/basewnd.h> +#include <api/wnd/virtualwnd.h> +#include <api/syscb/callbacks/corecbi.h> +#include <api/service/svc_enum.h> +#include <api/service/svcs/svc_skinfilter.h> +#include <api/script/objects/guiobj.h> + +// {8D1EBA38-489E-483e-B960-8D1F43C5C405} +static const GUID eqvisGuid = +{ 0x8d1eba38, 0x489e, 0x483e, { 0xb9, 0x60, 0x8d, 0x1f, 0x43, 0xc5, 0xc4, 0x5 } }; + +#define SEQVIS_PARENT GuiObjectWnd + +class EqVisScriptController : public GuiObjectScriptController { + public: + + virtual const wchar_t *getClassName(); + virtual const wchar_t *getAncestorClassName(); + virtual ScriptObjectController *getAncestorController() { return guiController; } + virtual int getNumFunctions(); + virtual const function_descriptor_struct *getExportedFunctions(); + virtual GUID getClassGuid(); + virtual ScriptObject *instantiate(); + virtual void destroy(ScriptObject *o); + virtual void *encapsulate(ScriptObject *o); + virtual void deencapsulate(void *o); + + private: + + static function_descriptor_struct exportedFunction[]; + +}; + +extern EqVisScriptController *eqvisController; + +class SEQVis : public SEQVIS_PARENT, public CoreCallbackI { +public: + SEQVis(); + virtual ~SEQVis(); + + virtual int setXuiParam(int xiuhandle, int attrid, const wchar_t *paramname, const wchar_t *strvalue); + + int onInit(); + void DrawEQVis(); + int onPaint(Canvas *canvas); + + virtual int onResize(); + +protected: +/*static */void CreateXMLParameters(int master_handle); + typedef struct { + float *keys; /* Key data, keyWidth*numKeys */ + signed int keyWidth; /* Number of floats per key */ + signed int numKeys; /* Number of keys */ + float cont; /* Continuity. Should be -1.0 -> 1.0 */ + float bias; /* Bias. -1.0 -> 1.0 */ + float tens; /* Tension. -1.0 -> 1.0 */ + } spline_struct; + + void splineGetPoint(spline_struct *s, float frame, float *out); + + virtual int corecb_onEQPreampChange(int newval); + virtual int corecb_onEQBandChange(int band, int newval); + + virtual void reloadResources(); + + enum { + SEQVIS_SETALPHA=0, + SEQVIS_SETCOLORTOP, + SEQVIS_SETCOLORMIDDLE, + SEQVIS_SETCOLORBOTTOM, + SEQVIS_SETCOLORPREAMP, + }; + + +private: + static XMLParamPair params[]; + BltCanvas *bc; + int *specData; + int cur_w, cur_h; + int colortop, colormid, colorbottom; + int colorpreamp; + int *shadedColors; + int invalidated; + PtrList<svc_skinFilter>filters; + SkinFilterEnum *sfe; + int xuihandle; + +public: + + static scriptVar script_vcpu_fake(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static void instantiate(SEQVis *s); + +}; + +extern const wchar_t eqVisXuiStr[]; +extern char eqVisXuiSvcName[]; +class EqVisXuiSvc : public XuiObjectSvc<SEQVis, eqVisXuiStr, eqVisXuiSvcName> {}; + + +#endif
\ No newline at end of file |