Changeset 3955

Show
Ignore:
Timestamp:
03/11/10 02:18:41 (5 months ago)
Author:
sletz
Message:

Improve master mode.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • jack2/branches/libjacknet/common/JackAudioAdapterInterface.h

    r3953 r3955  
    213213        int GetInputs() 
    214214        { 
    215             jack_log ( "JackAudioAdapterInterface::GetInputs %d", fCaptureChannels ); 
     215            //jack_log("JackAudioAdapterInterface::GetInputs %d", fCaptureChannels); 
    216216            return fCaptureChannels; 
    217217        } 
     
    219219        int GetOutputs() 
    220220        { 
    221             jack_log ( "JackAudioAdapterInterface::GetOutputs %d", fPlaybackChannels ); 
     221            //jack_log ("JackAudioAdapterInterface::GetOutputs %d", fPlaybackChannels); 
    222222            return fPlaybackChannels; 
    223223        } 
  • jack2/branches/libjacknet/common/JackNetAdapter.cpp

    r3814 r3955  
    118118    JackNetAdapter::~JackNetAdapter() 
    119119    { 
    120         jack_log ( "JackNetAdapter::~JackNetAdapter" ); 
     120        jack_log ("JackNetAdapter::~JackNetAdapter"); 
    121121 
    122122        int port_index; 
    123         if ( fSoftCaptureBuffer
    124         { 
    125             for ( port_index = 0; port_index < fCaptureChannels; port_index++
     123        if (fSoftCaptureBuffer
     124        { 
     125            for (port_index = 0; port_index < fCaptureChannels; port_index++
    126126                delete[] fSoftCaptureBuffer[port_index]; 
    127127            delete[] fSoftCaptureBuffer; 
    128128        } 
    129         if ( fSoftPlaybackBuffer
    130         { 
    131             for ( port_index = 0; port_index < fPlaybackChannels; port_index++
     129        if (fSoftPlaybackBuffer
     130        { 
     131            for ( port_index = 0; port_index < fPlaybackChannels; port_index++
    132132                delete[] fSoftPlaybackBuffer[port_index]; 
    133133            delete[] fSoftPlaybackBuffer; 
     
    195195 
    196196//thread------------------------------------------------------------------------------ 
     197    // TODO : if failure, thread exist... need to restart ? 
     198     
    197199    bool JackNetAdapter::Init() 
    198200    { 
     
    202204 
    203205        //init network connection 
    204         if ( !JackNetSlaveInterface::Init() ) 
     206        if (!JackNetSlaveInterface::Init()) { 
     207            jack_error("JackNetSlaveInterface::Init() error..." ); 
    205208            return false; 
     209        } 
    206210 
    207211        //then set global parameters 
    208         SetParams(); 
     212        if (!SetParams()) { 
     213            jack_error("SetParams error..." ); 
     214            return false; 
     215        } 
    209216 
    210217        //set buffers 
  • jack2/branches/libjacknet/common/JackNetAPI.cpp

    r3954 r3955  
    215215                            goto error; 
    216216                        } 
     217                        jack_info ( "Waiting for a slave..." ); 
    217218                        break; 
    218219                         
     
    788789    } 
    789790     
    790     int Flush() 
     791    void Flush() 
    791792    { 
    792793        for (int i = 0; i < fCaptureChannels; i++ ) { 
     
    882883SERVER_EXPORT int jack_net_master_recv(jack_net_master_t* net, int audio_input, float** audio_input_buffer, int midi_input, void** midi_input_buffer) 
    883884{ 
    884     JackNetExtMaster* slave = (JackNetExtMaster*)net; 
    885     return slave->Read(audio_input, audio_input_buffer, midi_input, midi_input_buffer); 
     885    JackNetExtMaster* master = (JackNetExtMaster*)net; 
     886    return master->Read(audio_input, audio_input_buffer, midi_input, midi_input_buffer); 
    886887} 
    887888 
    888889SERVER_EXPORT int jack_net_master_send(jack_net_master_t* net, int audio_output, float** audio_output_buffer, int midi_output, void** midi_output_buffer) 
    889890{ 
    890     JackNetExtMaster* slave = (JackNetExtMaster*)net; 
    891     return slave->Write(audio_output, audio_output_buffer, midi_output, midi_output_buffer); 
     891    JackNetExtMaster* master = (JackNetExtMaster*)net; 
     892    return master->Write(audio_output, audio_output_buffer, midi_output, midi_output_buffer); 
    892893} 
    893894 
  • jack2/branches/libjacknet/common/JackNetDriver.cpp

    r3939 r3955  
    143143 
    144144        //init network 
    145         if (!JackNetSlaveInterface::Init()) 
     145        if (!JackNetSlaveInterface::Init()) { 
     146            jack_error("JackNetSlaveInterface::Init() error..." ); 
    146147            return false; 
     148        } 
    147149 
    148150        //set global parameters 
    149         if (!SetParams()) 
     151        if (!SetParams()) { 
     152            jack_error("SetParams error..." ); 
    150153            return false; 
    151           
     154        } 
     155         
    152156        //allocate midi ports lists 
    153157        fMidiCapturePortList = new jack_port_id_t [fParams.fSendMidiChannels]; 
  • jack2/branches/libjacknet/common/JackNetInterface.cpp

    r3954 r3955  
    6868    } 
    6969     
     70    void JackNetInterface::FreeNetworkBuffers() 
     71    { 
     72        delete fNetMidiCaptureBuffer; 
     73        delete fNetMidiPlaybackBuffer; 
     74        delete fNetAudioCaptureBuffer; 
     75        delete fNetAudioPlaybackBuffer; 
     76        fNetMidiCaptureBuffer = NULL; 
     77        fNetMidiPlaybackBuffer = NULL; 
     78        fNetAudioCaptureBuffer = NULL; 
     79        fNetAudioPlaybackBuffer = NULL; 
     80    } 
     81     
    7082    JackNetInterface::~JackNetInterface() 
    7183    { 
    72         jack_log ( "JackNetInterface::~JackNetInterface" ); 
     84        jack_log ("JackNetInterface::~JackNetInterface"); 
    7385 
    7486        fSocket.Close(); 
     
    271283             
    272284    error: 
    273      
    274         delete fNetMidiCaptureBuffer; 
    275         delete fNetMidiPlaybackBuffer; 
    276         delete fNetAudioCaptureBuffer; 
    277         delete fNetAudioPlaybackBuffer; 
     285        FreeNetworkBuffers(); 
    278286        return false; 
    279287    } 
     
    651659    } 
    652660 
    653     net_status_t JackNetSlaveInterface::SendAvailableToMaster(int count) 
     661    net_status_t JackNetSlaveInterface::SendAvailableToMaster(long try_count) 
    654662    { 
    655663        jack_log ( "JackNetSlaveInterface::SendAvailableToMaster()" ); 
     
    699707            } 
    700708        } 
    701         while (strcmp(host_params.fPacketType, fParams.fPacketType)  && (GetPacketType(&host_params) != SLAVE_SETUP)  && (--count > 0)); 
     709        while (strcmp(host_params.fPacketType, fParams.fPacketType)  && (GetPacketType(&host_params) != SLAVE_SETUP)  && (--try_count > 0)); 
    702710         
    703711        // Time out failure.. 
    704         if (count == 0) { 
     712        if (try_count == 0) { 
     713            jack_error("Time out error in connect"); 
    705714            return NET_CONNECT_ERROR; 
    706715        } 
     
    711720 
    712721        //connect the socket 
    713         if ( fSocket.Connect() == SOCKET_ERROR ) { 
    714             jack_error ( "Error in connect : %s", StrError ( NET_ERROR_CODE ) ); 
     722        if (fSocket.Connect() == SOCKET_ERROR) { 
     723            jack_error("Error in connect : %s", StrError(NET_ERROR_CODE)); 
    715724            return NET_CONNECT_ERROR; 
    716725        } 
     
    720729    net_status_t JackNetSlaveInterface::SendStartToMaster() 
    721730    { 
    722         jack_log ( "JackNetSlaveInterface::SendStartToMaster" ); 
     731        jack_log("JackNetSlaveInterface::SendStartToMaster"); 
    723732 
    724733        //tell the master to start 
     
    727736        SetPacketType ( &fParams, START_MASTER ); 
    728737        SessionParamsHToN(&fParams, &net_params); 
    729         if ( fSocket.Send ( &net_params, sizeof ( session_params_t ), 0 ) == SOCKET_ERROR
    730         { 
    731             jack_error ( "Error in send : %s", StrError ( NET_ERROR_CODE ) ); 
    732             return ( fSocket.GetError() == NET_CONN_ERROR ) ? NET_ERROR : NET_SEND_ERROR; 
     738        if (fSocket.Send(&net_params, sizeof(session_params_t), 0) == SOCKET_ERROR
     739        { 
     740            jack_error("Error in send : %s", StrError(NET_ERROR_CODE)); 
     741            return (fSocket.GetError() == NET_CONN_ERROR) ? NET_ERROR : NET_SEND_ERROR; 
    733742        } 
    734743        return NET_ROLLING; 
     
    785794         
    786795    error: 
    787         delete fNetMidiCaptureBuffer; 
    788         delete fNetMidiPlaybackBuffer; 
    789         delete fNetAudioCaptureBuffer; 
    790         delete fNetAudioPlaybackBuffer; 
     796        FreeNetworkBuffers();         
    791797        return false; 
    792798    } 
  • jack2/branches/libjacknet/common/JackNetInterface.h

    r3954 r3955  
    6464            //utility methods 
    6565            int SetNetBufferSize(); 
     66            void FreeNetworkBuffers(); 
    6667      
    6768            //virtual methods : depends on the sub class master/slave 
     
    149150            bool InitRendering(); 
    150151             
    151             net_status_t SendAvailableToMaster(int count = LONG_MAX); 
     152            net_status_t SendAvailableToMaster(long count = LONG_MAX);  // long here (and not int...) 
    152153            net_status_t SendStartToMaster(); 
    153154             
  • jack2/branches/libjacknet/common/JackNetManager.cpp

    r3949 r3955  
    114114    { 
    115115        //network init 
    116         if (!JackNetMasterInterface::Init()) 
     116        if (!JackNetMasterInterface::Init()){ 
     117            jack_error("JackNetMasterInterface::Init() error..." ); 
    117118            return false; 
     119        } 
    118120 
    119121        //set global parameters 
    120         if (!SetParams()) 
     122        if (!SetParams()) { 
     123            jack_error("SetParams error..." ); 
    121124            return false; 
     125        } 
    122126 
    123127        //jack client and process 
  • jack2/branches/libjacknet/common/JackNetTool.cpp

    r3952 r3955  
    5050        mach_timebase_info(&info); 
    5151        m_clockToSeconds = (double)info.numer/info.denom/1000000000.0; 
    52  
    5352        Reset(); 
    5453} 
     
    5857        m_startAbsTime = mach_absolute_time(); 
    5958        m_lastAbsTime = m_startAbsTime; 
    60          
    6159        m_time = m_startAbsTime*m_clockToSeconds; 
    6260        m_deltaTime = 1.0f/60.0f; 
     
    7068        m_time = currentTime*m_clockToSeconds; 
    7169        m_deltaTime = (double)dt*m_clockToSeconds; 
    72  
    7370        m_lastAbsTime = currentTime; 
    7471} 
     
    201198    { 
    202199        int size = total_size - subcycle * fMaxPcktSize; 
    203         int copy_size = ( size <= fMaxPcktSize ) ? size : fMaxPcktSize; 
    204         memcpy ( fNetBuffer, fBuffer + subcycle * fMaxPcktSize, copy_size ); 
     200        int copy_size = (size <= fMaxPcktSize) ? size : fMaxPcktSize; 
     201        memcpy(fNetBuffer, fBuffer + subcycle * fMaxPcktSize, copy_size); 
    205202        return copy_size; 
    206203    } 
     
    415412    } 
    416413     
    417     HardwareClock clock; 
    418      //network<->buffer 
     414      //network<->buffer 
    419415    int NetCeltAudioBuffer::RenderFromNetwork(int cycle, int subcycle, size_t copy_size) 
    420416    { 
    421         //clock.Update(); 
    422          
    423417        if (subcycle == fNumPackets - 1) { 
    424418            for (int port_index = 0; port_index < fNPorts; port_index++) 
     
    433427         
    434428        fLastSubCycle = subcycle; 
    435          
    436         //clock.Update(); 
    437                 //const float dt = clock.GetDeltaTime(); 
    438                 //printf("Delta: %f s\n", dt); 
    439          
    440429        return copy_size; 
    441430    } 
  • jack2/branches/libjacknet/common/JackNetTool.h

    r3952 r3955  
    279279             
    280280            //network<->buffer 
    281             virtual int RenderFromNetwork ( int cycle, int subcycle, size_t copy_size ) = 0; 
     281            virtual int RenderFromNetwork ( int cycle, int subcycle, size_t copy_size ) = 0; 
    282282            virtual int RenderToNetwork (int subcycle, size_t total_size ) = 0; 
    283283 
  • jack2/branches/libjacknet/common/JackWaitThreadedDriver.h

    r3614 r3955  
    6565                bool Execute() 
    6666                { 
    67                     // Blocks until decorated driver is started (that is when it's Init method returns). 
    68                     fDriver->Initialize(); 
     67                    // Blocks until decorated driver is started (that is when it's Initialize method returns true). 
     68                    while (!fDriver->Initialize()) {} 
    6969                    fRunning = true; 
    7070                    return false; 
  • jack2/branches/libjacknet/macosx/iphone/iPhoneNet.xcodeproj/project.pbxproj

    r3950 r3955  
    154154/* Begin PBXFileReference section */ 
    155155                1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 
    156                 1D6058910D05DD3D006BFB54 /* NetJack.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NetJack.app; sourceTree = BUILT_PRODUCTS_DIR; }; 
     156                1D6058910D05DD3D006BFB54 /* NetJackSlave.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NetJackSlave.app; sourceTree = BUILT_PRODUCTS_DIR; }; 
    157157                1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 
    158158                288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 
    159159                28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; }; 
    160160                32CA4F630368D1EE00C91783 /* iPhoneNet_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iPhoneNet_Prefix.pch; sourceTree = "<group>"; }; 
    161                 4B0772380F54018C000DC657 /* iPhoneNetMaster.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneNetMaster.app; sourceTree = BUILT_PRODUCTS_DIR; }; 
     161                4B0772380F54018C000DC657 /* NetJackMaster.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NetJackMaster.app; sourceTree = BUILT_PRODUCTS_DIR; }; 
    162162                4B0772490F54021B000DC657 /* main_slave.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = main_slave.mm; sourceTree = SOURCE_ROOT; }; 
    163163                4B0772500F54022D000DC657 /* main_master.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = main_master.mm; sourceTree = SOURCE_ROOT; }; 
     
    183183                4BCB37D5112D64B4008C7BC1 /* HardwareClock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HardwareClock.cpp; sourceTree = SOURCE_ROOT; }; 
    184184                4BCB37D8112D64D8008C7BC1 /* iphone-faust.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "iphone-faust.mm"; sourceTree = SOURCE_ROOT; }; 
    185                 4BCF75F210BC2FD90082C526 /* iPhoneFaustNet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneFaustNet.app; sourceTree = BUILT_PRODUCTS_DIR; }; 
     185                4BCF75F210BC2FD90082C526 /* iPhoneThruNet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneThruNet.app; sourceTree = BUILT_PRODUCTS_DIR; }; 
    186186                4BCF75F610BC30140082C526 /* audio_thru.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = audio_thru.mm; sourceTree = SOURCE_ROOT; }; 
    187187                4BDFCCD7113DB30500D77992 /* Info copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info copy.plist"; sourceTree = "<group>"; }; 
     
    291291                        isa = PBXGroup; 
    292292                        children = ( 
    293                                 1D6058910D05DD3D006BFB54 /* NetJack.app */, 
     293                                1D6058910D05DD3D006BFB54 /* NetJackSlave.app */, 
    294294                                4BFF45120F4D59DB00106083 /* libjacknet.a */, 
    295295                                4BFF45770F4D5D9700106083 /* iPhoneFaustNet.app */, 
    296                                 4B0772380F54018C000DC657 /* iPhoneNetMaster.app */, 
    297                                 4BCF75F210BC2FD90082C526 /* iPhoneFaustNet.app */, 
     296                                4B0772380F54018C000DC657 /* NetJackMaster.app */, 
     297                                4BCF75F210BC2FD90082C526 /* iPhoneThruNet.app */, 
    298298                                4B4146B010BD3C4300C12F0C /* iPhoneFaustNet.app */, 
    299299                                4BCB37CE112D647C008C7BC1 /* iPhoneFaust.app */, 
     
    405405                        name = iPhoneNetSlave; 
    406406                        productName = iPhoneNet; 
    407                         productReference = 1D6058910D05DD3D006BFB54 /* NetJack.app */; 
     407                        productReference = 1D6058910D05DD3D006BFB54 /* NetJackSlave.app */; 
    408408                        productType = "com.apple.product-type.application"; 
    409409                }; 
     
    422422                        name = iPhoneNetMaster; 
    423423                        productName = iPhoneNet; 
    424                         productReference = 4B0772380F54018C000DC657 /* iPhoneNetMaster.app */; 
     424                        productReference = 4B0772380F54018C000DC657 /* NetJackMaster.app */; 
    425425                        productType = "com.apple.product-type.application"; 
    426426                }; 
     
    490490                        name = iPhoneThruNet; 
    491491                        productName = iPhoneNet; 
    492                         productReference = 4BCF75F210BC2FD90082C526 /* iPhoneFaustNet.app */; 
     492                        productReference = 4BCF75F210BC2FD90082C526 /* iPhoneThruNet.app */; 
    493493                        productType = "com.apple.product-type.application"; 
    494494                }; 
     
    794794                                ); 
    795795                                OTHER_LDFLAGS = libcelt.a; 
    796                                 PRODUCT_NAME = iPhoneNetSlave; 
     796                                PRODUCT_NAME = NetJackSlave; 
    797797                                SDKROOT = iphoneos3.1.3; 
    798798                        }; 
     
    823823                                ); 
    824824                                OTHER_LDFLAGS = libcelt.a; 
    825                                 PRODUCT_NAME = NetJack
     825                                PRODUCT_NAME = NetJackSlave
    826826                                SDKROOT = iphoneos3.1.3; 
    827827                        }; 
     
    838838                                GCC_PREFIX_HEADER = iPhoneNet_Prefix.pch; 
    839839                                HEADER_SEARCH_PATHS = ( 
     840                                        /usr/local/include, 
    840841                                        ../../macosx/coreaudio, 
    841842                                        ../../macosx, 
     
    849850                                        "\\\"$(SRCROOT)/build/Debug-iphonesimulator\\\"", 
    850851                                ); 
    851                                 OTHER_LDFLAGS = ""
    852                                 PRODUCT_NAME = iPhoneNetMaster; 
     852                                OTHER_LDFLAGS = libcelt.a
     853                                PRODUCT_NAME = NetJackMaster; 
    853854                                SDKROOT = iphoneos3.1.3; 
    854855                        }; 
     
    863864                                GCC_PREFIX_HEADER = iPhoneNet_Prefix.pch; 
    864865                                HEADER_SEARCH_PATHS = ( 
     866                                        /usr/local/include, 
    865867                                        ../../macosx/coreaudio, 
    866868                                        ../../common/jack, 
     
    874876                                        "\\\"$(SRCROOT)/build/Debug-iphonesimulator\\\"", 
    875877                                ); 
    876                                 PRODUCT_NAME = iPhoneNetMaster; 
     878                                OTHER_LDFLAGS = libcelt.a; 
     879                                PRODUCT_NAME = NetJackMaster; 
    877880                        }; 
    878881                        name = Release; 
     
    10981101                                ); 
    10991102                                OTHER_LDFLAGS = "-ljacknet"; 
    1100                                 PRODUCT_NAME = iPhoneNetSlave; 
     1103                                PRODUCT_NAME = NetJackSlave; 
    11011104                                SDKROOT = iphoneos3.1.3; 
    11021105                        }; 
  • jack2/branches/libjacknet/macosx/iphone/main_master.mm

    r3932 r3955  
    2121float** audio_output_buffer; 
    2222 
    23 int buffer_size = 4096
     23int buffer_size = 1024
    2424int sample_rate = 44100; 
    2525 
     
    3131    int i;  
    3232     
    33     // Copy from iPod input to network 
     33    // Copy from iPod input to network buffers 
    3434    for (i = 0; i < result.audio_input; i++) { 
    3535        memcpy(audio_output_buffer[i], inputs[i], buffer_size * sizeof(float)); 
    3636    } 
     37     
     38    // Send network buffers 
    3739    if (jack_net_master_send(net, result.audio_output, audio_output_buffer, 0, NULL) < 0) { 
    3840        printf("jack_net_master_send error..\n"); 
    3941    } 
    4042     
    41     // Copy from network to iPod output 
     43    // Recv network buffers 
    4244    if (jack_net_master_recv(net, result.audio_input, audio_input_buffer, 0, NULL) < 0) { 
    4345        printf("jack_net_master_recv error..\n"); 
    4446    } 
     47     
     48    // Copy from network buffers to iPod output 
    4549    for (i = 0; i < result.audio_output; i++) { 
    4650        memcpy(outputs[i], audio_input_buffer[i], buffer_size * sizeof(float)); 
     
    5862  
    5963    if ((net = jack_net_master_open(DEFAULT_MULTICAST_IP, DEFAULT_PORT, "iPhone", &request, &result))  == 0) { 
     64        printf("jack_net_master_open error..\n"); 
    6065        return -1; 
    6166    } 
     
    8388     
    8489    // Run until interrupted  
    85         while (1) {} 
     90        //while (1) {} 
    8691     
    8792    /* 
     
    106111    */ 
    107112     
     113    int retVal = UIApplicationMain(argc, argv, nil, nil); 
     114     
    108115    audio_device.Stop(); 
    109116    audio_device.Close(); 
    110      
    111     int retVal = UIApplicationMain(argc, argv, nil, nil); 
     117    
    112118     
    113119    // Wait for application end 
  • jack2/branches/libjacknet/macosx/iphone/main_slave.mm

    r3953 r3955  
    7171    //if ((net = jack_net_slave_open("169.254.112.119", DEFAULT_PORT, "iPhone", &request, &result))  == 0) { 
    7272    if ((net = jack_net_slave_open(DEFAULT_MULTICAST_IP, DEFAULT_PORT, "iPod", &request, &result))  == 0) { 
     73        printf("jack_net_slave_open error..\n"); 
    7374        return -1; 
    7475    }