示例#1
0
int main(int argc, char **argv)
{
	GOptionContext *context;
	DMAPMdnsBrowser *browserDAAP, *browserDPAP;
	GError *error = NULL;

	stringleton_init ();

	g_log_set_handler ("libdmapsharing", G_LOG_LEVEL_DEBUG, debug_null, NULL);
	g_log_set_handler (NULL, G_LOG_LEVEL_DEBUG, debug_null, NULL);

	context = g_option_context_new ("Stress test dmapd");
        g_option_context_add_main_entries (context, entries, NULL);

	if (! g_option_context_parse (context, &argc, &argv, &error)) {
                g_error ("Option parsing failed: %s", error->message);
        }

	loop = g_main_loop_new (NULL, FALSE);

	browserDAAP = dmap_mdns_browser_new (DMAP_MDNS_BROWSER_SERVICE_TYPE_DAAP);

	g_signal_connect (G_OBJECT (browserDAAP),
		         "service-added",
		          G_CALLBACK (service_added_cb),
		          NULL);

	browserDPAP = dmap_mdns_browser_new (DMAP_MDNS_BROWSER_SERVICE_TYPE_DPAP);

	g_signal_connect (G_OBJECT (browserDPAP),
		         "service-added",
		          G_CALLBACK (service_added_cb),
		          NULL);

	g_debug ("starting mdns browsers");

	dmap_mdns_browser_start (browserDAAP, &error);
	if (error) {
		g_warning ("error starting browser. code: %d message: %s",
			    error->code,
			    error->message);
		exit (EXIT_FAILURE);
	}

	dmap_mdns_browser_start (browserDPAP, &error);
	if (error) {
		g_warning ("error starting browser. code: %d message: %s",
			    error->code,
			    error->message);
		exit (EXIT_FAILURE);
	}

	fprintf (stdout, "Waiting for DMAP shares; please run dmapd.\n");
	g_main_loop_run (loop);

	fprintf (stdout, "Stress test complete.\n");

	exit (EXIT_SUCCESS);
}
示例#2
0
void
dacp_share_start_lookup (DACPShare * share)
{
	GError *error;

	if (share->priv->mdns_browser) {
		g_warning ("DACP browsing already started");
		return;
	}

	share->priv->mdns_browser =
		dmap_mdns_browser_new (DMAP_MDNS_BROWSER_SERVICE_TYPE_DACP);

	g_signal_connect_object (share->priv->mdns_browser,
				 "service-added",
				 G_CALLBACK (mdns_remote_added), share, 0);
	g_signal_connect_object (share->priv->mdns_browser,
				 "service-removed",
				 G_CALLBACK (mdns_remote_removed), share, 0);

	error = NULL;
	dmap_mdns_browser_start (share->priv->mdns_browser, &error);
	if (error != NULL) {
		g_warning ("Unable to start Remote lookup: %s",
			   error->message);
		g_error_free (error);
	}
}
示例#3
0
DPAPCopy* dpap_copy_construct (GType object_type, GError** error) {
	DPAPCopy* self = NULL;
	ValaDMAPDb* _tmp0_ = NULL;
	ValaDPAPRecordFactory* _tmp1_ = NULL;
	DMAPMdnsBrowser* _tmp2_ = NULL;
	DMAPMdnsBrowser* _tmp3_ = NULL;
	DMAPMdnsBrowser* _tmp4_ = NULL;
	GError * _inner_error_ = NULL;
	self = (DPAPCopy*) g_type_create_instance (object_type);
	_tmp0_ = vala_dmap_db_new ();
	_g_object_unref0 (self->priv->db);
	self->priv->db = _tmp0_;
	_tmp1_ = vala_dpap_record_factory_new ();
	_g_object_unref0 (self->priv->factory);
	self->priv->factory = _tmp1_;
	_tmp2_ = dmap_mdns_browser_new (DMAP_MDNS_BROWSER_SERVICE_TYPE_DPAP);
	_g_object_unref0 (self->priv->browser);
	self->priv->browser = _tmp2_;
	_tmp3_ = self->priv->browser;
	g_signal_connect (_tmp3_, "service-added", (GCallback) _dpap_copy_service_added_cb_dmap_mdns_browser_service_added, self);
	_tmp4_ = self->priv->browser;
	dmap_mdns_browser_start (_tmp4_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		_dpap_copy_unref0 (self);
		return NULL;
	}
	return self;
}
示例#4
0
gboolean
grl_dpap_plugin_init (GrlRegistry *registry,
                      GrlPlugin *plugin,
                      GList *configs)
{
  GError *error = NULL;

  GRL_LOG_DOMAIN_INIT (dmap_log_domain, "dmap");

  GRL_DEBUG ("dmap_plugin_init");

  /* Initialize i18n */
  bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");

  browser     = dmap_mdns_browser_new (DMAP_MDNS_BROWSER_SERVICE_TYPE_DPAP);
  connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
  sources     = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);

  g_signal_connect (G_OBJECT (browser),
                    "service-added",
                    G_CALLBACK (grl_dpap_service_added_cb),
                    (gpointer) plugin);

  g_signal_connect (G_OBJECT (browser),
                    "service-removed",
                    G_CALLBACK (grl_dpap_service_removed_cb),
                    (gpointer) plugin);

  if (!dmap_mdns_browser_start (browser, &error)) {
    GRL_DEBUG ("error starting browser. code: %d message: %s",
               error->code,
               error->message);
    g_error_free (error);

    g_hash_table_unref (connections);
    g_hash_table_unref (sources);
    g_object_unref (browser);
    return FALSE;
  }

  return TRUE;
}