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