Exemplo n.º 1
0
AvahiBrowser::AvahiBrowser()
    : client(0),
      browser(0),
      resolver(0),
      services(),
      service_names(),
      changed(),
      cache_done(false),
      found_name(),
      found_host() {
    client = ga_client_new(GaClientFlags(0));
    GError *error = 0;
    if (!ga_client_start(client, &error)) {
	gx_print_fatal(
	    _("Avahi system error"),
	    Glib::ustring::compose(
		_("%1\n\nuse command line arguments --rpchost and/or"
		  " --rpcport to connect directly"), error->message));
    }
    browser = ga_service_browser_new("_guitarix._tcp");
    ga_service_browser_attach(browser, client, &error);
    g_signal_connect(browser, "new-service", G_CALLBACK(new_service), this);
    g_signal_connect(browser, "removed-service", G_CALLBACK(removed_service), this);
    g_signal_connect(browser, "cache-exhausted", G_CALLBACK(cache_exhausted), this);
}
Exemplo n.º 2
0
/**
 * Start a controller
 * * @param self The controller to start
 * @return -1 on errors, 0 on success
 */
gint sib_controller_start(SIBController* self)
{
  //  struct timeval tv;
  //const char *version;
  gint retvalue = -1;
  whiteboard_log_debug_fb();
#if AVAHI==1  
  GError *err = NULL;
#endif  
  g_return_val_if_fail(self != NULL, -1);

#if AVAHI==1  

  if(ga_client_start( self->client, &err) == TRUE )
    {
      retvalue = 0;
    }
  else if(err != NULL)
    {
      whiteboard_log_debug("Could not start avahi client: %s\n", err->message);
      g_error_free(err);
    }


  self->service_browser = ga_service_browser_new("_kspace._tcp");
  if(self->service_browser)
    {
      if( ga_service_browser_attach(self->service_browser,
				    self->client, &err) == TRUE)
	{
	  retvalue = 0;
	}
      else if(err != NULL)
	{
	  whiteboard_log_debug("Could not attach avahi service_browser: %s\n", err->message);
	  g_error_free(err); 
	}
    }
  

  g_signal_connect( G_OBJECT(self->service_browser),
		    "new-service",
		    (GCallback) sib_controller_new_service_cb,
		    self);
  
  g_signal_connect( G_OBJECT(self->service_browser),
		    "removed-service",
		    (GCallback) sib_controller_removed_service_cb,
		    self);
  
  g_signal_connect( G_OBJECT(self->service_browser),
		    "all-for-now",
		    (GCallback) sib_controller_all_for_now_cb,
		    self);
#else
  retvalue = 0;
#endif  
  whiteboard_log_debug_fe();

  return retvalue;
}