Changeset 3954

Show
Ignore:
Timestamp:
03/10/10 12:33:09 (5 months ago)
Author:
sletz
Message:

Implement connection time-out

Files:

Legend:

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

    r3953 r3954  
    5050    int midi_output;    // to master or from slave 
    5151    int mtu; 
    52     int time_out;       // in millisecond, -1 means in infinite 
     52    int time_out;       // in second, -1 means in infinite 
    5353    char mode; 
    5454 
  • jack2/branches/libjacknet/common/JackNetAPI.cpp

    r3953 r3954  
    4747        int audio_output; 
    4848        int midi_input; 
    49         int midi_ouput;  
     49        int midi_output;  
    5050        int mtu; 
    5151        int time_out;   // in millisecond, -1 means in infinite 
     
    231231        result->audio_output = fParams.fReturnAudioChannels; 
    232232        result->midi_input = fParams.fSendMidiChannels; 
    233         result->midi_ouput = fParams.fReturnMidiChannels; 
    234         result->midi_ouput = fParams.fMtu; 
     233        result->midi_output = fParams.fReturnMidiChannels; 
     234        result->mtu = fParams.fMtu; 
    235235        result->mode = fParams.fNetworkMode; 
    236236        return 0; 
     
    426426    JackMidiBuffer** fMidiPlaybackBuffer; 
    427427     
     428    int fConnectTimeOut; 
     429     
    428430    JackNetExtSlave(const char* ip,  
    429431                int port,  
     
    449451        fParams.fReturnAudioChannels = request->audio_output; 
    450452        fParams.fSendMidiChannels = request->midi_input; 
    451         fParams.fReturnMidiChannels = request->midi_ouput; 
     453        fParams.fReturnMidiChannels = request->midi_output; 
    452454        fParams.fNetworkMode = request->mode; 
    453455        fParams.fSlaveSyncMode = 1; 
     456        fConnectTimeOut = request->time_out; 
    454457        
    455458        // Create name with hostname and client name 
     
    469472    { 
    470473        // Init network connection 
    471         if (!JackNetSlaveInterface::InitConnection())  
     474        if (!JackNetSlaveInterface::InitConnection(fConnectTimeOut))  
    472475            return -1; 
    473476              
  • jack2/branches/libjacknet/common/JackNetInterface.cpp

    r3953 r3954  
    610610    // Separate the connection protocol into two separated step 
    611611     
    612     bool JackNetSlaveInterface::InitConnection() 
    613     { 
    614         jack_log ( "JackNetSlaveInterface::InitConnection()" ); 
    615  
     612    bool JackNetSlaveInterface::InitConnection(int time_out) 
     613    { 
     614        jack_log("JackNetSlaveInterface::InitConnection()"); 
     615        int try_count = (time_out > 0) ? ((1000000 * time_out) / SLAVE_INIT_TIMEOUT) : LONG_MAX; 
     616    
    616617        //set the parameters to send 
    617618        strcpy (fParams.fPacketType, "params"); 
     
    623624        { 
    624625            //get a master 
    625             status = SendAvailableToMaster(); 
     626            status = SendAvailableToMaster(try_count); 
    626627            if (status == NET_SOCKET_ERROR) 
    627628                return false; 
    628629        } 
    629         while (status != NET_CONNECTED); 
     630        while (status != NET_CONNECTED && --try_count > 0); 
    630631   
    631         return true
     632        return (try_count != 0)
    632633    } 
    633634     
     
    650651    } 
    651652 
    652     net_status_t JackNetSlaveInterface::SendAvailableToMaster(
     653    net_status_t JackNetSlaveInterface::SendAvailableToMaster(int count
    653654    { 
    654655        jack_log ( "JackNetSlaveInterface::SendAvailableToMaster()" ); 
     
    698699            } 
    699700        } 
    700         while ( strcmp ( host_params.fPacketType, fParams.fPacketType )  && ( GetPacketType ( &host_params ) != SLAVE_SETUP ) ); 
     701        while (strcmp(host_params.fPacketType, fParams.fPacketType)  && (GetPacketType(&host_params) != SLAVE_SETUP)  && (--count > 0)); 
     702         
     703        // Time out failure.. 
     704        if (count == 0) { 
     705            return NET_CONNECT_ERROR; 
     706        } 
    701707    
    702708        //everything is OK, copy parameters 
  • jack2/branches/libjacknet/common/JackNetInterface.h

    r3950 r3954  
    146146        
    147147            bool Init(); 
    148             bool InitConnection(); 
     148            bool InitConnection(int time_out); 
    149149            bool InitRendering(); 
    150150             
    151             net_status_t SendAvailableToMaster(); 
     151            net_status_t SendAvailableToMaster(int count = LONG_MAX); 
    152152            net_status_t SendStartToMaster(); 
    153153             
     
    208208 
    209209#define MASTER_INIT_TIMEOUT 1000000     // in usec 
    210 #define SLAVE_INIT_TIMEOUT 2000000      // in usec 
     210#define SLAVE_INIT_TIMEOUT 1000000      // in usec 
    211211 
    212212#define CYCLE_OFFSET_FAST   0