Browse Source

fix ClearUp and add Kill() override to JackPlugin

master
aj_genius 21 years ago
parent
commit
844af13fc6
3 changed files with 27 additions and 1 deletions
  1. +20
    -0
      SpiralSound/Plugins/JackPlugin/JackPlugin.C
  2. +2
    -0
      SpiralSound/Plugins/JackPlugin/JackPlugin.h
  3. +5
    -1
      SpiralSynthModular.C

+ 20
- 0
SpiralSound/Plugins/JackPlugin/JackPlugin.C View File

@@ -450,9 +450,27 @@ m_Connected(false)

JackPlugin::~JackPlugin()
{
if (m_JackClient)
{
m_JackClient->Detach();
delete m_JackClient;
m_JackClient=NULL;
}
}

bool JackPlugin::Kill()
{
m_IsDead=true;

UpdatePluginInfoWithHost();
RemoveAllInputs ();
RemoveAllOutputs ();
UpdatePluginInfoWithHost();

m_JackClient->Detach();
delete m_JackClient;
m_JackClient=NULL;
return true;
}

PluginInfo &JackPlugin::Initialise(const HostInfo *Host)
@@ -519,6 +537,8 @@ void JackPlugin::Execute()

void JackPlugin::ExecuteCommands()
{
if (m_IsDead) return;
bool commandwaiting = m_AudioCH->IsCommandWaiting();
int command = (commandwaiting)?(int)m_AudioCH->GetCommand():0;



+ 2
- 0
SpiralSound/Plugins/JackPlugin/JackPlugin.h View File

@@ -126,6 +126,8 @@ public:
virtual void Execute();
virtual void ExecuteCommands();

virtual bool Kill();
virtual void StreamOut(std::ostream &s);
virtual void StreamIn(std::istream &s);


+ 5
- 1
SpiralSynthModular.C View File

@@ -115,7 +115,11 @@ void SynthModular::ClearUp()
for(map<int,DeviceWin*>::iterator i=m_DeviceWinMap.begin();
i!=m_DeviceWinMap.end(); i++)
{
if (i->second->m_Device->Kill());
//Stop processing of audio if any
if (i->second->m_Device)
{
if (i->second->m_Device->Kill());
}
i->second->m_DeviceGUI->Clear();

if (i->second->m_DeviceGUI->GetPluginWindow())


Loading…
Cancel
Save