Browse Source

No erroneous data in meter and scope on create. Reset button in amp fixed

master
edgeeffect 21 years ago
parent
commit
2d953fc5e8
10 changed files with 66 additions and 66 deletions
  1. +2
    -2
      SpiralSound/Plugins/AmpPlugin/AmpPlugin.C
  2. +7
    -9
      SpiralSound/Plugins/AmpPlugin/AmpPlugin.h
  3. +1
    -1
      SpiralSound/Plugins/AmpPlugin/AmpPluginGUI.C
  4. +9
    -6
      SpiralSound/Plugins/MeterPlugin/MeterPlugin.C
  5. +2
    -1
      SpiralSound/Plugins/MeterPlugin/MeterPlugin.h
  6. +2
    -1
      SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.C
  7. +12
    -10
      SpiralSound/Plugins/ScopePlugin/ScopePlugin.C
  8. +14
    -17
      SpiralSound/Plugins/ScopePlugin/ScopePlugin.h
  9. +11
    -13
      SpiralSound/Plugins/ScopePlugin/ScopePluginGUI.C
  10. +6
    -6
      SpiralSound/Plugins/ScopePlugin/ScopePluginGUI.h

+ 2
- 2
SpiralSound/Plugins/AmpPlugin/AmpPlugin.C View File

@@ -62,7 +62,6 @@ m_DC(0.0f)
m_PluginInfo.PortTips.push_back("Gain CV");
m_PluginInfo.PortTips.push_back("DC Offset CV");
m_PluginInfo.PortTips.push_back("Output");

m_AudioCH->Register("Gain",&m_Gain);
m_AudioCH->Register("DC",&m_DC);
}
@@ -92,7 +91,8 @@ void AmpPlugin::Execute()
in = GetInput(0,n);
in *= m_Gain+GetInput(1,n);
in += (-m_DC)+GetInput(2,n);
SetOutput(0,n,in);
SetOutput(0,n,in);
//cerr << m_Gain << " ";
}
}


+ 7
- 9
SpiralSound/Plugins/AmpPlugin/AmpPlugin.h View File

@@ -14,14 +14,14 @@
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/

#include "../SpiralPlugin.h"
#include <FL/Fl.h>
*/

#ifndef AMPPLUGIN
#define AMPPLUGIN

#include "../SpiralPlugin.h"
#include <FL/Fl.h>

class AmpPlugin : public SpiralPlugin
{
public:
@@ -37,15 +37,13 @@ public:
// has to be defined in the plugin
virtual void UpdateGUI() { Fl::check(); }

float GetGain() { return m_Gain; }
float GetDC() { return m_DC; }
float GetGain() { return m_Gain; }
float GetDC() { return m_DC; }

void Randomise();

private:
float m_Gain;
float m_DC;

float m_Gain, m_DC;
friend std::istream &operator>>(std::istream &s, AmpPlugin &o);
friend std::ostream &operator<<(std::ostream &s, AmpPlugin &o);
};


+ 1
- 1
SpiralSound/Plugins/AmpPlugin/AmpPluginGUI.C View File

