Browse Source

Fix NetMaster close()

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2777 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
moret 17 years ago
parent
commit
ae9ec12561
4 changed files with 22 additions and 14 deletions
  1. +4
    -7
      common/JackNetInterface.cpp
  2. +6
    -3
      common/JackNetInterface.h
  3. +11
    -3
      common/JackNetManager.cpp
  4. +1
    -1
      common/JackNetManager.h

+ 4
- 7
common/JackNetInterface.cpp View File

@@ -34,24 +34,21 @@ namespace Jack
{ {
jack_log ( "JackNetInterface::JackNetInterface ip = %s port = %d", ip, port ); jack_log ( "JackNetInterface::JackNetInterface ip = %s port = %d", ip, port );


fMulticastIP = new char[strlen ( ip ) + 1];
strcpy ( fMulticastIP, ip );
fMulticastIP = strdup ( ip );
} }


JackNetInterface::JackNetInterface ( session_params_t& params, JackNetSocket& socket ) : fSocket ( socket )
JackNetInterface::JackNetInterface ( session_params_t& params, JackNetSocket& socket, const char* multicast_ip ) : fSocket ( socket )
{ {
jack_log ( "JackNetInterface::JackNetInterface ID = %d", params.fID ); jack_log ( "JackNetInterface::JackNetInterface ID = %d", params.fID );


fParams = params; fParams = params;
fMulticastIP = new char[strlen ( fSocket.GetSendIP() ) + 1];
strcpy ( fMulticastIP, fSocket.GetSendIP() );
fMulticastIP = strdup ( multicast_ip );
} }


