bool JackNetSlaveInterface::Init() { jack_log("JackNetSlaveInterface::Init()"); // set the parameters to send strcpy(fParams.fPacketType, "params"); fParams.fProtocolVersion = NETWORK_PROTOCOL; SetPacketType(&fParams, SLAVE_AVAILABLE); // init loop : get a master and start, do it until connection is ok net_status_t status; do { // first, get a master, do it until a valid connection is running do { status = SendAvailableToMaster(); if (status == NET_SOCKET_ERROR) { return false; } } while (status != NET_CONNECTED); // then tell the master we are ready jack_info("Initializing connection with %s...", fParams.fMasterNetName); status = SendStartToMaster(); if (status == NET_ERROR) { return false; } } while (status != NET_ROLLING); return true; }
// Separate the connection protocol into two separated step bool JackNetSlaveInterface::InitConnection(int time_out_sec) { jack_log("JackNetSlaveInterface::InitConnection time_out_sec = %d", time_out_sec); int try_count = (time_out_sec > 0) ? int((1000000.f * float(time_out_sec)) / float(SLAVE_INIT_TIMEOUT)) : INT_MAX; // set the parameters to send strcpy(fParams.fPacketType, "params"); fParams.fProtocolVersion = NETWORK_PROTOCOL; SetPacketType(&fParams, SLAVE_AVAILABLE); return (SendAvailableToMaster(try_count) == NET_CONNECTED); }
bool JackNetSlaveInterface::InitConnection() { jack_log ( "JackNetSlaveInterface::InitConnection()" ); //set the parameters to send strcpy (fParams.fPacketType, "params"); fParams.fProtocolVersion = SLAVE_PROTOCOL; SetPacketType (&fParams, SLAVE_AVAILABLE); net_status_t status; do { //get a master status = SendAvailableToMaster(); if (status == NET_SOCKET_ERROR) return false; } while (status != NET_CONNECTED); return true; }