00001
00002
00003
00004
00005
00008
00009 #define _EFFECT_H_
00012 #include "elektrodef.h"
00015
00016
00017
00020
00021 #define guidEFFECT (Aeffect::CI.guid)
00022
00025
00026 #define effectWIDTH 512
00027
00030
00031 class Aeffect : public Anode
00032 {
00033 public:
00034 ELIBOBJ
00035
00036 EDLL Aeffect (char *name, class Atable *t);
00037 EDLL virtual ~Aeffect ();
00038
00039 virtual bool action (int time, int dtime) { return TRUE; }
00040
00041 virtual void settings () { }
00042
00043 virtual bool save (Afile *f) { return TRUE; }
00044 virtual bool load (Afile *f) { return TRUE; }
00045
00046 EDLL static Aeffect * getEffect (Aobject *o);
00047
00048 class Atable *table;
00049 class AeffectFront *front;
00050 class AeffectBack *back;
00051
00052 int id;
00053 };
00054
00057
00058 class AeffectFront : public Aobject
00059 {
00060 public:
00061 ELIBOBJ
00062
00063 EDLL AeffectFront (char *name, class Aeffect *t, int h);
00064 EDLL virtual ~AeffectFront ();
00065
00066 EDLL virtual bool notify (Anode *o, int event, dword p);
00067
00068 Aeffect *effect;
00069 };
00070
00073
00074 class AeffectBack : public Aobject
00075 {
00076 public:
00077 ELIBOBJ
00078
00079 EDLL AeffectBack (char *name, class Aeffect *t, int h);
00080 EDLL virtual ~AeffectBack ();
00081
00082 EDLL virtual bool notify (Anode *o, int event, dword p);
00083
00084 Aeffect *effect;
00085 };
00086
00089
00090 class AeffectInfo : public Aplugz
00091 {
00092 public:
00093 ELIBOBJ
00094
00095 AeffectInfo (char *name, ACI *eci, char *ename, char *ehelp);
00096
00097 EDLL virtual Aeffect * create (char *name, Atable *table)=0;
00098 };
00099
00101
00102 __inline AeffectInfo::AeffectInfo(char *name, ACI *eci, char *ename, char *ehelp) : Aplugz(name, eci, ename, ehelp)
00103 {
00104 }
00105
00108 #endif //_EFFECT_H