JackNetInterface::~JackNetInterface() JackNetInterface::~JackNetInterface()
{ {
jack_log ( "JackNetInterface::~JackNetInterface" ); jack_log ( "JackNetInterface::~JackNetInterface" );
fSocket.Close(); fSocket.Close();
SocketAPIEnd();
delete[] fTxBuffer; delete[] fTxBuffer;
delete[] fRxBuffer; delete[] fRxBuffer;
delete[] fMulticastIP; delete[] fMulticastIP;
@@ -479,7 +476,7 @@ namespace Jack


void JackNetMasterInterface::Exit() void JackNetMasterInterface::Exit()
{ {
jack_log ( "JackNetMaster::Exit, ID %u", fParams.fID );
jack_log ( "JackNetMasterInterface::Exit, ID %u", fParams.fID );


//stop process //stop process
fRunning = false; fRunning = false;


+ 6
- 3
common/JackNetInterface.h View File

@@ -74,7 +74,7 @@ namespace Jack
JackNetInterface() JackNetInterface()
{} {}
JackNetInterface ( const char* ip, int port ); JackNetInterface ( const char* ip, int port );
JackNetInterface ( session_params_t& params, JackNetSocket& socket );
JackNetInterface ( session_params_t& params, JackNetSocket& socket, const char* multicast_ip );


public: public:
virtual ~JackNetInterface(); virtual ~JackNetInterface();
@@ -105,7 +105,9 @@ namespace Jack
JackNetSlaveInterface ( const char* ip, int port ) : JackNetInterface ( ip, port ) JackNetSlaveInterface ( const char* ip, int port ) : JackNetInterface ( ip, port )
{} {}
~JackNetSlaveInterface() ~JackNetSlaveInterface()
{}
{
SocketAPIEnd();
}
}; };


/** /**
@@ -131,7 +133,8 @@ namespace Jack
public: public:
JackNetMasterInterface() : fRunning ( false ) JackNetMasterInterface() : fRunning ( false )
{} {}
JackNetMasterInterface ( session_params_t& params, JackNetSocket& socket ) : JackNetInterface ( params, socket )
JackNetMasterInterface ( session_params_t& params, JackNetSocket& socket, const char* multicast_ip )
: JackNetInterface ( params, socket, multicast_ip )
{} {}
~JackNetMasterInterface() ~JackNetMasterInterface()
{} {}


+ 11
- 3
common/JackNetManager.cpp View File

@@ -32,10 +32,11 @@ namespace Jack
{ {
//JackNetMaster****************************************************************************************************** //JackNetMaster******************************************************************************************************


JackNetMaster::JackNetMaster ( JackNetSocket& socket, session_params_t& params )
: JackNetMasterInterface ( params, socket )
JackNetMaster::JackNetMaster ( JackNetSocket& socket, session_params_t& params, const char* multicast_ip )
: JackNetMasterInterface ( params, socket, multicast_ip )
{ {
jack_log ( "JackNetMaster::JackNetMaster" ); jack_log ( "JackNetMaster::JackNetMaster" );

//settings //settings
fClientName = const_cast<char*> ( fParams.fName ); fClientName = const_cast<char*> ( fParams.fName );
fJackClient = NULL; fJackClient = NULL;
@@ -87,6 +88,7 @@ namespace Jack
JackNetMaster::~JackNetMaster() JackNetMaster::~JackNetMaster()
{ {
jack_log ( "JackNetMaster::~JackNetMaster, ID %u.", fParams.fID ); jack_log ( "JackNetMaster::~JackNetMaster, ID %u.", fParams.fID );

if ( fJackClient ) if ( fJackClient )
{ {
jack_deactivate ( fJackClient ); jack_deactivate ( fJackClient );
@@ -194,6 +196,7 @@ namespace Jack
void JackNetMaster::FreePorts() void JackNetMaster::FreePorts()
{ {
jack_log ( "JackNetMaster::FreePorts, ID %u", fParams.fID ); jack_log ( "JackNetMaster::FreePorts, ID %u", fParams.fID );

uint port_index; uint port_index;
for ( port_index = 0; port_index < fParams.fSendAudioChannels; port_index++ ) for ( port_index = 0; port_index < fParams.fSendAudioChannels; port_index++ )
if ( fAudioCapturePorts[port_index] ) if ( fAudioCapturePorts[port_index] )
@@ -299,6 +302,7 @@ namespace Jack
JackNetMasterManager::JackNetMasterManager ( jack_client_t* client, const JSList* params ) : fSocket() JackNetMasterManager::JackNetMasterManager ( jack_client_t* client, const JSList* params ) : fSocket()
{ {
jack_log ( "JackNetMasterManager::JackNetMasterManager" ); jack_log ( "JackNetMasterManager::JackNetMasterManager" );

fManagerClient = client; fManagerClient = client;
fManagerName = jack_get_client_name ( fManagerClient ); fManagerName = jack_get_client_name ( fManagerClient );
fMulticastIP = DEFAULT_MULTICAST_IP; fMulticastIP = DEFAULT_MULTICAST_IP;
@@ -460,6 +464,7 @@ namespace Jack
JackNetMaster* JackNetMasterManager::MasterInit ( session_params_t& params ) JackNetMaster* JackNetMasterManager::MasterInit ( session_params_t& params )
{ {
jack_log ( "JackNetMasterManager::MasterInit, Slave : %s", params.fName ); jack_log ( "JackNetMasterManager::MasterInit, Slave : %s", params.fName );

//settings //settings
fSocket.GetName ( params.fMasterNetName ); fSocket.GetName ( params.fMasterNetName );
params.fID = ++fGlobalID; params.fID = ++fGlobalID;
@@ -470,7 +475,7 @@ namespace Jack
SetSlaveName ( params ); SetSlaveName ( params );


//create a new master and add it to the list //create a new master and add it to the list
JackNetMaster* master = new JackNetMaster ( fSocket, params );
JackNetMaster* master = new JackNetMaster ( fSocket, params, fMulticastIP );
if ( master->Init() ) if ( master->Init() )
{ {
fMasterList.push_back ( master ); fMasterList.push_back ( master );
@@ -483,6 +488,7 @@ namespace Jack
void JackNetMasterManager::SetSlaveName ( session_params_t& params ) void JackNetMasterManager::SetSlaveName ( session_params_t& params )
{ {
jack_log ( "JackNetMasterManager::SetSlaveName" ); jack_log ( "JackNetMasterManager::SetSlaveName" );

master_list_it_t it; master_list_it_t it;
for ( it = fMasterList.begin(); it != fMasterList.end(); it++ ) for ( it = fMasterList.begin(); it != fMasterList.end(); it++ )
if ( strcmp ( ( *it )->fParams.fName, params.fName ) == 0 ) if ( strcmp ( ( *it )->fParams.fName, params.fName ) == 0 )
@@ -492,6 +498,7 @@ namespace Jack
master_list_it_t JackNetMasterManager::FindMaster ( uint32_t id ) master_list_it_t JackNetMasterManager::FindMaster ( uint32_t id )
{ {
jack_log ( "JackNetMasterManager::FindMaster, ID %u.", id ); jack_log ( "JackNetMasterManager::FindMaster, ID %u.", id );

master_list_it_t it; master_list_it_t it;
for ( it = fMasterList.begin(); it != fMasterList.end(); it++ ) for ( it = fMasterList.begin(); it != fMasterList.end(); it++ )
if ( ( *it )->fParams.fID == id ) if ( ( *it )->fParams.fID == id )
@@ -502,6 +509,7 @@ namespace Jack
int JackNetMasterManager::KillMaster ( session_params_t* params ) int JackNetMasterManager::KillMaster ( session_params_t* params )
{ {
jack_log ( "JackNetMasterManager::KillMaster, ID %u.", params->fID ); jack_log ( "JackNetMasterManager::KillMaster, ID %u.", params->fID );

master_list_it_t master = FindMaster ( params->fID ); master_list_it_t master = FindMaster ( params->fID );
if ( master != fMasterList.end() ) if ( master != fMasterList.end() )
{ {


+ 1
- 1
common/JackNetManager.h View File

@@ -69,7 +69,7 @@ namespace Jack


int Process(); int Process();
public: public:
JackNetMaster ( JackNetSocket& socket, session_params_t& params );
JackNetMaster ( JackNetSocket& socket, session_params_t& params, const char* multicast_ip );
~JackNetMaster (); ~JackNetMaster ();
}; };




Loading…
Cancel
Save