PageRenderTime 26ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/apps/dubdelay/src/Components/XDubDelayMainComponent.cpp

http://juced.googlecode.com/
C++ | 321 lines | 165 code | 36 blank | 120 comment | 20 complexity | 83acb0390cf97984382c9e1fe6fe54f9 MD5 | raw file
Possible License(s): BSD-3-Clause, LGPL-2.1, LGPL-3.0, GPL-2.0
  1. /*
  2. ==============================================================================
  3. This is an automatically generated file created by the Jucer!
  4. Creation date: 18 Jan 2010 2:02:57 pm
  5. Be careful when adding custom code to these files, as only the code within
  6. the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
  7. and re-saved.
  8. Jucer version: 1.12
  9. ------------------------------------------------------------------------------
  10. The Jucer is part of the JUCE library - "Jules' Utility Class Extensions"
  11. Copyright 2004-6 by Raw Material Software ltd.
  12. ==============================================================================
  13. */
  14. //[Headers] You can add your own extra header files here...
  15. #include "../XDubDelayComponent.h"
  16. //[/Headers]
  17. #include "XDubDelayMainComponent.h"
  18. //[MiscUserDefs] You can add your own user definitions and misc code here...
  19. //[/MiscUserDefs]
  20. //==============================================================================
  21. XDubDelayMainComponent::XDubDelayMainComponent (XDubDelayComponent* const editor_, XDubDelayPlugin* const plugin_)
  22. : editor (editor_),
  23. plugin (plugin_),
  24. label (0),
  25. delaySlider (0),
  26. feedbackSlider (0),
  27. toneSlider (0),
  28. lfoDepthSlider (0),
  29. lfoSpeedSlider (0),
  30. dryWetSlider (0),
  31. outputSlider (0)
  32. {
  33. addAndMakeVisible (label = new Label (T("new label"),
  34. T("v0.1.1")));
  35. label->setFont (Font (Font::getDefaultMonospacedFontName(), 15.7000f, Font::plain));
  36. label->setJustificationType (Justification::centredLeft);
  37. label->setEditable (false, false, false);
  38. label->setColour (TextEditor::textColourId, Colours::black);
  39. label->setColour (TextEditor::backgroundColourId, Colour (0x0));
  40. addAndMakeVisible (delaySlider = new ImageSlider (String::empty));
  41. delaySlider->setRange (0, 1, 0.0001);
  42. delaySlider->setSliderStyle (Slider::LinearVertical);
  43. delaySlider->setTextBoxStyle (Slider::NoTextBox, true, 80, 20);
  44. delaySlider->addListener (this);
  45. addAndMakeVisible (feedbackSlider = new ImageSlider (String::empty));
  46. feedbackSlider->setRange (0, 1, 0.0001);
  47. feedbackSlider->setSliderStyle (Slider::LinearVertical);
  48. feedbackSlider->setTextBoxStyle (Slider::NoTextBox, true, 80, 20);
  49. feedbackSlider->addListener (this);
  50. addAndMakeVisible (toneSlider = new ImageSlider (String::empty));
  51. toneSlider->setRange (0, 1, 0.0001);
  52. toneSlider->setSliderStyle (Slider::LinearVertical);
  53. toneSlider->setTextBoxStyle (Slider::NoTextBox, true, 80, 20);
  54. toneSlider->addListener (this);
  55. addAndMakeVisible (lfoDepthSlider = new ImageSlider (String::empty));
  56. lfoDepthSlider->setRange (0, 1, 0.0001);
  57. lfoDepthSlider->setSliderStyle (Slider::LinearVertical);
  58. lfoDepthSlider->setTextBoxStyle (Slider::NoTextBox, true, 80, 20);
  59. lfoDepthSlider->addListener (this);
  60. addAndMakeVisible (lfoSpeedSlider = new ImageSlider (String::empty));
  61. lfoSpeedSlider->setRange (0, 1, 0.0001);
  62. lfoSpeedSlider->setSliderStyle (Slider::LinearVertical);
  63. lfoSpeedSlider->setTextBoxStyle (Slider::NoTextBox, true, 80, 20);
  64. lfoSpeedSlider->addListener (this);
  65. addAndMakeVisible (dryWetSlider = new ImageSlider (String::empty));
  66. dryWetSlider->setRange (0, 1, 0.0001);
  67. dryWetSlider->setSliderStyle (Slider::LinearVertical);
  68. dryWetSlider->setTextBoxStyle (Slider::NoTextBox, true, 80, 20);
  69. dryWetSlider->addListener (this);
  70. addAndMakeVisible (outputSlider = new ImageSlider (String::empty));
  71. outputSlider->setRange (0, 1, 0.0001);
  72. outputSlider->setSliderStyle (Slider::LinearVertical);
  73. outputSlider->setTextBoxStyle (Slider::NoTextBox, true, 80, 20);
  74. outputSlider->addListener (this);
  75. //[UserPreSize]
  76. //[/UserPreSize]
  77. setSize (480, 280);
  78. //[Constructor] You can add your own custom stuff here..
  79. String pluginVersion;
  80. pluginVersion << T("v") << T(JucePlugin_VersionString);
  81. label->setText (pluginVersion, false);
  82. plugin->getParameterLock().enter ();
  83. plugin->addListenerToParameter (PAR_DELAY, delaySlider);
  84. plugin->addListenerToParameter (PAR_FEEDBACK, feedbackSlider);
  85. plugin->addListenerToParameter (PAR_TONE, toneSlider);
  86. plugin->addListenerToParameter (PAR_LFODEPTH, lfoDepthSlider);
  87. plugin->addListenerToParameter (PAR_LFOSPEED, lfoSpeedSlider);
  88. plugin->addListenerToParameter (PAR_DRYWET, dryWetSlider);
  89. plugin->addListenerToParameter (PAR_OUTPUT, outputSlider);
  90. plugin->getParameterLock().exit ();
  91. updateControls ();
  92. //[/Constructor]
  93. }
  94. XDubDelayMainComponent::~XDubDelayMainComponent()
  95. {
  96. //[Destructor_pre]. You can add your own custom destruction code here..
  97. plugin->getParameterLock().enter ();
  98. plugin->removeListenerToParameter (PAR_DELAY, delaySlider);
  99. plugin->removeListenerToParameter (PAR_FEEDBACK, feedbackSlider);
  100. plugin->removeListenerToParameter (PAR_TONE, toneSlider);
  101. plugin->removeListenerToParameter (PAR_LFODEPTH, lfoDepthSlider);
  102. plugin->removeListenerToParameter (PAR_LFOSPEED, lfoSpeedSlider);
  103. plugin->removeListenerToParameter (PAR_DRYWET, dryWetSlider);
  104. plugin->removeListenerToParameter (PAR_OUTPUT, outputSlider);
  105. plugin->getParameterLock().exit ();
  106. //[/Destructor_pre]
  107. deleteAndZero (label);
  108. deleteAndZero (delaySlider);
  109. deleteAndZero (feedbackSlider);
  110. deleteAndZero (toneSlider);
  111. deleteAndZero (lfoDepthSlider);
  112. deleteAndZero (lfoSpeedSlider);
  113. deleteAndZero (dryWetSlider);
  114. deleteAndZero (outputSlider);
  115. //[Destructor]. You can add your own custom destruction code here..
  116. //[/Destructor]
  117. }
  118. //==============================================================================
  119. void XDubDelayMainComponent::paint (Graphics& g)
  120. {
  121. //[UserPrePaint] Add your own custom painting code here..
  122. //[/UserPrePaint]
  123. g.setGradientFill (ColourGradient (Colour (0xff598872),
  124. 222.0f, 236.0f,
  125. Colour (0xff749a88),
  126. 221.0f, 12.0f,
  127. false));
  128. g.fillRect (0, 0, 480, 267);
  129. g.setGradientFill (ColourGradient (Colour (0xff598872),
  130. 231.0f, 270.0f,
  131. Colours::black,
  132. 231.0f, 280.0f,
  133. false));
  134. g.fillRect (0, 267, 480, 13);
  135. g.setColour (Colour (0xff2e3538));
  136. g.setFont (Font (Font::getDefaultMonospacedFontName(), 37.0000f, Font::bold | Font::italic));
  137. g.drawText (T("DUB DELAY"),
  138. 3, 3, 474, 27,
  139. Justification::centred, true);
  140. //[UserPaint] Add your own custom painting code here..
  141. //[/UserPaint]
  142. }
  143. void XDubDelayMainComponent::resized()
  144. {
  145. label->setBounds (329, 16, 52, 16);
  146. delaySlider->setBounds (30, 57, 33, 180);
  147. feedbackSlider->setBounds (64, 57, 33, 180);
  148. toneSlider->setBounds (98, 58, 33, 180);
  149. lfoDepthSlider->setBounds (134, 59, 33, 180);
  150. lfoSpeedSlider->setBounds (170, 59, 33, 180);
  151. dryWetSlider->setBounds (205, 58, 33, 180);
  152. outputSlider->setBounds (240, 58, 33, 180);
  153. //[UserResized] Add your own custom resize handling here..
  154. //[/UserResized]
  155. }
  156. void XDubDelayMainComponent::sliderValueChanged (Slider* sliderThatWasMoved)
  157. {
  158. //[UsersliderValueChanged_Pre]
  159. //[/UsersliderValueChanged_Pre]
  160. if (sliderThatWasMoved == delaySlider)
  161. {
  162. //[UserSliderCode_delaySlider] -- add your slider handling code here..
  163. plugin->setParameterNotifyingHost (PAR_DELAY, sliderThatWasMoved->getValue());
  164. //[/UserSliderCode_delaySlider]
  165. }
  166. else if (sliderThatWasMoved == feedbackSlider)
  167. {
  168. //[UserSliderCode_feedbackSlider] -- add your slider handling code here..
  169. plugin->setParameterNotifyingHost (PAR_FEEDBACK, sliderThatWasMoved->getValue());
  170. //[/UserSliderCode_feedbackSlider]
  171. }
  172. else if (sliderThatWasMoved == toneSlider)
  173. {
  174. //[UserSliderCode_toneSlider] -- add your slider handling code here..
  175. plugin->setParameterNotifyingHost (PAR_TONE, sliderThatWasMoved->getValue());
  176. //[/UserSliderCode_toneSlider]
  177. }
  178. else if (sliderThatWasMoved == lfoDepthSlider)
  179. {
  180. //[UserSliderCode_lfoDepthSlider] -- add your slider handling code here..
  181. plugin->setParameterNotifyingHost (PAR_LFODEPTH, sliderThatWasMoved->getValue());
  182. //[/UserSliderCode_lfoDepthSlider]
  183. }
  184. else if (sliderThatWasMoved == lfoSpeedSlider)
  185. {
  186. //[UserSliderCode_lfoSpeedSlider] -- add your slider handling code here..
  187. plugin->setParameterNotifyingHost (PAR_LFOSPEED, sliderThatWasMoved->getValue());
  188. //[/UserSliderCode_lfoSpeedSlider]
  189. }
  190. else if (sliderThatWasMoved == dryWetSlider)
  191. {
  192. //[UserSliderCode_dryWetSlider] -- add your slider handling code here..
  193. plugin->setParameterNotifyingHost (PAR_DRYWET, sliderThatWasMoved->getValue());
  194. //[/UserSliderCode_dryWetSlider]
  195. }
  196. else if (sliderThatWasMoved == outputSlider)
  197. {
  198. //[UserSliderCode_outputSlider] -- add your slider handling code here..
  199. plugin->setParameterNotifyingHost (PAR_OUTPUT, sliderThatWasMoved->getValue());
  200. //[/UserSliderCode_outputSlider]
  201. }
  202. //[UsersliderValueChanged_Post]
  203. //[/UsersliderValueChanged_Post]
  204. }
  205. //[MiscUserCode] You can add your own definitions of your custom methods or any other code here...
  206. //==============================================================================
  207. void XDubDelayMainComponent::updateControls ()
  208. {
  209. // update sliders
  210. delaySlider->setValue (plugin->getParameter (PAR_DELAY), false);
  211. feedbackSlider->setValue (plugin->getParameter (PAR_FEEDBACK), false);
  212. toneSlider->setValue (plugin->getParameter (PAR_TONE), false);
  213. lfoDepthSlider->setValue (plugin->getParameter (PAR_LFODEPTH), false);
  214. lfoSpeedSlider->setValue (plugin->getParameter (PAR_LFOSPEED), false);
  215. dryWetSlider->setValue (plugin->getParameter (PAR_DRYWET), false);
  216. outputSlider->setValue (plugin->getParameter (PAR_OUTPUT), false);
  217. }
  218. //[/MiscUserCode]
  219. //==============================================================================
  220. #if 0
  221. /* -- Jucer information section --
  222. This is where the Jucer puts all of its metadata, so don't change anything in here!
  223. BEGIN_JUCER_METADATA
  224. <JUCER_COMPONENT documentType="Component" className="XDubDelayMainComponent" componentName=""
  225. parentClasses="public Component" constructorParams="XDubDelayComponent* const editor_, XDubDelayPlugin* const plugin_"
  226. variableInitialisers="editor (editor_),&#10;plugin (plugin_)" snapPixels="8"
  227. snapActive="0" snapShown="1" overlayOpacity="0.330000013" fixedSize="1"
  228. initialWidth="480" initialHeight="280">
  229. <BACKGROUND backgroundColour="ffffff">
  230. <RECT pos="0 0 480 267" fill="linear: 222 236, 221 12, 0=ff598872, 1=ff749a88"
  231. hasStroke="0"/>
  232. <RECT pos="0 267 480 13" fill="linear: 231 270, 231 280, 0=ff598872, 1=ff000000"
  233. hasStroke="0"/>
  234. <TEXT pos="3 3 474 27" fill="solid: ff2e3538" hasStroke="0" text="DUB DELAY"
  235. fontname="Default monospaced font" fontsize="37" bold="1" italic="1"
  236. justification="36"/>
  237. </BACKGROUND>
  238. <LABEL name="new label" id="2dc5acc563ebd2bc" memberName="label" virtualName=""
  239. explicitFocusOrder="0" pos="329 16 52 16" edTextCol="ff000000"
  240. edBkgCol="0" labelText="v0.1.1" editableSingleClick="0" editableDoubleClick="0"
  241. focusDiscardsChanges="0" fontname="Default monospaced font" fontsize="15.7"
  242. bold="0" italic="0" justification="33"/>
  243. <SLIDER name="" id="473e01880cd16bdb" memberName="delaySlider" virtualName="ImageSlider"
  244. explicitFocusOrder="0" pos="30 57 33 180" min="0" max="1" int="0.0001"
  245. style="LinearVertical" textBoxPos="NoTextBox" textBoxEditable="0"
  246. textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
  247. <SLIDER name="" id="13db7fbe3b6324a5" memberName="feedbackSlider" virtualName="ImageSlider"
  248. explicitFocusOrder="0" pos="64 57 33 180" min="0" max="1" int="0.0001"
  249. style="LinearVertical" textBoxPos="NoTextBox" textBoxEditable="0"
  250. textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
  251. <SLIDER name="" id="39b153ea56775141" memberName="toneSlider" virtualName="ImageSlider"
  252. explicitFocusOrder="0" pos="98 58 33 180" min="0" max="1" int="0.0001"
  253. style="LinearVertical" textBoxPos="NoTextBox" textBoxEditable="0"
  254. textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
  255. <SLIDER name="" id="97cbdaaaa60a6fb6" memberName="lfoDepthSlider" virtualName="ImageSlider"
  256. explicitFocusOrder="0" pos="134 59 33 180" min="0" max="1" int="0.0001"
  257. style="LinearVertical" textBoxPos="NoTextBox" textBoxEditable="0"
  258. textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
  259. <SLIDER name="" id="7c351d40ddd5c3e4" memberName="lfoSpeedSlider" virtualName="ImageSlider"
  260. explicitFocusOrder="0" pos="170 59 33 180" min="0" max="1" int="0.0001"
  261. style="LinearVertical" textBoxPos="NoTextBox" textBoxEditable="0"
  262. textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
  263. <SLIDER name="" id="28daa13c5c999959" memberName="dryWetSlider" virtualName="ImageSlider"
  264. explicitFocusOrder="0" pos="205 58 33 180" min="0" max="1" int="0.0001"
  265. style="LinearVertical" textBoxPos="NoTextBox" textBoxEditable="0"
  266. textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
  267. <SLIDER name="" id="e871f54524954ac2" memberName="outputSlider" virtualName="ImageSlider"
  268. explicitFocusOrder="0" pos="240 58 33 180" min="0" max="1" int="0.0001"
  269. style="LinearVertical" textBoxPos="NoTextBox" textBoxEditable="0"
  270. textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
  271. </JUCER_COMPONENT>
  272. END_JUCER_METADATA
  273. */
  274. #endif