diff options
Diffstat (limited to 'vendor/vstsdk2.4/vstgui.sf/drawtest/source/pdrawtesteffect.cpp')
| -rw-r--r-- | vendor/vstsdk2.4/vstgui.sf/drawtest/source/pdrawtesteffect.cpp | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/vendor/vstsdk2.4/vstgui.sf/drawtest/source/pdrawtesteffect.cpp b/vendor/vstsdk2.4/vstgui.sf/drawtest/source/pdrawtesteffect.cpp new file mode 100644 index 0000000..7db11fa --- /dev/null +++ b/vendor/vstsdk2.4/vstgui.sf/drawtest/source/pdrawtesteffect.cpp @@ -0,0 +1,177 @@ +//------------------------------------------------------------------------------------------------------- +// VSTGUI Test View plugin +// Copyright (c) 2004 Arne Scheffler. All rights reserved. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +//------------------------------------------------------------------------------------------------------- + +#if AU +#include "AUEffectBase.h" +#include "pdrawtesteditor.h" + +#define kComponentSubType 'vgdt' +#define kComponentManuf 'Xxxx' +#define kVersionNumber 0x00010000 + +class DrawTestAU : public AUEffectBase +{ +public: + DrawTestAU (AudioUnit au) + : AUEffectBase (au) + { + // editor = new DrawTestEditor (this); + } + + virtual ~DrawTestAU () + { + //if (editor) + //delete editor; + } + + virtual int GetNumCustomUIComponents () + { + return 1; + } + + virtual ComponentResult Version () { return kVersionNumber; } + + virtual void GetUIComponentDescs (ComponentDescription* inDescArray) + { + inDescArray[0].componentType = kAudioUnitCarbonViewComponentType; + inDescArray[0].componentSubType = kComponentSubType; + inDescArray[0].componentManufacturer = kComponentManuf; + inDescArray[0].componentFlags = 0; + inDescArray[0].componentFlagsMask = 0; + } + +/* ComponentResult GetPropertyInfo (AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32 &outDataSize, Boolean &outWritable) + { + if (inID == 64000) + { + if (editor) + { + outDataSize = sizeof (PluginGUIEditor*); + outWritable = false; + return noErr; + } + return kAudioUnitErr_InvalidProperty; + } + return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable); + } + + ComponentResult GetProperty (AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, void *outData) + { + if (inID == 64000) + { + if (editor) + { + long ptr = (long)editor; + *((long*)outData) = ptr; + return noErr; + } + else + *((long*)outData) = 0; + return kAudioUnitErr_InvalidProperty; + } + return AUEffectBase::GetProperty (inID, inScope, inElement, outData); + } +*/ +protected: + DrawTestEditor* editor; +}; + + +#include "AUCarbonViewBase.h" +#include "plugguieditor.h" + +class VSTGUIAUView : public AUCarbonViewBase +{ +public: + VSTGUIAUView (AudioUnitCarbonView auv) + : AUCarbonViewBase (auv) + , editor (0) + , xOffset (0) + , yOffset (0) + { + } + + virtual ~VSTGUIAUView () + { + if (editor) + { + editor->close (); + } + } + + void RespondToEventTimer (EventLoopTimerRef inTimer) + { + if (editor) + editor->doIdleStuff (); + } + + virtual OSStatus CreateUI(Float32 xoffset, Float32 yoffset) + { + AudioUnit unit = GetEditAudioUnit (); + if (unit) + { + editor = new DrawTestEditor (unit); + WindowRef window = GetCarbonWindow (); + editor->open (window); +// HIViewMoveBy ((HIViewRef)editor->getFrame ()->getPlatformControl (), xoffset, yoffset); + EmbedControl ((HIViewRef)editor->getFrame ()->getPlatformControl ()); + CRect fsize = editor->getFrame ()->getViewSize (fsize); + SizeControl (mCarbonPane, fsize.width (), fsize.height ()); + CreateEventLoopTimer (kEventDurationSecond, kEventDurationSecond / 24); + HIViewSetVisible ((HIViewRef)editor->getFrame ()->getPlatformControl (), true); + HIViewSetNeedsDisplay ((HIViewRef)editor->getFrame ()->getPlatformControl (), true); + } + return noErr; + } + + Float32 xOffset, yOffset; +protected: + PluginGUIEditor* editor; +}; + +COMPONENT_ENTRY(VSTGUIAUView); +COMPONENT_ENTRY(DrawTestAU); + + +#else +#include "pdrawtesteffect.h" +#include "pdrawtesteditor.h" + +DrawTestEffect::DrawTestEffect (audioMasterCallback audioMaster) +: AudioEffectX (audioMaster, 1, 0) +{ + editor = new DrawTestEditor (this); +} + +DrawTestEffect::~DrawTestEffect () +{ +} + +void DrawTestEffect::processReplacing (float **inputs, float **outputs, VstInt32 sampleFrames) +{ +} + +VstInt32 DrawTestEffect::canDo (char* text) +{ + if (!strcmp (text, "wantsUTF8Paths")) + return 1; + return 0; +} + +#endif |
