Browse Source

Just fixing a little mistake.

master
thesloth 22 years ago
parent
commit
f04825a2ec
4 changed files with 41 additions and 159 deletions
  1. +9
    -36
      SpiralSound/Plugins/StreamPlugin/StreamPlugin.C
  2. +0
    -7
      SpiralSound/Plugins/StreamPlugin/StreamPlugin.h
  3. +27
    -85
      SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.C
  4. +5
    -31
      SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.h

+ 9
- 36
SpiralSound/Plugins/StreamPlugin/StreamPlugin.C View File

@@ -70,17 +70,10 @@ m_Mode(PLAYM)
m_StreamDesc.TriggerUp = true;
m_StreamDesc.SampleRate = 44100;
m_StreamDesc.Stereo = false;

m_AudioCH->Register("Volume",&m_StreamDesc.Volume);
m_AudioCH->Register("Pitch",&m_StreamDesc.PitchMod,ChannelHandler::INPUT);
m_AudioCH->RegisterData("FileName",ChannelHandler::INPUT,&m_FileNameArg,sizeof(m_FileNameArg));
m_AudioCH->Register("Time",&m_TimeArg);
m_AudioCH->Register("TimeOut",&m_TimeOut,ChannelHandler::OUTPUT);
}

StreamPlugin::~StreamPlugin()
{
cerr << "I'm deleted" << endl;
}

PluginInfo &StreamPlugin::Initialise(const HostInfo *Host)
@@ -91,9 +84,11 @@ PluginInfo &StreamPlugin::Initialise(const HostInfo *Host)

SpiralGUIType *StreamPlugin::CreateGUI()
{
return new StreamPluginGUI(m_PluginInfo.Width,
m_PluginInfo.Height,
this,m_AudioCH,m_HostInfo);
m_GUI = new StreamPluginGUI(m_PluginInfo.Width,
m_PluginInfo.Height,
this,m_HostInfo);
m_GUI->hide();
return m_GUI;
}

void StreamPlugin::Execute()
@@ -142,29 +137,8 @@ void StreamPlugin::Execute()
m_GlobalPos+=m_StreamDesc.PitchMod+CVPitch;
}
//if (((StreamPluginGUI*)m_GUI)->visible())
// ((StreamPluginGUI*)m_GUI)->SetTime(GetTime());
//Joe must fix this.
m_TimeOut=GetTime();
}
}

void StreamPlugin::ExecuteCommands()
{
if (m_AudioCH->IsCommandWaiting())
{
switch(m_AudioCH->GetCommand())
{
case (LOAD) : OpenStream(m_FileNameArg); break;
case (RESTART) : Restart(); break;
case (STOP) : Stop(); break;
case (PLAY) : Play(); break;
case (HALF) : m_StreamDesc.PitchMod/=2; break;
case (RESET) : m_StreamDesc.PitchMod=1; break;
case (DOUBLE) : m_StreamDesc.PitchMod*=2; break;
case (NUDGE) : Nudge(); break;
case (SET_TIME) : SetTime(m_TimeArg); break;
}
if (((StreamPluginGUI*)m_GUI)->visible())
((StreamPluginGUI*)m_GUI)->SetTime(GetTime());
}
}

@@ -221,10 +195,9 @@ void StreamPlugin::OpenStream(const string &Name)
if (m_StreamDesc.Stereo)
{
m_StreamDesc.Pitch*=2;
//((StreamPluginGUI*)m_GUI)->SetMaxTime(GetLength());
((StreamPluginGUI*)m_GUI)->SetMaxTime(GetLength());
}
//else ((StreamPluginGUI*)m_GUI)->SetMaxTime(GetLength()/2);
//Joe this must use the chanel handler
else ((StreamPluginGUI*)m_GUI)->SetMaxTime(GetLength()/2);
}



+ 0
- 7
SpiralSound/Plugins/StreamPlugin/StreamPlugin.h View File

@@ -44,15 +44,12 @@ class StreamPlugin : public SpiralPlugin
public:
enum Mode{PLAYM,STOPM};

enum GUICommands{LOAD,RESTART,STOP,PLAY,HALF,RESET,DOUBLE,NUDGE,SET_TIME};

StreamPlugin();
virtual ~StreamPlugin();
virtual PluginInfo &Initialise(const HostInfo *Host);
virtual SpiralGUIType *CreateGUI();
virtual void Execute();
virtual void ExecuteCommands();
virtual void StreamOut(ostream &s);
virtual void StreamIn(istream &s);
@@ -88,10 +85,6 @@ private:
float m_GlobalPos;
float m_Pitch;
Mode m_Mode;

char m_FileNameArg[256];
float m_TimeArg;
float m_TimeOut;
};

#endif

+ 27
- 85
SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.C View File

@@ -26,21 +26,15 @@ static const int GUIBG_COLOUR = 144;
static const int GUIBG2_COLOUR = 145;
char PitchLabel[256];

bool StreamPluginGUI::TimerSet=false;
vector<StreamPluginGUI*> StreamPluginGUI::PluginList;

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

