diff options
Diffstat (limited to 'vst')
| -rw-r--r-- | vst/drumgizmo_vst.cc | 55 | ||||
| -rw-r--r-- | vst/drumgizmo_vst.h | 4 | 
2 files changed, 53 insertions, 6 deletions
diff --git a/vst/drumgizmo_vst.cc b/vst/drumgizmo_vst.cc index 730a67b..5ada7cb 100644 --- a/vst/drumgizmo_vst.cc +++ b/vst/drumgizmo_vst.cc @@ -28,9 +28,47 @@  #include "constants.h" +#include <time.h> +  #define NUM_PROGRAMS 0  #define NUM_PARAMS 0 +#include <plugingui.h> + +class DGEditor : public AEffEditor { +public: +  DGEditor(AudioEffect* effect)  +  { +    dgeff = (DrumGizmoVst*)effect; +    plugingui = new PluginGUI(dgeff->drumgizmo); +  } + +  bool open(void* ptr) +  { +    plugingui->show(); +    return true; +  } + +  void close() +  { +    plugingui->hide(); +  } + +  bool isOpen() +  { +    return false; +  } + +	void idle() +  { +    plugingui->processEvents(); +  } + +private: +  DrumGizmoVst* dgeff; +  PluginGUI *plugingui; +}; +  AudioEffect* createEffectInstance(audioMasterCallback audioMaster)  {  	return new DrumGizmoVst(audioMaster); @@ -58,12 +96,19 @@ DrumGizmoVst::DrumGizmoVst(audioMasterCallback audioMaster)  		setNumOutputs(NUM_OUTPUTS);  		canProcessReplacing();  		isSynth(); -    char id[] = "DGV1"; // Four bytes typecasted into an unsigned integer + +    char id[] = "DGV2"; // Four bytes typecasted into an unsigned integer  		setUniqueID(*(unsigned int*)id); + +    //    setUniqueID((unsigned int)time(NULL)); +      	}  	initProcess();  	suspend(); + +  DGEditor *editor = new DGEditor(this); +  setEditor(editor);  }  DrumGizmoVst::~DrumGizmoVst() @@ -208,7 +253,7 @@ bool DrumGizmoVst::getProgramNameIndexed(VstInt32 category, VstInt32 index,  bool DrumGizmoVst::getEffectName(char* name)  { -	vst_strncpy(name, "DrumGizmo", kVstMaxEffectNameLen); +	vst_strncpy(name, "DrumGizmoA", kVstMaxEffectNameLen);  	return true;  } @@ -220,7 +265,7 @@ bool DrumGizmoVst::getVendorString(char* text)  bool DrumGizmoVst::getProductString(char* text)  { -	vst_strncpy(text, "Vst Synth", kVstMaxProductStrLen); +	vst_strncpy(text, "Vst SynthA", kVstMaxProductStrLen);  	return true;  } @@ -286,7 +331,7 @@ VstInt32 DrumGizmoVst::getMidiProgramCategory(VstInt32 channel,  {  	cat->parentCategoryIndex = -1;	// -1:no parent category  	cat->flags = 0;					// reserved, none defined yet, zero. -	VstInt32 category = cat->thisCategoryIndex; +  //	VstInt32 category = cat->thisCategoryIndex;  	vst_strncpy(cat->name, "Drums", 63);  	return 1;  } @@ -331,7 +376,7 @@ void DrumGizmoVst::processReplacing(float** inputs, float** outputs,  {    output->setOutputs(outputs); -   if(buffer_size != sampleFrames) { +  if(buffer_size != (size_t)sampleFrames) {      if(buffer) free(buffer);      buffer_size = sampleFrames;      buffer = (sample_t*)malloc(sizeof(sample_t) * buffer_size); diff --git a/vst/drumgizmo_vst.h b/vst/drumgizmo_vst.h index 90c7bfc..cf44cf7 100644 --- a/vst/drumgizmo_vst.h +++ b/vst/drumgizmo_vst.h @@ -28,6 +28,7 @@  #define __DRUMGIZMO_DRUMGIZMO_VST_H__  #include <public.sdk/source/vst2.x/audioeffectx.h> +#include <public.sdk/source/vst2.x/aeffeditor.h>  #include <drumgizmo.h> @@ -77,13 +78,14 @@ public:  	bool hasMidiProgramsChanged(VstInt32 channel);  	bool getMidiKeyName(VstInt32 channel, MidiKeyName* keyName); +  DrumGizmo *drumgizmo; +  private:  	void initProcess();    //	void noteOn(VstInt32 note, VstInt32 velocity, VstInt32 delta);    //	void noteOff();  	void fillProgram(VstInt32 channel, VstInt32 prg, MidiProgramName* mpn); -  DrumGizmo *drumgizmo;    InputVST *input;    OutputVST *output;    size_t pos;  | 
