diff --git a/SpiralSound/Plugins/StreamPlugin/StreamPlugin.C b/SpiralSound/Plugins/StreamPlugin/StreamPlugin.C index 6432228..6e08f46 100644 --- a/SpiralSound/Plugins/StreamPlugin/StreamPlugin.C +++ b/SpiralSound/Plugins/StreamPlugin/StreamPlugin.C @@ -104,6 +104,7 @@ void StreamPlugin::Reset() m_Pos = 0; } + void StreamPlugin::Execute() { if (m_File.IsOpen()) { for (int n=0; nBUFSIZE; n++) { @@ -151,7 +152,6 @@ void StreamPlugin::Execute() { m_File.LoadChunk (m_SampleSize, m_SampleL, m_SampleR); } - // finished trigger if (FinTrig) SetOutput (2, n, 1); else SetOutput (2, n, 0); @@ -163,7 +163,8 @@ void StreamPlugin::Execute() { SetOutput (3, n, 1); m_Pos += m_GUIArgs.PitchMod + CVPitch; m_GlobalPos += m_GUIArgs.PitchMod + CVPitch; - SetOutput (4, n, m_GlobalPos / m_File.GetSize()); + float plop = m_GlobalPos / (float)m_File.GetSize(); + SetOutput (4, n, plop); } else { SetOutput (0, n, 0); @@ -216,7 +217,7 @@ void StreamPlugin::OpenStream (void) { if (m_File.GetSize() < 256) m_SampleSize = m_File.GetSize(); else - m_SampleSize = 256; + m_SampleSize = 256; m_SampleL.Allocate (m_SampleSize); m_SampleR.Allocate (m_SampleSize); diff --git a/SpiralSound/Plugins/StreamPlugin/StreamPlugin.h b/SpiralSound/Plugins/StreamPlugin/StreamPlugin.h index 0b7cec0..a232242 100644 --- a/SpiralSound/Plugins/StreamPlugin/StreamPlugin.h +++ b/SpiralSound/Plugins/StreamPlugin/StreamPlugin.h @@ -16,13 +16,13 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef StreamPLUGIN +#define StreamPLUGIN + #include "../SpiralPlugin.h" #include "../../RiffWav.h" #include -#ifndef StreamPLUGIN -#define StreamPLUGIN - class StreamPlugin : public SpiralPlugin { public: StreamPlugin(); @@ -31,7 +31,7 @@ class StreamPlugin : public SpiralPlugin { virtual SpiralGUIType *CreateGUI(); virtual void Execute(); virtual void Reset(); - + virtual void ExecuteCommands(); virtual void StreamOut (std::ostream &s); virtual void StreamIn (std::istream &s); diff --git a/SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.C b/SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.C index f048cc9..e6daff8 100644 --- a/SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.C +++ b/SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.C @@ -40,6 +40,7 @@ m_PitchValue (1.0f) if (dis > 0 && dis % 2 == 0) m_Display[dis] -> dp (colon); add (m_Display[dis]); } + UpdateTime (0.0); // volume control m_Volume = new Fl_Knob (180, 10, 50, 50, "Volume"); m_Volume->color (Info->GUI_COLOUR); @@ -149,14 +150,10 @@ m_PitchValue (1.0f) UpdatePitch (true, false, false); } -StreamPluginGUI::~StreamPluginGUI () { +StreamPluginGUI::~StreamPluginGUI() { } -// Update signalled from plugin - -void StreamPluginGUI::Update() { - float t=m_GUICH->GetFloat ("TimeOut"); - m_Pos->value (t); +void StreamPluginGUI::UpdateTime (float t) { m_Display[5]->value ((int)(t*100) % 10); m_Display[4]->value ((int)(t*10) % 10); m_Display[3]->value ((int)t % 10); @@ -164,6 +161,16 @@ void StreamPluginGUI::Update() { m_Display[1]->value ((int)(t/60) % 10); m_Display[0]->value ((int)(t/600) % 10); redraw(); +} + +// Update signalled from plugin + +void StreamPluginGUI::Update() { + float t=m_GUICH->GetFloat ("TimeOut"); + if (t != m_Pos->value()) { + m_Pos->value (t); + UpdateTime(t); + } SetMaxTime (m_GUICH->GetFloat ("MaxTime")); if (m_Playing != m_GUICH->GetBool ("Playing")) UpdatePlayStatus (); m_GUICH->GetData ("EchoFileName", (void*)m_TextBuf); @@ -183,6 +190,7 @@ void StreamPluginGUI::UpdateValues (SpiralPlugin *o) { StreamPlugin *Plugin = (StreamPlugin*)o; m_Volume->value (Plugin->GetVolume()); m_PitchValue = Plugin->GetPitch(); + UpdateTime (0.0); UpdatePitch (true, true, false); } diff --git a/SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.h b/SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.h index 5cdd8e8..997d68d 100644 --- a/SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.h +++ b/SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.h @@ -44,6 +44,7 @@ class StreamPluginGUI : public SpiralPluginGUI { void SetMaxTime (float t) { m_Pos->maximum(t); } void UpdatePitch (bool UpdateIt = true, bool DrawIt = true, bool SendIt = true); void UpdatePlayStatus (void); + void UpdateTime (float t); // Widgets Fl_SevenSeg *m_Display[6]; Fl_Knob *m_Volume;