@@ -166,7 +166,7 @@ void AmpPluginGUI::cb_NumDC (Fl_Counter* o, void* v) {
inline void AmpPluginGUI::cb_Reset_i (Fl_Button* o, void* v) {
m_NumGain->value (1.0);
m_Gain->value (1.0);
m_GUICH->Set ("Gain", 0);
m_GUICH->Set ("Gain", 1.0f);
m_NumDC->value (0.0);
m_DC->value (2.0);
m_GUICH->Set ("DC", 0);


+ 9
- 6
SpiralSound/Plugins/MeterPlugin/MeterPlugin.C View File

@@ -36,6 +36,7 @@ string SpiralPlugin_GetGroupName() { return "Control"; }

MeterPlugin::MeterPlugin():
m_Data (NULL),
m_DataReady (false),
m_VUMode (true)
{
m_PluginInfo.Name = "Meter";
@@ -45,6 +46,7 @@ m_VUMode (true)
m_PluginInfo.NumOutputs = 1;
m_PluginInfo.PortTips.push_back ("Input");
m_PluginInfo.PortTips.push_back ("Output");
m_AudioCH->Register ("DataReady", &m_DataReady, ChannelHandler::OUTPUT);
m_Version = 1;
}

@@ -64,12 +66,13 @@ SpiralGUIType *MeterPlugin::CreateGUI() {
}

void MeterPlugin::Execute() {
// Just copy the data through.
if (GetOutputBuf (0)) GetOutputBuf (0)->Zero();
if (GetInput (0)) {
GetOutputBuf (0)->Mix (*GetInput(0), 0);
memcpy (m_Data, GetInput (0)->GetBuffer (), m_HostInfo->BUFSIZE * sizeof (float));
}
// Just copy the data through.
m_DataReady = InputExists (0);
if (GetOutputBuf (0)) GetOutputBuf (0)->Zero();
if (m_DataReady) {
GetOutputBuf (0)->Mix (*GetInput(0), 0);
memcpy (m_Data, GetInput (0)->GetBuffer (), m_HostInfo->BUFSIZE * sizeof (float));
}
}

void MeterPlugin::ExecuteCommands () {


+ 2
- 1
SpiralSound/Plugins/MeterPlugin/MeterPlugin.h View File

@@ -35,7 +35,8 @@ class MeterPlugin : public SpiralPlugin {
enum GUICommands {NONE, SETVU, SETMM};
private:
float *m_Data;
bool m_VUMode; // This value isn't USED for anything, it's here so we can save/load it
// m_VUMode isn't USED for anything, it's here so we can save/load it
bool m_DataReady, m_VUMode;
};

#endif

+ 2
- 1
SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.C View File

@@ -94,7 +94,8 @@ void MeterPluginGUI::draw() {
SpiralGUIType::draw ();
if (! m_Bypass) {
float datum = 0.0;
m_GUICH->GetData ("AudioData", m_Data);
if (m_GUICH->GetBool ("DataReady")) m_GUICH->GetData ("AudioData", m_Data);
else memset (m_Data, 0, m_BufSize * sizeof (float));
// The min and max values are based on the whole buffer
for (int c=0; c<m_BufSize; c++) {
datum = m_Data[c];


+ 12
- 10
SpiralSound/Plugins/ScopePlugin/ScopePlugin.C View File

@@ -35,15 +35,17 @@ string SpiralPlugin_GetGroupName() { return "Control"; }

///////////////////////////////////////////////////////

ScopePlugin::ScopePlugin()
ScopePlugin::ScopePlugin():
m_DataReady(false)
{
m_PluginInfo.Name="Scope";
m_PluginInfo.Width=260;
m_PluginInfo.Height=115;
m_PluginInfo.NumInputs=1;
m_PluginInfo.NumOutputs=1;
m_PluginInfo.PortTips.push_back("Input");
m_PluginInfo.PortTips.push_back("Output");
m_PluginInfo.Name = "Scope";
m_PluginInfo.Width = 260;
m_PluginInfo.Height = 115;
m_PluginInfo.NumInputs = 1;
m_PluginInfo.NumOutputs = 1;
m_PluginInfo.PortTips.push_back("Input");
m_PluginInfo.PortTips.push_back("Output");
m_AudioCH->Register ("DataReady", &m_DataReady, ChannelHandler::OUTPUT);
}

ScopePlugin::~ScopePlugin()
@@ -65,10 +67,10 @@ SpiralGUIType *ScopePlugin::CreateGUI()

void ScopePlugin::Execute() {
// Just copy the data through.
m_DataReady = InputExists (0);
if (GetOutputBuf (0)) GetOutputBuf (0)->Zero();
if (GetInput (0)) {
if (m_DataReady) {
GetOutputBuf (0)->Mix (*GetInput(0), 0);
memcpy (m_Data, GetInput (0)->GetBuffer (), m_HostInfo->BUFSIZE * sizeof (float));
}
}


+ 14
- 17
SpiralSound/Plugins/ScopePlugin/ScopePlugin.h View File

@@ -16,27 +16,24 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/

#include "../SpiralPlugin.h"
#include <FL/Fl_Pixmap.H>

#ifndef SCOPEPLUGIN
#define SCOPEPLUGIN

class ScopePlugin : public SpiralPlugin
{
public:
ScopePlugin();
virtual ~ScopePlugin();
virtual PluginInfo& Initialise(const HostInfo *Host);
virtual SpiralGUIType* CreateGUI();
virtual void Execute();
virtual void StreamOut(std::ostream &s) {}
virtual void StreamIn(std::istream &s) {}
private:
#include "../SpiralPlugin.h"
#include <FL/Fl_Pixmap.H>

float *m_Data;
class ScopePlugin : public SpiralPlugin {
public:
ScopePlugin();
virtual ~ScopePlugin();
virtual PluginInfo& Initialise(const HostInfo *Host);
virtual SpiralGUIType* CreateGUI();
virtual void Execute();
virtual void StreamOut(std::ostream &s) {}
virtual void StreamIn(std::istream &s) {}
private:
float *m_Data;
bool m_DataReady;
};

#endif

+ 11
- 13
SpiralSound/Plugins/ScopePlugin/ScopePluginGUI.C View File

@@ -43,6 +43,8 @@ void ScopeWidget::draw() {
int ho=h()/2;
fl_color (color());
fl_rectf (x(), y(), w(), h());
fl_color (m_MarkColour);
fl_line (x(), y()+ho, x()+w(), y()+ho);
if (!m_Data) return;
fl_push_clip (x(), y(), w(), h());
float Value=0, NextValue=0;
@@ -63,9 +65,10 @@ ScopePluginGUI::ScopePluginGUI(int w, int h, SpiralPlugin *o, ChannelHandler *ch
SpiralPluginGUI(w,h,o,ch),
m_Bypass(false)
{
m_Scope = new ScopeWidget(5, 20, 210, 85, "Scope", Info->BUFSIZE);
m_BufSize = Info->BUFSIZE;
m_Scope = new ScopeWidget(5, 20, 210, 85, "Scope", m_BufSize);
m_Scope->color (Info->SCOPE_BG_COLOUR);
m_Scope->SetWaveColour (Info->SCOPE_FG_COLOUR);
m_Scope->SetColours (Info->SCOPE_MRK_COLOUR, Info->SCOPE_FG_COLOUR);
m_Attenuation = new Fl_Knob (220, 10, 40, 40, "Attenuation");
m_Attenuation->color(Info->GUI_COLOUR);
m_Attenuation->type(Fl_Knob::LINELIN);
@@ -91,12 +94,6 @@ m_Bypass(false)
end();
}

void ScopePluginGUI::Display(const float *data)
{
//m_Scope->m_Data=data;
if (!m_Bypass) m_Scope->redraw();
}

void ScopePluginGUI::Update()
{
redraw();
@@ -104,11 +101,12 @@ void ScopePluginGUI::Update()

void ScopePluginGUI::draw()
{
SpiralGUIType::draw();
const float *data;
//cerr<<"getting and drawing..."<<endl;
m_GUICH->GetData("AudioData",(void*)m_Scope->m_Data);
Display(data);
SpiralGUIType::draw();
const float *data;
//cerr<<"getting and drawing..."<<endl;
if (m_GUICH->GetBool ("DataReady")) m_GUICH->GetData ("AudioData", (void*)m_Scope->m_Data);
else memset ((void*)m_Scope->m_Data, 0, m_BufSize * sizeof (float));
if (!m_Bypass) m_Scope->redraw();
}

void ScopePluginGUI::UpdateValues(SpiralPlugin* o)


+ 6
- 6
SpiralSound/Plugins/ScopePlugin/ScopePluginGUI.h View File

@@ -16,15 +16,15 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/

#ifndef SCOPEGUI
#define SCOPEGUI

#include <FL/Fl.H>
#include <FL/Fl_Button.H>
#include "../Widgets/Fl_Knob.H"
#include "ScopePlugin.h"
#include "../SpiralPluginGUI.h"

#ifndef SCOPEGUI
#define SCOPEGUI

class ScopeWidget : public Fl_Widget
{
public:
@@ -32,14 +32,14 @@ class ScopeWidget : public Fl_Widget
~ScopeWidget();
void draw();
//void SetNumChannels (int s) { m_Channels=s; }
void SetWaveColour (unsigned c) { m_WaveColour=(Fl_Color)c; }
void SetColours (unsigned m, unsigned f) { m_MarkColour=(Fl_Color)m; m_WaveColour=(Fl_Color)f; }
void SetAttenuation (float c) { m_Attenuation=c; }
void SetTimeBase (float c) { m_TimeBase=c; }
const float *m_Data;
//int m_Channels;
private:
//int m_GUIColour, m_GUIBGColour;
Fl_Color m_WaveColour;
Fl_Color m_MarkColour, m_WaveColour;
float m_Attenuation, m_TimeBase;
int m_Bufsize;
};
@@ -52,11 +52,11 @@ class ScopePluginGUI : public SpiralPluginGUI
virtual void UpdateValues (SpiralPlugin* o);
virtual void Update();
virtual void draw();
void Display (const float *data);
protected:
const std::string GetHelpText (const std::string &loc);
private:
bool m_Bypass;
int m_BufSize;
// Fl_Button *Bypass;
ScopeWidget *m_Scope;
Fl_Knob *m_Attenuation, *m_TimeBase;


Loading…
Cancel
Save