git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2498 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.90
| @@ -215,7 +215,6 @@ env['INCLUDEDIR'] = env.subst(env['INCLUDEDIR']) | |||||
| env['SERVER'] = 'jackd' | env['SERVER'] = 'jackd' | ||||
| env['CLIENTLIB'] = 'jack' | env['CLIENTLIB'] = 'jack' | ||||
| env['SERVERLIB'] = 'jackserver' | env['SERVERLIB'] = 'jackserver' | ||||
| env['NETMANAGERLIB'] = 'netmanager' | |||||
| env['ADDON_DIR'] = env.subst(env['LIBDIR']) + "/jack" | env['ADDON_DIR'] = env.subst(env['LIBDIR']) + "/jack" | ||||
| env['INSTALL_ADDON_DIR'] = env['DESTDIR'] + env.subst(env['LIBDIR']) + "/jack" | env['INSTALL_ADDON_DIR'] = env['DESTDIR'] + env.subst(env['LIBDIR']) + "/jack" | ||||
| @@ -192,7 +192,7 @@ namespace Jack | |||||
| do | do | ||||
| { | { | ||||
| //send 'available' | //send 'available' | ||||
| if ( sendto ( fSockfd, &fParams, sizeof ( session_params_t ), MSG_DONTWAIT, | |||||
| if ( sendto ( fSockfd, &fParams, sizeof ( session_params_t ), 0, | |||||
| reinterpret_cast<socket_address_t*> ( &mcast_addr ), addr_len ) < 0 ) | reinterpret_cast<socket_address_t*> ( &mcast_addr ), addr_len ) < 0 ) | ||||
| jack_error ( "Error in data send : %s", strerror ( errno ) ); | jack_error ( "Error in data send : %s", strerror ( errno ) ); | ||||
| //filter incoming packets : don't exit while receiving wrong packets | //filter incoming packets : don't exit while receiving wrong packets | ||||
| @@ -228,7 +228,7 @@ namespace Jack | |||||
| jack_log ( "JackNetDriver::GetNetMasterStartSync()" ); | jack_log ( "JackNetDriver::GetNetMasterStartSync()" ); | ||||
| //tell the master to start | //tell the master to start | ||||
| SetPacketType ( &fParams, START_MASTER ); | SetPacketType ( &fParams, START_MASTER ); | ||||
| if ( send ( fSockfd, &fParams, sizeof ( session_params_t ), MSG_DONTWAIT ) < 0 ) | |||||
| if ( send ( fSockfd, &fParams, sizeof ( session_params_t ), 0 ) < 0 ) | |||||
| { | { | ||||
| jack_error ( "Error in send : %s", strerror ( errno ) ); | jack_error ( "Error in send : %s", strerror ( errno ) ); | ||||
| return ( ( errno == ECONNABORTED ) || ( errno == ECONNREFUSED ) || ( errno == ECONNRESET ) ) ? NET_ERROR : SEND_ERROR; | return ( ( errno == ECONNABORTED ) || ( errno == ECONNREFUSED ) || ( errno == ECONNRESET ) ) ? NET_ERROR : SEND_ERROR; | ||||
| @@ -551,7 +551,7 @@ namespace Jack | |||||
| fTxHeader.fIsLastPckt = 'y'; | fTxHeader.fIsLastPckt = 'y'; | ||||
| memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); | memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); | ||||
| copy_size = fNetMidiPlaybackBuffer->RenderToNetwork ( subproc, fTxHeader.fMidiDataSize ); | copy_size = fNetMidiPlaybackBuffer->RenderToNetwork ( subproc, fTxHeader.fMidiDataSize ); | ||||
| tx_bytes = Send ( sizeof ( packet_header_t ) + copy_size, MSG_DONTWAIT ); | |||||
| tx_bytes = Send ( sizeof ( packet_header_t ) + copy_size, 0 ); | |||||
| } | } | ||||
| } | } | ||||
| @@ -566,7 +566,7 @@ namespace Jack | |||||
| fTxHeader.fIsLastPckt = 'y'; | fTxHeader.fIsLastPckt = 'y'; | ||||
| fNetAudioPlaybackBuffer->RenderFromJackPorts ( subproc ); | fNetAudioPlaybackBuffer->RenderFromJackPorts ( subproc ); | ||||
| memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); | memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); | ||||
| tx_bytes = Send ( fAudioTxLen, MSG_DONTWAIT ); | |||||
| tx_bytes = Send ( fAudioTxLen, 0 ); | |||||
| } | } | ||||
| } | } | ||||
| return 0; | return 0; | ||||
| @@ -20,6 +20,7 @@ | |||||
| #include "JackNetManager.h" | #include "JackNetManager.h" | ||||
| #include "JackError.h" | #include "JackError.h" | ||||
| #include "JackExports.h" | |||||
| #define DEFAULT_MULTICAST_IP "225.3.19.154" | #define DEFAULT_MULTICAST_IP "225.3.19.154" | ||||
| #define DEFAULT_PORT 19000 | #define DEFAULT_PORT 19000 | ||||
| @@ -266,7 +267,7 @@ namespace Jack | |||||
| int mcast_sockfd = socket ( AF_INET, SOCK_DGRAM, 0 ); | int mcast_sockfd = socket ( AF_INET, SOCK_DGRAM, 0 ); | ||||
| if ( mcast_sockfd < 0 ) | if ( mcast_sockfd < 0 ) | ||||
| jack_error ( "Can't create socket : %s", strerror ( errno ) ); | jack_error ( "Can't create socket : %s", strerror ( errno ) ); | ||||
| if ( sendto ( mcast_sockfd, &fParams, sizeof ( session_params_t ), MSG_DONTWAIT, | |||||
| if ( sendto ( mcast_sockfd, &fParams, sizeof ( session_params_t ), 0, | |||||
| reinterpret_cast<socket_address_t*> ( &fMcastAddr ), sizeof ( socket_address_t ) ) < 0 ) | reinterpret_cast<socket_address_t*> ( &fMcastAddr ), sizeof ( socket_address_t ) ) < 0 ) | ||||
| jack_error ( "Can't send suicide request : %s", strerror ( errno ) ); | jack_error ( "Can't send suicide request : %s", strerror ( errno ) ); | ||||
| close ( mcast_sockfd ); | close ( mcast_sockfd ); | ||||
| @@ -357,7 +358,7 @@ namespace Jack | |||||
| fTxHeader.fDataType = 's'; | fTxHeader.fDataType = 's'; | ||||
| if ( !fParams.fSendMidiChannels && !fParams.fSendAudioChannels ) | if ( !fParams.fSendMidiChannels && !fParams.fSendAudioChannels ) | ||||
| fTxHeader.fIsLastPckt = 'y'; | fTxHeader.fIsLastPckt = 'y'; | ||||
| tx_bytes = Send ( reinterpret_cast<char*> ( &fTxHeader ), sizeof ( packet_header_t ), MSG_DONTWAIT ); | |||||
| tx_bytes = Send ( reinterpret_cast<char*> ( &fTxHeader ), sizeof ( packet_header_t ), 0 ); | |||||
| if ( tx_bytes < 1 ) | if ( tx_bytes < 1 ) | ||||
| return tx_bytes; | return tx_bytes; | ||||
| @@ -374,7 +375,7 @@ namespace Jack | |||||
| fTxHeader.fIsLastPckt = 'y'; | fTxHeader.fIsLastPckt = 'y'; | ||||
| memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); | memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); | ||||
| copy_size = fNetMidiCaptureBuffer->RenderToNetwork ( subproc, fTxHeader.fMidiDataSize ); | copy_size = fNetMidiCaptureBuffer->RenderToNetwork ( subproc, fTxHeader.fMidiDataSize ); | ||||
| tx_bytes = Send ( fTxBuffer, sizeof ( packet_header_t ) + copy_size, MSG_DONTWAIT ); | |||||
| tx_bytes = Send ( fTxBuffer, sizeof ( packet_header_t ) + copy_size, 0 ); | |||||
| if ( tx_bytes < 1 ) | if ( tx_bytes < 1 ) | ||||
| return tx_bytes; | return tx_bytes; | ||||
| } | } | ||||
| @@ -391,7 +392,7 @@ namespace Jack | |||||
| fTxHeader.fIsLastPckt = 'y'; | fTxHeader.fIsLastPckt = 'y'; | ||||
| memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); | memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); | ||||
| fNetAudioCaptureBuffer->RenderFromJackPorts ( subproc ); | fNetAudioCaptureBuffer->RenderFromJackPorts ( subproc ); | ||||
| tx_bytes = Send ( fTxBuffer, fAudioTxLen, MSG_DONTWAIT ); | |||||
| tx_bytes = Send ( fTxBuffer, fAudioTxLen, 0 ); | |||||
| if ( tx_bytes < 1 ) | if ( tx_bytes < 1 ) | ||||
| return tx_bytes; | return tx_bytes; | ||||
| } | } | ||||
| @@ -644,7 +645,7 @@ static Jack::JackNetMasterManager* master_manager = NULL; | |||||
| extern "C" | extern "C" | ||||
| { | { | ||||
| #endif | #endif | ||||
| int jack_initialize ( jack_client_t* jack_client, const char* load_init ) | |||||
| EXPORT int jack_initialize ( jack_client_t* jack_client, const char* load_init ) | |||||
| { | { | ||||
| if ( master_manager ) | if ( master_manager ) | ||||
| { | { | ||||
| @@ -659,7 +660,7 @@ extern "C" | |||||
| } | } | ||||
| } | } | ||||
| void jack_finish ( void* arg ) | |||||
| EXPORT void jack_finish ( void* arg ) | |||||
| { | { | ||||
| if ( master_manager ) | if ( master_manager ) | ||||
| { | { | ||||
| @@ -95,6 +95,7 @@ srcfiles_common_serverlib = [ | |||||
| 'JackServer.cpp', | 'JackServer.cpp', | ||||
| 'JackShmMem.cpp', | 'JackShmMem.cpp', | ||||
| 'JackThreadedDriver.cpp', | 'JackThreadedDriver.cpp', | ||||
| 'JackWaitThreadedDriver.cpp', | |||||
| 'shm.c', | 'shm.c', | ||||
| 'JackSocket.cpp', | 'JackSocket.cpp', | ||||
| 'JackSocketServerChannel.cpp', | 'JackSocketServerChannel.cpp', | ||||
| @@ -183,7 +184,6 @@ libenv.AppendUnique(CPPFLAGS = ['-fvisibility=hidden']) | |||||
| clientlib = libenv.SharedLibrary(env['CLIENTLIB'], srcfiles_common_clientlib) | clientlib = libenv.SharedLibrary(env['CLIENTLIB'], srcfiles_common_clientlib) | ||||
| serverlib = libenv.SharedLibrary(env['SERVERLIB'], srcfiles_common_serverlib) | serverlib = libenv.SharedLibrary(env['SERVERLIB'], srcfiles_common_serverlib) | ||||
| netmanagerlib = libenv.SharedLibrary(env['NETMANAGERLIB'], 'JackNetManager.cpp') | |||||
| env.Install( env['INSTALL_LIBDIR'], [clientlib, serverlib]) | env.Install( env['INSTALL_LIBDIR'], [clientlib, serverlib]) | ||||
| env.Alias('install', env['INSTALL_LIBDIR']) | env.Alias('install', env['INSTALL_LIBDIR']) | ||||
| @@ -197,6 +197,12 @@ if env['PLATFORM'] == 'posix': | |||||
| env.Command(env['INSTALL_LIBDIR'] + '/lib' + lib_name + '.so', env['INSTALL_LIBDIR'] + '/lib' + lib_name + '.so.' + str(env['JACKAPI_MAJOR_VERSION']), symlinkcmd) | env.Command(env['INSTALL_LIBDIR'] + '/lib' + lib_name + '.so', env['INSTALL_LIBDIR'] + '/lib' + lib_name + '.so.' + str(env['JACKAPI_MAJOR_VERSION']), symlinkcmd) | ||||
| env.Alias('install', env['INSTALL_LIBDIR'] + '/lib' + lib_name + '.so.' + str(env['JACKAPI_MAJOR_VERSION'])) | env.Alias('install', env['INSTALL_LIBDIR'] + '/lib' + lib_name + '.so.' + str(env['JACKAPI_MAJOR_VERSION'])) | ||||
| # NetManager | |||||
| netmanagerenv = env.Copy() | |||||
| netmanagerenv.AppendUnique(CPPFLAGS = ['-fvisibility=hidden']) | |||||
| env.InstallAs(env['INSTALL_ADDON_DIR'] + '/netmanager.so', netmanagerenv.SharedLibrary('netmanager', 'JackNetManager.cpp')) | |||||
| env.Alias('install', env['INSTALL_ADDON_DIR'] + '/netmanager.so') | |||||
| # Headers | # Headers | ||||
| for header in jack_headers: | for header in jack_headers: | ||||
| env.Install(env['INSTALL_INCLUDEDIR'], 'jack/' + header) | env.Install(env['INSTALL_INCLUDEDIR'], 'jack/' + header) | ||||
| @@ -120,15 +120,15 @@ def build(bld): | |||||
| clientlib.vnum = bld.env()['JACK_API_VERSION'] | clientlib.vnum = bld.env()['JACK_API_VERSION'] | ||||
| clientlib.env.append_value("CPPFLAGS", "-fvisibility=hidden") | clientlib.env.append_value("CPPFLAGS", "-fvisibility=hidden") | ||||
| netmanager_lib = bld.create_obj('cpp', 'shlib') | |||||
| netmanager_lib.env['shlib_PATTERN'] = '%s.so' | |||||
| netmanager_lib.includes = ['./jack', '.'] | |||||
| netmanager_lib.name = 'netmanager' | |||||
| netmanager_lib.target = 'netmanager' | |||||
| netmanager_lib.source = 'JackNetManager.cpp' | |||||
| netmanager_lib.env.append_value("CPPFLAGS", "-fvisibility=hidden") | |||||
| netmanager_lib.inst_var = bld.env()['ADDON_DIR'] | |||||
| netmanager_lib.inst_dir = '/' | |||||
| netmanagerlib = bld.create_obj('cpp', 'shlib') | |||||
| netmanagerlib.env['shlib_PATTERN'] = '%s.so' | |||||
| netmanagerlib.includes = ['./jack', '.'] | |||||
| netmanagerlib.name = 'netmanager' | |||||
| netmanagerlib.target = 'netmanager' | |||||
| netmanagerlib.source = 'JackNetManager.cpp' | |||||
| netmanagerlib.env.append_value("CPPFLAGS", "-fvisibility=hidden") | |||||
| netmanagerlib.inst_var = bld.env()['ADDON_DIR'] | |||||
| netmanagerlib.inst_dir = '/' | |||||
| install_files('PREFIX', 'include/jack', 'jack/*.h') | install_files('PREFIX', 'include/jack', 'jack/*.h') | ||||