-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathmultifxVST.h
129 lines (109 loc) · 4.03 KB
/
multifxVST.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
//------------------------------------------------------//
//- CopyLeft : CTAF
//-
//- gestion du VST (communication avec l'host)
//-
//------------------------------------------------------//
#ifndef __multifxVST__
#define __multifxVST__
#ifndef __audioeffectx__
#include "audioeffectx.h"
#endif
enum
{
kChainTag = 0,
kNumParams
};
class CStockEffetLst;
class CCVSTHost;
class CEffectWnd;
class CEffectTxTDlg;
class CStockEffetLst;
class CCVSTHost;
class CMainDlg;
class CChainDlg;
class multifxVSTEditor;
class multifxVST;
class CControleurDlg;
class CControleurLst;
class CParameterLst;
class CAboutDlg;
//pointeur global qui stoque les object pour chaque instance
class CAppPointer
{
public :
CAppPointer(){
chaine_eff = 0;
host = 0;
pChain = 0;
pEffEditDlg = 0;
pEffParmDlg = 0;
pMainDlg = 0;
editor = 0;
effect = 0;
current_chaine = 0;
parameter = 0;
mnu = 0;
pAboutDlg = 0;
}
CStockEffetLst * chaine_eff;//chaines d'effet
CCVSTHost * host; //host VST virtuel (pr effet fils)
CChainDlg * pChain; //dlg avec les listes de chaines
CControleurDlg * pControleur;//dlg azvec les controleurs midis
CControleurLst * controleur; //liste des controleurs midi
CEffectWnd * pEffEditDlg; //fenetre d'effet
CEffectTxTDlg * pEffParmDlg; //fenetre d'effet générique
CMainDlg * pMainDlg; //fenetre principale
multifxVSTEditor * editor; //fenetre VST contenant la fenetre principale
multifxVST * effect; //Notre effet
CParameterLst * parameter; //automatisation des parametres
CMenu * mnu; //menu contenant les effets
CAboutDlg * pAboutDlg; //fenetre about
CEvent * m_waitfade;
int current_chaine;
};
//---------------------------------------------------------
class multifxVST : public AudioEffectX
{
public:
multifxVST (audioMasterCallback audioMaster);
~multifxVST ();
virtual long vendorSpecific (long lArg1, long lArg2, void* ptrArg, float floatArg);
virtual void process (float **inputs, float **outputs, long sampleFrames);
virtual void processReplacing (float **inputs, float **outputs, long sampleFrames);
virtual long processEvents(VstEvents *events);
virtual long canDo (char* text);
virtual void setBlockSize (long blockSize);
virtual void setParameter (long index, float value);
virtual float getParameter (long index);
virtual void getParameterLabel(long index, char *label);
virtual void getParameterDisplay(long index, char *text);
virtual void getParameterName(long index, char *text);
virtual bool needIdle(){return 1;};
virtual long fxIdle(){return 0;};
void SetUpdateChaine(int chaine){};
void mIdle () {masterIdle ();}
virtual void suspend ();
virtual void resume ();
virtual long startProcess (); // Called one time before the start of process call
virtual long stopProcess (); // Called after the stop of process call
virtual void setSampleRate(float sampleRate);
virtual bool keysRequired ();
virtual bool getProductString(char *text){strcpy(text,"MultifxVST"); return TRUE;}
virtual bool getVendorString (char* text){strcpy(text,"CTAF Audio - Cédric GESTES");return TRUE;}
virtual bool getEffectName (char* name){strcpy(name,"MultifxVST");return TRUE;}
virtual void close();
virtual void open();
void UpdatehostAPP();
virtual void setParameterAutomated(long index ,float value);
/*virtual int getInputLatency();
virtual int getOutputLatency();*/
//virtual void setParameterAutomated (long index, float value);
virtual bool string2parameter (long index, char* text);
virtual long getChunk(void **data,bool isPreset);
virtual long setChunk(void *data,long byteSize,bool isPreset);
protected:
CAppPointer APP;
void * dat; //pour les sauvegardes dans l'hote
};
#endif