diff options
-rw-r--r-- | vst/drumgizmo_vst.cc | 65 | ||||
-rw-r--r-- | vst/drumgizmo_vst.h | 20 | ||||
-rw-r--r-- | vst/input_vst.cc | 2 |
3 files changed, 51 insertions, 36 deletions
diff --git a/vst/drumgizmo_vst.cc b/vst/drumgizmo_vst.cc index 5ada7cb..381f2f9 100644 --- a/vst/drumgizmo_vst.cc +++ b/vst/drumgizmo_vst.cc @@ -33,41 +33,36 @@ #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; - } +DGEditor::DGEditor(AudioEffect* effect) +{ + dgeff = (DrumGizmoVst*)effect; + plugingui = NULL; + drumgizmo = dgeff->drumgizmo; +} - void close() - { - plugingui->hide(); - } +bool DGEditor::open(void* ptr) +{ + if(!plugingui) plugingui = new PluginGUI(drumgizmo); + plugingui->show(); + return true; +} - bool isOpen() - { - return false; - } +void DGEditor::close() +{ + plugingui->hide(); + delete plugingui; + plugingui = NULL; +} - void idle() - { - plugingui->processEvents(); - } +bool DGEditor::isOpen() +{ + return plugingui != NULL;; +} -private: - DrumGizmoVst* dgeff; - PluginGUI *plugingui; -}; +void DGEditor::idle() +{ + if(plugingui) plugingui->processEvents(); +} AudioEffect* createEffectInstance(audioMasterCallback audioMaster) { @@ -97,7 +92,7 @@ DrumGizmoVst::DrumGizmoVst(audioMasterCallback audioMaster) canProcessReplacing(); isSynth(); - char id[] = "DGV2"; // Four bytes typecasted into an unsigned integer + char id[] = "DGV4"; // Four bytes typecasted into an unsigned integer setUniqueID(*(unsigned int*)id); // setUniqueID((unsigned int)time(NULL)); @@ -107,7 +102,7 @@ DrumGizmoVst::DrumGizmoVst(audioMasterCallback audioMaster) initProcess(); suspend(); - DGEditor *editor = new DGEditor(this); + editor = new DGEditor(this); setEditor(editor); } @@ -253,7 +248,7 @@ bool DrumGizmoVst::getProgramNameIndexed(VstInt32 category, VstInt32 index, bool DrumGizmoVst::getEffectName(char* name) { - vst_strncpy(name, "DrumGizmoA", kVstMaxEffectNameLen); + vst_strncpy(name, "DrumGizmo4", kVstMaxEffectNameLen); return true; } @@ -265,7 +260,7 @@ bool DrumGizmoVst::getVendorString(char* text) bool DrumGizmoVst::getProductString(char* text) { - vst_strncpy(text, "Vst SynthA", kVstMaxProductStrLen); + vst_strncpy(text, "Vst Synth", kVstMaxProductStrLen); return true; } diff --git a/vst/drumgizmo_vst.h b/vst/drumgizmo_vst.h index cf44cf7..5e063ff 100644 --- a/vst/drumgizmo_vst.h +++ b/vst/drumgizmo_vst.h @@ -31,10 +31,13 @@ #include <public.sdk/source/vst2.x/aeffeditor.h> #include <drumgizmo.h> +#include <plugingui.h> #include "input_vst.h" #include "output_vst.h" +class DGEditor; + class DrumGizmoVst : public AudioEffectX { public: @@ -91,6 +94,23 @@ private: size_t pos; sample_t *buffer; size_t buffer_size; + + DGEditor *editor; +}; + +class DGEditor : public AEffEditor { +public: + DGEditor(AudioEffect* effect); + + bool open(void* ptr); + void close(); + bool isOpen(); + void idle(); + +private: + DrumGizmoVst* dgeff; + PluginGUI *plugingui; + DrumGizmo *drumgizmo; }; #endif/*__DRUMGIZMO_DRUMGIZMO_VST_H__*/ diff --git a/vst/input_vst.cc b/vst/input_vst.cc index 525c687..52015ad 100644 --- a/vst/input_vst.cc +++ b/vst/input_vst.cc @@ -45,7 +45,7 @@ bool InputVST::init(Instruments &instruments) mmap.midimap = p.midimap; for(size_t i = 0; i < instruments.size(); i++) { - mmap.instrmap[instruments[i]->name()] = i; + mmap.instrmap[instruments[i].name()] = i; } return true; |