Browse Source

Add a buffer size callback for netmaster that just remove the client (it will be recreated with the new parameters).

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@3471 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/v1.9.3
sletz 17 years ago
parent
commit
849e366f4e
4 changed files with 24 additions and 6 deletions
  1. +4
    -0
      ChangeLog
  2. +6
    -3
      common/JackNetInterface.cpp
  3. +12
    -1
      common/JackNetManager.cpp
  4. +2
    -2
      common/JackNetManager.h

+ 4
- 0
ChangeLog View File

@@ -24,6 +24,10 @@ Torben Hohn
Jackdmp changes log
---------------------------

2009-03-26 Stephane Letz <letz@grame.fr>

* Add a buffer size callback for netmaster that just remove the client (it will be recreated with the new parameters).

2009-03-26 Stephane Letz <letz@grame.fr>

* First working JackBoomerDriver two threads version.


+ 6
- 3
common/JackNetInterface.cpp View File

@@ -329,9 +329,6 @@ namespace Jack
jack_error ( "Can't send suicide request : %s", StrError ( NET_ERROR_CODE ) );
mcast_socket.Close();

// UGLY temporary way to be sure the thread does not call code possibly causing a deadlock in JackEngine.
ThreadExit();
}

int JackNetMasterInterface::Recv ( size_t size, int flags )
@@ -349,6 +346,9 @@ namespace Jack
jack_error ( "'%s' : %s, exiting.", fParams.fName, StrError ( NET_ERROR_CODE ) );
//ask to the manager to properly remove the master
Exit();
// UGLY temporary way to be sure the thread does not call code possibly causing a deadlock in JackEngine.
ThreadExit();
}
else
jack_error ( "Error in master receive : %s", StrError ( NET_ERROR_CODE ) );
@@ -373,6 +373,9 @@ namespace Jack
//fatal connection issue, exit
jack_error ( "'%s' : %s, exiting.", fParams.fName, StrError ( NET_ERROR_CODE ) );
Exit();
// UGLY temporary way to be sure the thread does not call code possibly causing a deadlock in JackEngine.
ThreadExit();
}
else
jack_error ( "Error in master send : %s", StrError ( NET_ERROR_CODE ) );


+ 12
- 1
common/JackNetManager.cpp View File

@@ -127,7 +127,11 @@ namespace Jack
return false;
}

jack_set_process_callback ( fJackClient, SetProcess, this );
if (jack_set_process_callback(fJackClient, SetProcess, this ) < 0)
goto fail;
if (jack_set_buffer_size_callback(fJackClient, SetBufferSize, this) < 0)
goto fail;

if ( AllocPorts() != 0 )
{
@@ -369,6 +373,13 @@ namespace Jack
{
return ( fReturnTransportData.fState == JackTransportNetStarting );
}
int JackNetMaster::SetBufferSize (jack_nframes_t nframes, void* arg)
{
jack_error("Cannot handle bufer size change, so proxy will be removed...");
static_cast<JackNetMaster*> ( arg )->Exit();
return 0;
}

//process-----------------------------------------------------------------------------
int JackNetMaster::SetProcess ( jack_nframes_t nframes, void* arg )


+ 2
- 2
common/JackNetManager.h View File

@@ -39,6 +39,7 @@ namespace Jack
friend class JackNetMasterManager;
private:
static int SetProcess ( jack_nframes_t nframes, void* arg );
static int SetBufferSize (jack_nframes_t nframes, void* arg);
static void SetTimebaseCallback ( jack_transport_state_t state, jack_nframes_t nframes, jack_position_t* pos, int new_pos, void* arg );

//jack client
@@ -63,8 +64,7 @@ namespace Jack
bool Init(bool auto_connect);
int AllocPorts();
void FreePorts();
void Exit();

//transport
void EncodeTransportData();
void DecodeTransportData();


Loading…
Cancel
Save