diff options
author | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
---|---|---|
committer | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
commit | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Wasabi/api/skin/widgets/sa.h | |
parent | 537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff) | |
download | winamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz |
Initial community commit
Diffstat (limited to 'Src/Wasabi/api/skin/widgets/sa.h')
-rw-r--r-- | Src/Wasabi/api/skin/widgets/sa.h | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/Src/Wasabi/api/skin/widgets/sa.h b/Src/Wasabi/api/skin/widgets/sa.h new file mode 100644 index 00000000..a421bb3b --- /dev/null +++ b/Src/Wasabi/api/skin/widgets/sa.h @@ -0,0 +1,157 @@ +#ifndef _SA_H +#define _SA_H + +#include <api/wnd/wndclass/qpaintwnd.h> +#include <api/service/svc_enum.h> +#include <api/service/svcs/svc_skinfilter.h> + +#define SA_TIMER_UPDATE 1 +#define SA_PARENT QuickPaintWnd + +// {CE4F97BE-77B0-4e19-9956-D49833C96C27} +static const GUID visGuid = +{ 0xce4f97be, 0x77b0, 0x4e19, { 0x99, 0x56, 0xd4, 0x98, 0x33, 0xc9, 0x6c, 0x27 } }; + +#include <api/script/objects/guiobj.h> + +class VisScriptController : 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 VisScriptController *visController; + +class SAWnd : public SA_PARENT, public DependentViewerI { +public: + SAWnd(); + virtual ~SAWnd(); + + int onInit(); + int onRightButtonUp(int x, int y); + int onLeftButtonDown(int x, int y); + virtual int setXuiParam(int _xuihandle, int attrid, const wchar_t *p, const wchar_t *s); + virtual int getPreferences(int what); + + void setChannel(int c); + void setFlipH(int v); + void setFlipV(int v); + int wantAutoContextMenu() { return 0; } + + virtual int onQuickPaint(BltCanvas *c, int w, int h, int newone); + + virtual void setBandColor(int band, ARGB32 col); + virtual void setOscColor(int n, ARGB32 col); + virtual void setPeakColor(ARGB32 col); + + virtual void setMode(int mode); + virtual int getMode(); + virtual void nextMode(); + virtual void getQuickPaintSize(int *w, int *h); + virtual void getQuickPaintSource(RECT *r); + virtual int wantNegativeHeight() { return 1; } + virtual int wantFilters() { return 1; } + virtual const wchar_t *getFiltersGroup() { return filtergroup; } +protected: + /*static */void CreateXMLParameters(int master_handle); +private: + int *specData; + int palette[256]; + int realtime; + int xuihandle; + + enum { + SA_SETCOLORALLBANDS=0, + SA_SETCOLORBAND1, + SA_SETCOLORBAND2, + SA_SETCOLORBAND3, + SA_SETCOLORBAND4, + SA_SETCOLORBAND5, + SA_SETCOLORBAND6, + SA_SETCOLORBAND7, + SA_SETCOLORBAND8, + SA_SETCOLORBAND9, + SA_SETCOLORBAND10, + SA_SETCOLORBAND11, + SA_SETCOLORBAND12, + SA_SETCOLORBAND13, + SA_SETCOLORBAND14, + SA_SETCOLORBAND15, + SA_SETCOLORBAND16, + SA_SETCOLORBANDPEAK, + SA_SETCOLORALLOSC, + SA_SETCOLOROSC1, + SA_SETCOLOROSC2, + SA_SETCOLOROSC3, + SA_SETCOLOROSC4, + SA_SETCOLOROSC5, + SA_SETCHANNEL, + SA_SETFLIPH, + SA_SETFLIPV, + SA_SETMODE, + SA_SETGAMMA, + SA_SETFALLOFF, + SA_SETPEAKFALLOFF, + SA_SETBANDWIDTH, + SA_FPS, + SA_COLORING, + SA_PEAKS, + SA_OSCDRAWSTYLE, + }; + static XMLParamPair params[]; + + int config_safalloff; + int config_sa_peak_falloff; + int config_sa; + int config_safire; + int config_sa_peaks; + int flip_h, flip_v; + int channel; + StringW filtergroup; + + int bx[75]; +int t_bx[75]; +float t_vx[75]; + + PtrList<svc_skinFilter>filters; + SkinFilterEnum *sfe; + +#ifdef WASABI_COMPILE_CONFIG + int saveconfsa; + StringW confsaname; +#endif + int off; + + virtual int viewer_onEvent(api_dependent *item, const GUID *classguid, int event, intptr_t param, void *ptr, size_t ptrlen); + +public: + + static scriptVar script_onFrame(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_setRealtime(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar r); + static scriptVar script_getRealtime(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_setMode(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a); + static scriptVar script_vcpu_getMode(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_nextMode(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + +}; + +extern const wchar_t visXuiStr[]; +extern char visXuiSvcName[]; +class VisXuiSvc : public XuiObjectSvc<SAWnd, visXuiStr, visXuiSvcName> {}; + + +#endif
\ No newline at end of file |