00001
00002
00003
00004
00005
00008
00009 #define _TABLE_H_
00012 #include "elektrodef.h"
00013 #include "thread.h"
00016
00017 #define guidtable (Atable::CI.guid)
00018 #define guidtableFront (AtableFront::CI.guid)
00019 #define guidtableBack (AtableBack::CI.guid)
00020
00023
00024 #define MAXEFFECTINFO 1024
00025 #define MAXEFFECT 1024
00026 #define MAXCONTROL MAXEFFECT*16
00027
00030
00031 class Atable : public Aobject, public Athread
00032 {
00033 public:
00034 ELIBOBJ
00035
00036 EDLL Atable (char *name, Aobject *l, int x, int y, int w, int h);
00037 EDLL virtual ~Atable ();
00038
00039 EDLL virtual void paint (Abitmap *);
00040 EDLL virtual bool notify (Anode *o, int event, dword p=0);
00041 EDLL virtual bool size (int w, int h);
00042
00043 EDLL virtual bool add (class Aplugz *ei);
00044
00045 EDLL virtual bool add (class Apin *p);
00046 EDLL virtual bool del (class Apin *p);
00047
00048 EDLL virtual bool add (class Aconnect *c);
00049 EDLL virtual bool del (class Aconnect *c);
00050
00051 EDLL virtual bool del (class Aeffect *e);
00052
00053 EDLL void arrange ();
00054 EDLL void order ();
00055 EDLL void clear ();
00056
00057 EDLL bool stop ();
00058 EDLL virtual void run ();
00059
00060 EDLL virtual int getTime ();
00061
00062 EDLL virtual void settings ();
00063
00064 EDLL bool save (Afile *f);
00065 EDLL bool load (Afile *f);
00066
00067
00068 EDLL bool add (class Acontrol *c);
00069 EDLL void del (class Acontrol *c);
00070 EDLL bool record (class Acontrol *c, int ctrl, int value);
00071
00072
00073
00074 int bpmPhase;
00075 int bpmFreq;
00076 int videoW;
00077 int videoH;
00078 int frameRate;
00079 bool render;
00080 bool recording;
00081
00082 class Aitem *plugz;
00083
00084 char rootdir[MAX_PATH];
00085
00086
00087
00088 bool test (class Aeffect *e0, class Aeffect *e1);
00089
00090
00091 class Aitem *effectItems;
00092 class AeffectInfo *effectInfo[MAXEFFECTINFO];
00093 int nbEffectInfo;
00094 class Aeffect *effect[MAXEFFECT];
00095 int nbEffect;
00096 class Aeffect *effectOrder[MAXEFFECT];
00097 int nbEffectOrder;
00098 class Acontrol *control[MAXCONTROL];
00099 int nbControl;
00100
00101 class Apin *pins;
00102 class Aconnect *connects;
00103
00104 int nbPins;
00105 int idEffect;
00106
00107 class Aobject *layer;
00108 class AtableFront *front;
00109 class AtableBack *back;
00110 class AtableSelect *select;
00111 class Apattern *pattern;
00112
00113 class Amapping *mapping;
00114
00115 Asection synchronize;
00116 bool running;
00117 int timeStart;
00118 int timeCurrent;
00119
00120 };
00121
00124
00125 class AtableFront : public Aobject
00126 {
00127 public:
00128 ELIBOBJ
00129
00130 EDLL AtableFront (char *name, Aobject *l, Atable *t, int x, int y, int w, int h);
00131 EDLL virtual ~AtableFront ();
00132
00133 EDLL virtual bool notify (Anode *o, int event, dword p=0);
00134 EDLL virtual bool mouse (int x, int y, int state, int event);
00135
00136 int wy,ly;
00137 bool bac;
00138
00139 Atable *table;
00140 };
00141
00144
00145 class AtableBack : public Aobject
00146 {
00147 public:
00148 ELIBOBJ
00149
00150 EDLL AtableBack (char *name, Aobject *l, Atable *t, int x, int y, int w, int h);
00151 EDLL virtual ~AtableBack ();
00152
00153 EDLL virtual bool notify (Anode *o, int event, dword p=0);
00154 EDLL virtual bool mouse (int x, int y, int state, int event);
00155 EDLL virtual void update (Abitmap *b);
00156
00157 int wy,ly;
00158 bool bac;
00159
00160 Atable *table;
00161
00162
00163 Apin *fromPin;
00164 int fromX,fromY;
00165 Apin *toPin;
00166 int toX,toY;
00167
00168 void drawConnects (Abitmap *b);
00169 };
00170
00173 #endif //_TABLE_H