StreamPluginGUI::StreamPluginGUI(int w, int h,StreamPlugin *o,ChannelHandler *ch,const HostInfo *Info) :
SpiralPluginGUI(w,h,o,ch)
StreamPluginGUI::StreamPluginGUI(int w, int h,StreamPlugin *o,const HostInfo *Info) :
SpiralPluginGUI(w,h,o)
{
StartTimer(this);
m_Plugin=o;
int Width=20;
int Height=100;
//What are Width and Height for.

m_PitchValue=1.0f;
m_Load = new Fl_Button(2, 130, 30, 30, "Load");
m_Load->labelsize(9);
@@ -164,17 +158,8 @@ SpiralPluginGUI(w,h,o,ch)
end();
}

StreamPluginGUI::~StreamPluginGUI()
{
cerr << "~StreamPluginGUI" << endl;
StopTimer(this);
}

void StreamPluginGUI::SetTime()
void StreamPluginGUI::SetTime(float t)
{
cerr << "foo" << endl;
float t=m_GUICH->GetFloat("TimeOut");

m_Pos->value(t);

m_Display[5]->value((int)(t*100)%10);
@@ -189,13 +174,11 @@ void StreamPluginGUI::SetTime()
}


void StreamPluginGUI::UpdateValues(SpiralPlugin *o)
void StreamPluginGUI::UpdateValues()
{
StreamPlugin *Plugin = (StreamPlugin*)o;

m_Volume->value(Plugin->GetVolume());
m_Pitch->value(Plugin->GetPitch()+10);
m_Loop->value(Plugin->GetLoop());
m_Volume->value(m_Plugin->GetVolume());
m_Pitch->value(m_Plugin->GetPitch()+10);
m_Loop->value(m_Plugin->GetLoop());
}
inline void StreamPluginGUI::cb_Load_i(Fl_Button* o, void* v)
@@ -204,36 +187,33 @@ inline void StreamPluginGUI::cb_Load_i(Fl_Button* o, void* v)
if (fn && fn!='\0')
{
strcpy(m_TextBuf,fn);
m_GUICH->Set("FileName",m_TextBuf);
m_GUICH->SetCommand(StreamPlugin::LOAD);
m_Plugin->OpenStream(fn);
}
}
void StreamPluginGUI::cb_Load(Fl_Button* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_Load_i(o,v);}

inline void StreamPluginGUI::cb_Volume_i(Fl_Knob* o, void* v)
{ m_GUICH->Set("Volume",(float)o->value()); }
{ m_Plugin->SetVolume(o->value()); }
void StreamPluginGUI::cb_Volume(Fl_Knob* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_Volume_i(o,v);}

inline void StreamPluginGUI::cb_Pitch_i(Fl_Slider* o, void* v)
{
m_GUICH->Set("Pitch",(float)o->value()-10);
m_Plugin->SetPitch(o->value()-10);
sprintf(PitchLabel,"%1.3f ",o->value()-10);
m_Pitch->label(PitchLabel);
m_PitchValue=o->value()-10;
}
void StreamPluginGUI::cb_Pitch(Fl_Slider* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_Pitch_i(o,v);}

inline void StreamPluginGUI::cb_Loop_i(Fl_Button* o, void* v) //Why is this function named so.
inline void StreamPluginGUI::cb_Loop_i(Fl_Button* o, void* v)
{
m_PitchValue*=2.0f;
m_GUICH->SetCommand(StreamPlugin::DOUBLE);
sprintf(PitchLabel,"%1.3f ",m_PitchValue);
float p=m_Plugin->GetPitch()*2;
m_Plugin->SetPitch(p);
sprintf(PitchLabel,"%1.3f ",p);
m_Pitch->label(PitchLabel);
m_Pitch->value(m_PitchValue+10);
m_Pitch->value(p+10);
redraw();
}
void StreamPluginGUI::cb_Loop(Fl_Button* o, void* v)
@@ -241,38 +221,37 @@ void StreamPluginGUI::cb_Loop(Fl_Button* o, void* v)

inline void StreamPluginGUI::cb_Div_i(Fl_Button* o, void* v)
{
m_PitchValue/=2.0f;
m_GUICH->SetCommand(StreamPlugin::HALF);
sprintf(PitchLabel,"%1.3f ",m_PitchValue);
float p=m_Plugin->GetPitch()/2.0f;
m_Plugin->SetPitch(p);
sprintf(PitchLabel,"%1.3f ",p);
m_Pitch->label(PitchLabel);
m_Pitch->value(m_PitchValue+10);
m_Pitch->value(p+10);
redraw();
}
void StreamPluginGUI::cb_Div(Fl_Button* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_Div_i(o,v);}

inline void StreamPluginGUI::cb_ToStart_i(Fl_Button* o, void* v)
{ m_GUICH->SetCommand(StreamPlugin::RESTART); }
{ m_Plugin->Restart(); }
void StreamPluginGUI::cb_ToStart(Fl_Button* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_ToStart_i(o,v);}

