MidiBridge::MidiBridge (string name, PortRequest & req) : _name (name) { // use only midi interface and talk directly to the engine via signals _port = 0; _done = false; _learning = false; _clockdone = false; _use_osc = false; _addr = 0; _midi_thread = 0; _clock_thread = 0; _output_clock = false; _getnext = false; _feedback_out = false; PortFactory factory; if ((_port = factory.create_port (req)) == 0) { cerr << "failed to create port" << endl; return; } // this is a callback that will be made from the parser _port->input()->any.connect (mem_fun (*this, &MidiBridge::incoming_midi)); init_thread(); init_clock_thread(); _ok = true; }
MidiBridge::MidiBridge (string name, string oscurl, PortRequest & req) : _name (name), _oscurl(oscurl) { // talk directly to the engine via signals AND send osc _port = 0; _done = false; _learning = false; _use_osc = true; _addr = 0; _midi_thread = 0; _clock_thread = 0; _clockdone = false; _output_clock = false; _getnext = false; _feedback_out = false; _addr = lo_address_new_from_url (_oscurl.c_str()); if (lo_address_errno (_addr) < 0) { fprintf(stderr, "MidiBridge:: addr error %d: %s\n", lo_address_errno(_addr), lo_address_errstr(_addr)); _use_osc = false; } PortFactory factory; if ((_port = factory.create_port (req)) == 0) { return; } // this is a callback that will be made from the parser _port->input()->any.connect (mem_fun (*this, &MidiBridge::incoming_midi)); init_thread(); init_clock_thread(); _ok = true; }