Browse Source

Make use no-self-connect logic for disconnecting ports

tags/v1.9.10
Nedko Arnaudov 16 years ago
parent
commit
fdde683fd4
2 changed files with 36 additions and 3 deletions
  1. +34
    -3
      common/JackLibClient.cpp
  2. +2
    -0
      common/JackLibClient.h

+ 34
- 3
common/JackLibClient.cpp View File

@@ -168,7 +168,8 @@ JackClientControl* JackLibClient::GetClientControl() const
return fClientControl;
}

int JackLibClient::PortConnect(const char* src, const char* dst)
int
JackLibClient::NoSelfConnectCheck(const char* src, const char* dst)
{
// this check is to prevent apps to self connect to other apps
// TODO: make this work with multiple clients per app
@@ -180,7 +181,7 @@ int JackLibClient::PortConnect(const char* src, const char* dst)

client_name_ptr = GetClientControl()->fName;

//jack_info("Client '%s' connecting '%s' to '%s'", client_name_ptr, src, dst);
//jack_info("Client '%s' (dis)connecting '%s' to '%s'", client_name_ptr, src, dst);

sep_ptr = strchr(src, ':');
if (sep_ptr == NULL)
@@ -215,7 +216,37 @@ int JackLibClient::PortConnect(const char* src, const char* dst)
}
}

return JackClient::PortConnect(src, dst);
return 1;
}

int JackLibClient::PortConnect(const char* src, const char* dst)
{
int ret;

//jack_info("Client connecting '%s' to '%s'");

ret = NoSelfConnectCheck(src, dst);
if (ret > 0)
{
return JackClient::PortConnect(src, dst);
}

return ret;
}

int JackLibClient::PortDisconnect(const char* src, const char* dst)
{
int ret;

//jack_info("Client disconnecting '%s' to '%s'");

ret = NoSelfConnectCheck(src, dst);
if (ret > 0)
{
return JackClient::PortDisconnect(src, dst);
}

return ret;
}

} // end of namespace


+ 2
- 0
common/JackLibClient.h View File

@@ -52,7 +52,9 @@ class JackLibClient : public JackClient
JackEngineControl* GetEngineControl() const;
JackClientControl* GetClientControl() const;

int NoSelfConnectCheck(const char* src, const char* dst);
virtual int PortConnect(const char* src, const char* dst);
virtual int PortDisconnect(const char* src, const char* dst);
};




Loading…
Cancel
Save