Browse Source

make Process and InstanceCount variables static class variables

add comment on InstanceCount
master
aj_genius 21 years ago
parent
commit
50aa6131d7
2 changed files with 25 additions and 15 deletions
  1. +20
    -15
      SpiralSound/Plugins/JackPlugin/JackPlugin.C
  2. +5
    -0
      SpiralSound/Plugins/JackPlugin/JackPlugin.h

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

@@ -25,8 +25,9 @@

using namespace std;

static int JackInstances = 0;
static int JackProcessInstance = -1;
int JackClient::JackProcessInstanceID = -1;
int JackPlugin::JackInstanceCount = 0;

/////////////////////////////////////////////////////////////////////////////////////////////
inline void JackClient::JackProcess_i(jack_nframes_t nframes)
{
@@ -60,10 +61,10 @@ inline void JackClient::JackProcess_i(jack_nframes_t nframes)
if (RunCallback&&RunContext)
{
if (JackProcessInstance==-1)
JackProcessInstance = m_JackInstanceID;
if (JackProcessInstanceID==-1)
JackProcessInstanceID = m_JackInstanceID;

if (JackProcessInstance==m_JackInstanceID)
if (JackProcessInstanceID==m_JackInstanceID)
RunCallback(RunContext,true);
}
}
@@ -83,8 +84,8 @@ inline void JackClient::JackShutdown_i()

SetAttached(false);

if (JackProcessInstance==m_JackInstanceID)
JackProcessInstance = -1;
if (JackProcessInstanceID==m_JackInstanceID)
JackProcessInstanceID = -1;
// tells ssm to go back to non callback mode
RunCallback(RunContext, false);
@@ -228,8 +229,8 @@ void JackClient::Detach()
m_Attached=false;
}
if (JackProcessInstance==m_JackInstanceID)
JackProcessInstance = -1;
if (JackProcessInstanceID==m_JackInstanceID)
JackProcessInstanceID = -1;

// tells ssm to go back to non callback mode
RunCallback(RunContext, false);
@@ -275,7 +276,7 @@ void JackClient::ConnectInput(int n, const string &JackPort)
{
if (!IsAttached()) return;

// cerr<<"JackClient::ConnectInput: connecting source ["<<JackPort<<"] to dest ["<<m_InputPortMap[n]->Name<<"]"<<endl;
cerr<<"JackClient::ConnectInput: connecting source ["<<JackPort<<"] to dest ["<<m_InputPortMap[n]->Name<<"]"<<endl;

if (m_InputPortMap[n]->ConnectedTo!="")
{
@@ -298,7 +299,7 @@ void JackClient::ConnectInput(int n, const string &JackPort)
void JackClient::ConnectOutput(int n, const string &JackPort)
{
if (!IsAttached()) return;
// cerr<<"JackClient::ConnectOutput: connecting source ["<<m_OutputPortMap[n]->Name<<"] to dest ["<<JackPort<<"]"<<endl;
cerr<<"JackClient::ConnectOutput: connecting source ["<<m_OutputPortMap[n]->Name<<"] to dest ["<<JackPort<<"]"<<endl;

if (m_OutputPortMap[n]->ConnectedTo!="")
{
@@ -319,7 +320,7 @@ void JackClient::ConnectOutput(int n, const string &JackPort)
void JackClient::DisconnectInput(int n)
{
if (!IsAttached()) return;
// cerr<<"JackClient::DisconnectInput: Disconnecting input "<<n<<endl;
cerr<<"JackClient::DisconnectInput: Disconnecting input "<<n<<endl;

if (m_InputPortMap[n]->ConnectedTo!="")
{
@@ -336,7 +337,7 @@ void JackClient::DisconnectInput(int n)
void JackClient::DisconnectOutput(int n)
{
if (!IsAttached()) return;
// cerr<<"JackClient::DisconnectInput: Disconnecting input "<<n<<endl;
cerr<<"JackClient::DisconnectInput: Disconnecting input "<<n<<endl;

if (m_OutputPortMap[n]->ConnectedTo!="")
{
@@ -393,8 +394,12 @@ m_Connected(false)
{
m_JackClient=new JackClient;

m_JackInstanceID = JackInstances ;
JackInstances++;
//clunky way to ensure unique JackID - JackInstanceCount is never dec
//so new JackInstances per session always get a higher number even on
//reload and new Patch
m_JackInstanceID = JackInstanceCount;
JackInstanceCount++;

m_JackClient->SetJackInstanceID(m_JackInstanceID);


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

@@ -107,6 +107,8 @@ private:
int m_JackOutputCount;
int m_JackInstanceID;

static int JackProcessInstanceID;

void(*RunCallback)(void*, bool m);
void *RunContext;
};
@@ -162,6 +164,9 @@ private:
bool m_Connected;
JackClient *m_JackClient;
int m_JackInstanceID;

//clunky work-around for unique ID
static int JackInstanceCount;
};

#endif

Loading…
Cancel
Save