summaryrefslogtreecommitdiff
path: root/public.sdk/samples/vst2.x/adelay/editor
diff options
context:
space:
mode:
Diffstat (limited to 'public.sdk/samples/vst2.x/adelay/editor')
-rw-r--r--public.sdk/samples/vst2.x/adelay/editor/resources/bmp00128.bmpbin0 -> 116154 bytes
-rw-r--r--public.sdk/samples/vst2.x/adelay/editor/resources/bmp00129.bmpbin0 -> 2634 bytes
-rw-r--r--public.sdk/samples/vst2.x/adelay/editor/resources/bmp00130.bmpbin0 -> 294 bytes
-rw-r--r--public.sdk/samples/vst2.x/adelay/editor/resources/surrounddelay.rc10
-rw-r--r--public.sdk/samples/vst2.x/adelay/editor/sdeditor.cpp235
-rw-r--r--public.sdk/samples/vst2.x/adelay/editor/sdeditor.h51
6 files changed, 296 insertions, 0 deletions
diff --git a/public.sdk/samples/vst2.x/adelay/editor/resources/bmp00128.bmp b/public.sdk/samples/vst2.x/adelay/editor/resources/bmp00128.bmp
new file mode 100644
index 0000000..1e3b523
--- /dev/null
+++ b/public.sdk/samples/vst2.x/adelay/editor/resources/bmp00128.bmp
Binary files differ
diff --git a/public.sdk/samples/vst2.x/adelay/editor/resources/bmp00129.bmp b/public.sdk/samples/vst2.x/adelay/editor/resources/bmp00129.bmp
new file mode 100644
index 0000000..275e4aa
--- /dev/null
+++ b/public.sdk/samples/vst2.x/adelay/editor/resources/bmp00129.bmp
Binary files differ
diff --git a/public.sdk/samples/vst2.x/adelay/editor/resources/bmp00130.bmp b/public.sdk/samples/vst2.x/adelay/editor/resources/bmp00130.bmp
new file mode 100644
index 0000000..e272640
--- /dev/null
+++ b/public.sdk/samples/vst2.x/adelay/editor/resources/bmp00130.bmp
Binary files differ
diff --git a/public.sdk/samples/vst2.x/adelay/editor/resources/surrounddelay.rc b/public.sdk/samples/vst2.x/adelay/editor/resources/surrounddelay.rc
new file mode 100644
index 0000000..52ef47d
--- /dev/null
+++ b/public.sdk/samples/vst2.x/adelay/editor/resources/surrounddelay.rc
@@ -0,0 +1,10 @@
+#define APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+128 BITMAP DISCARDABLE "bmp00128.bmp"
+129 BITMAP DISCARDABLE "bmp00129.bmp"
+130 BITMAP DISCARDABLE "bmp00130.bmp"
diff --git a/public.sdk/samples/vst2.x/adelay/editor/sdeditor.cpp b/public.sdk/samples/vst2.x/adelay/editor/sdeditor.cpp
new file mode 100644
index 0000000..ac5ebfc
--- /dev/null
+++ b/public.sdk/samples/vst2.x/adelay/editor/sdeditor.cpp
@@ -0,0 +1,235 @@
+//-------------------------------------------------------------------------------------------------------
+// VST Plug-Ins SDK
+// Version 2.4 $Date: 2006/11/13 09:08:28 $
+//
+// Category : VST 2.x SDK Samples
+// Filename : sdeditor.cpp
+// Created by : Steinberg Media Technologies
+// Description : Simple Surround Delay plugin with Editor using VSTGUI
+//
+// © 2006, Steinberg Media Technologies, All Rights Reserved
+//-------------------------------------------------------------------------------------------------------
+
+#ifndef __sdeditor__
+#include "sdeditor.h"
+#endif
+
+#ifndef __adelay__
+#include "../adelay.h"
+#endif
+
+#include <stdio.h>
+
+//-----------------------------------------------------------------------------
+// resource id's
+enum {
+ // bitmaps
+ kBackgroundId = 128,
+ kFaderBodyId,
+ kFaderHandleId,
+
+ // positions
+ kFaderX = 18,
+ kFaderY = 10,
+
+ kFaderInc = 18,
+
+ kDisplayX = 10,
+ kDisplayY = 184,
+ kDisplayXWidth = 30,
+ kDisplayHeight = 14
+};
+
+//-----------------------------------------------------------------------------
+// prototype string convert float -> percent
+void percentStringConvert (float value, char* string);
+void percentStringConvert (float value, char* string)
+{
+ sprintf (string, "%d%%", (int)(100 * value + 0.5f));
+}
+
+
+//-----------------------------------------------------------------------------
+// SDEditor class implementation
+//-----------------------------------------------------------------------------
+SDEditor::SDEditor (AudioEffect *effect)
+ : AEffGUIEditor (effect)
+{
+ delayFader = 0;
+ feedbackFader = 0;
+ volumeFader = 0;
+ delayDisplay = 0;
+ feedbackDisplay = 0;
+ volumeDisplay = 0;
+
+ // load the background bitmap
+ // we don't need to load all bitmaps, this could be done when open is called
+ hBackground = new CBitmap (kBackgroundId);
+
+ // init the size of the plugin
+ rect.left = 0;
+ rect.top = 0;
+ rect.right = (short)hBackground->getWidth ();
+ rect.bottom = (short)hBackground->getHeight ();
+}
+
+//-----------------------------------------------------------------------------
+SDEditor::~SDEditor ()
+{
+ // free the background bitmap
+ if (hBackground)
+ hBackground->forget ();
+ hBackground = 0;
+}
+
+//-----------------------------------------------------------------------------
+bool SDEditor::open (void *ptr)
+{
+ // !!! always call this !!!
+ AEffGUIEditor::open (ptr);
+
+ //--load some bitmaps
+ CBitmap* hFaderBody = new CBitmap (kFaderBodyId);
+ CBitmap* hFaderHandle = new CBitmap (kFaderHandleId);
+
+ //--init background frame-----------------------------------------------
+ // We use a local CFrame object so that calls to setParameter won't call into objects which may not exist yet.
+ // If all GUI objects are created we assign our class member to this one. See bottom of this method.
+ CRect size (0, 0, hBackground->getWidth (), hBackground->getHeight ());
+ CFrame* lFrame = new CFrame (size, ptr, this);
+ lFrame->setBackground (hBackground);
+
+ //--init the faders------------------------------------------------
+ int minPos = kFaderY;
+ int maxPos = kFaderY + hFaderBody->getHeight () - hFaderHandle->getHeight () - 1;
+ CPoint point (0, 0);
+ CPoint offset (1, 0);
+
+ // Delay
+ size (kFaderX, kFaderY,
+ kFaderX + hFaderBody->getWidth (), kFaderY + hFaderBody->getHeight ());
+ delayFader = new CVerticalSlider (size, this, kDelay, minPos, maxPos, hFaderHandle, hFaderBody, point);
+ delayFader->setOffsetHandle (offset);
+ delayFader->setValue (effect->getParameter (kDelay));
+ lFrame->addView (delayFader);
+
+ // FeedBack
+ size.offset (kFaderInc + hFaderBody->getWidth (), 0);
+ feedbackFader = new CVerticalSlider (size, this, kFeedBack, minPos, maxPos, hFaderHandle, hFaderBody, point);
+ feedbackFader->setOffsetHandle (offset);
+ feedbackFader->setValue (effect->getParameter (kFeedBack));
+ lFrame->addView (feedbackFader);
+
+ // Volume
+ size.offset (kFaderInc + hFaderBody->getWidth (), 0);
+ volumeFader = new CVerticalSlider (size, this, kOut, minPos, maxPos, hFaderHandle, hFaderBody, point);
+ volumeFader->setOffsetHandle (offset);
+ volumeFader->setValue (effect->getParameter (kOut));
+ volumeFader->setDefaultValue (0.75f);
+ lFrame->addView (volumeFader);
+
+ //--init the display------------------------------------------------
+ // Delay
+ size (kDisplayX, kDisplayY,
+ kDisplayX + kDisplayXWidth, kDisplayY + kDisplayHeight);
+ delayDisplay = new CParamDisplay (size, 0, kCenterText);
+ delayDisplay->setFont (kNormalFontSmall);
+ delayDisplay->setFontColor (kWhiteCColor);
+ delayDisplay->setBackColor (kBlackCColor);
+ delayDisplay->setFrameColor (kBlueCColor);
+ delayDisplay->setValue (effect->getParameter (kDelay));
+ lFrame->addView (delayDisplay);
+
+ // FeedBack
+ size.offset (kFaderInc + hFaderBody->getWidth (), 0);
+ feedbackDisplay = new CParamDisplay (size, 0, kCenterText);
+ feedbackDisplay->setFont (kNormalFontSmall);
+ feedbackDisplay->setFontColor (kWhiteCColor);
+ feedbackDisplay->setBackColor (kBlackCColor);
+ feedbackDisplay->setFrameColor (kBlueCColor);
+ feedbackDisplay->setValue (effect->getParameter (kFeedBack));
+ feedbackDisplay->setStringConvert (percentStringConvert);
+ lFrame->addView (feedbackDisplay);
+
+ // Volume
+ size.offset (kFaderInc + hFaderBody->getWidth (), 0);
+ volumeDisplay = new CParamDisplay (size, 0, kCenterText);
+ volumeDisplay->setFont (kNormalFontSmall);
+ volumeDisplay->setFontColor (kWhiteCColor);
+ volumeDisplay->setBackColor (kBlackCColor);
+ volumeDisplay->setFrameColor (kBlueCColor);
+ volumeDisplay->setValue (effect->getParameter (kOut));
+ volumeDisplay->setStringConvert (percentStringConvert);
+ lFrame->addView (volumeDisplay);
+
+
+ // Note : in the constructor of a CBitmap, the number of references is set to 1.
+ // Then, each time the bitmap is used (for hinstance in a vertical slider), this
+ // number is incremented.
+ // As a consequence, everything happens as if the constructor by itself was adding
+ // a reference. That's why we need til here a call to forget ().
+ // You mustn't call delete here directly, because the bitmap is used by some CControls...
+ // These "rules" apply to the other VSTGUI objects too.
+ hFaderBody->forget ();
+ hFaderHandle->forget ();
+
+ frame = lFrame;
+ return true;
+}
+
+//-----------------------------------------------------------------------------
+void SDEditor::close ()
+{
+ delete frame;
+ frame = 0;
+}
+
+//-----------------------------------------------------------------------------
+void SDEditor::setParameter (VstInt32 index, float value)
+{
+ if (frame == 0)
+ return;
+
+ // called from ADelayEdit
+ switch (index)
+ {
+ case kDelay:
+ if (delayFader)
+ delayFader->setValue (effect->getParameter (index));
+ if (delayDisplay)
+ delayDisplay->setValue (effect->getParameter (index));
+ break;
+
+ case kFeedBack:
+ if (feedbackFader)
+ feedbackFader->setValue (effect->getParameter (index));
+ if (feedbackDisplay)
+ feedbackDisplay->setValue (effect->getParameter (index));
+ break;
+
+ case kOut:
+ if (volumeFader)
+ volumeFader->setValue (effect->getParameter (index));
+ if (volumeDisplay)
+ volumeDisplay->setValue (effect->getParameter (index));
+ break;
+ }
+}
+
+//-----------------------------------------------------------------------------
+void SDEditor::valueChanged (CDrawContext* context, CControl* control)
+{
+ long tag = control->getTag ();
+ switch (tag)
+ {
+ case kDelay:
+ case kFeedBack:
+ case kOut:
+ effect->setParameterAutomated (tag, control->getValue ());
+ control->setDirty ();
+ break;
+ }
+}
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
diff --git a/public.sdk/samples/vst2.x/adelay/editor/sdeditor.h b/public.sdk/samples/vst2.x/adelay/editor/sdeditor.h
new file mode 100644
index 0000000..abe427a
--- /dev/null
+++ b/public.sdk/samples/vst2.x/adelay/editor/sdeditor.h
@@ -0,0 +1,51 @@
+//-------------------------------------------------------------------------------------------------------
+// VST Plug-Ins SDK
+// Version 2.4 $Date: 2006/11/13 09:08:28 $
+//
+// Category : VST 2.x SDK Samples
+// Filename : sdeditor.h
+// Created by : Steinberg Media Technologies
+// Description : Simple Surround Delay plugin with Editor using VSTGUI
+//
+// © 2006, Steinberg Media Technologies, All Rights Reserved
+//-------------------------------------------------------------------------------------------------------
+
+#ifndef __sdeditor__
+#define __sdeditor__
+
+
+// include VSTGUI
+#ifndef __vstgui__
+#include "vstgui.sf/vstgui/vstgui.h"
+#endif
+
+
+//-----------------------------------------------------------------------------
+class SDEditor : public AEffGUIEditor, public CControlListener
+{
+public:
+ SDEditor (AudioEffect* effect);
+ virtual ~SDEditor ();
+
+public:
+ virtual bool open (void* ptr);
+ virtual void close ();
+
+ virtual void setParameter (VstInt32 index, float value);
+ virtual void valueChanged (CDrawContext* context, CControl* control);
+
+private:
+ // Controls
+ CVerticalSlider* delayFader;
+ CVerticalSlider* feedbackFader;
+ CVerticalSlider* volumeFader;
+
+ CParamDisplay* delayDisplay;
+ CParamDisplay* feedbackDisplay;
+ CParamDisplay* volumeDisplay;
+
+ // Bitmap
+ CBitmap* hBackground;
+};
+
+#endif