void SonicPiUDPOSCServer::start(){
  std::cout << "[GUI] - starting UDP OSC Server on port 4558..." << std::endl;
  int PORT_NUM = 4558;
  oscpkt::UdpSocket sock;
  sock.bindTo(PORT_NUM);
  if (!sock.isOk()) {
    std::cout << "[GUI] - unable to listen to UDP OSC messages on port 4558" << std::endl;
    parent->invokeStartupError(tr("Is Sonic Pi already running?  Can't open UDP port 4558."));
    return;
  }

  std::cout << "[GUI] - UDP OSC Server ready and listening" << std::endl << std::flush;

  osc_incoming_port_open = true;

  while (sock.isOk() && continueListening()) {
    if (sock.receiveNextPacket(30 /* timeout, in ms */)) {
      handler->oscMessage(sock.buffer);
      std::vector<char>().swap(sock.buffer);
      std::cout << std::flush;
    }
  }
}
Esempio n. 2
0
bool SonicPiOSCServer::waitForServer(){
  return !handler->server_started && continueListening();
}