inline void StreamPluginGUI::cb_Stop_i(Fl_Button* o, void* v)
{ m_GUICH->SetCommand(StreamPlugin::STOP); }
{ m_Plugin->Stop(); }
void StreamPluginGUI::cb_Stop(Fl_Button* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_Stop_i(o,v);}

inline void StreamPluginGUI::cb_Play_i(Fl_Button* o, void* v)
{ m_GUICH->SetCommand(StreamPlugin::PLAY); }
{ m_Plugin->Play(); }
void StreamPluginGUI::cb_Play(Fl_Button* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_Play_i(o,v);}

inline void StreamPluginGUI::cb_Reset_i(Fl_Button* o, void* v)
{
m_GUICH->SetCommand(StreamPlugin::RESET);
m_Plugin->SetPitch(1);
sprintf(PitchLabel,"%1.3f ",1.0);
m_Pitch->label(PitchLabel);
m_Pitch->value(11);
m_PitchValue=1.0f;
redraw();
}
void StreamPluginGUI::cb_Reset(Fl_Button* o, void* v)
@@ -280,50 +259,13 @@ void StreamPluginGUI::cb_Reset(Fl_Button* o, void* v)

inline void StreamPluginGUI::cb_Nudge_i(Fl_Button* o, void* v)
{
m_GUICH->SetCommand(StreamPlugin::NUDGE);
m_Plugin->Nudge();
}
void StreamPluginGUI::cb_Nudge(Fl_Button* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_Nudge_i(o,v);}

inline void StreamPluginGUI::cb_Pos_i(Fl_Slider* o, void* v)
{
m_GUICH->Set("Time",(float)o->value());
m_GUICH->SetCommand(StreamPlugin::SET_TIME);
}
{ m_Plugin->SetTime(o->value()); }
void StreamPluginGUI::cb_Pos(Fl_Slider* o, void* v)
{ ((StreamPluginGUI*)(o->parent()))->cb_Pos_i(o,v);}

//The timer stuff

#define TIME_OUT_DURATION 0.01
//This is temparary, should use a variable, and let it be set from the command line ore something.

void StreamPluginGUI::StartTimer(StreamPluginGUI* p)
{
if (!TimerSet)
{
Fl::add_timeout(TIME_OUT_DURATION,&StreamPluginGUI::TimerCallBack);
TimerSet=True;
}
PluginList.push_back(p);
}

void StreamPluginGUI::StopTimer(StreamPluginGUI* p)
{
cerr << "StopTimer" << endl;
for (vector<StreamPluginGUI*>::iterator i=PluginList.begin();i!=PluginList.end();i++)
if ((*i)==p)
i=PluginList.erase(i);
}

//If Spiral synth modular unloaded the .so file this is in, the timeout
//would probably cause a problem
void StreamPluginGUI::TimerCallBack(void* x)
{
/*for(vector<const StreamPluginGUI*>::iterator i=PluginList.begin();
i!=PluginList.end();i++)
{*/
for (vector<StreamPluginGUI*>::iterator i=PluginList.begin();i!=PluginList.end();i++)
(*i)->SetTime();
Fl::add_timeout(TIME_OUT_DURATION,&StreamPluginGUI::TimerCallBack);
}

+ 5
- 31
SpiralSound/Plugins/StreamPlugin/StreamPluginGUI.h View File

@@ -32,40 +32,18 @@
#ifndef MixerGUI
#define MixerGUI

class StreamPluginGUI;

/*struct Compare_thingy
{
bool operator() (const StreamPluginGUI* s1,const StreamPluginGUI* s2) const
{
return s1<s2;
}
};*/

class StreamPluginGUI : public SpiralPluginGUI
{
public:
StreamPluginGUI(int w, int h, StreamPlugin *o,ChannelHandler *ch,const HostInfo *Info);
virtual ~StreamPluginGUI();
StreamPluginGUI(int w, int h, StreamPlugin *o,const HostInfo *Info);
virtual void UpdateValues(SpiralPlugin *o);
void SetTime();
virtual void UpdateValues();
virtual SpiralPlugin* GetPlugin() { return m_Plugin; }
void SetTime(float t);
void SetMaxTime(float t) { m_Pos->maximum(t); }

//Stuff for the timer
static bool TimerSet;
/*static struct Compare_thingy
{
bool operator() (const StreamPluginGUI* s1,const StreamPluginGUI* s2) const
{
return s1<s2;
}
};*/
//static set<const StreamPluginGUI*,Compare_thingy> PluginList;
static vector<StreamPluginGUI*> PluginList;
static void StartTimer(StreamPluginGUI* p);
static void StopTimer(StreamPluginGUI* p);
static void TimerCallBack(void* x);
StreamPlugin *m_Plugin;
private:
Fl_Button* m_Load;
@@ -84,10 +62,6 @@ private:
Fl_SevenSeg* m_Display[6];
Fl_Slider* m_Pos;

char m_TextBuf[256];

float m_PitchValue;
//// Callbacks ////
inline void cb_Load_i(Fl_Button* o, void* v);


Loading…
Cancel
Save