示例#1
0
    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;
    }
示例#2
0
    // 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;
    }