/* do not call brasero_*_start() at nautilus startup, they are very expensive;
 * lazily initialize those instead */
static void
ensure_initialized ()
{
	static gboolean initialized = FALSE;

	if (!initialized) {
		GSettings *settings;

		settings = g_settings_new (BRASERO_SCHEMA);
		if (g_settings_get_boolean (settings, BRASERO_PROPS_NAUTILUS_EXT_DEBUG)) {
			brasero_media_library_set_debug (TRUE);
			brasero_burn_library_set_debug (TRUE);
		}
		g_object_unref (settings);

		brasero_media_library_start ();
		brasero_burn_library_start (NULL, NULL);

		DEBUG_PRINT ("Libbrasero-media started\n");
		initialized = TRUE;
	}
}
static void
impl_activate (RBPlugin *plugin,
	       RBShell  *shell)
{
	RBDiscRecorderPlugin *pi = RB_DISC_RECORDER_PLUGIN (plugin);
	GtkUIManager         *uimanager = NULL;
	GtkAction            *action;
	int                   i;

	pi->enabled = TRUE;

	rb_debug ("RBDiscRecorderPlugin activating");

	brasero_media_library_start ();

	pi->shell = shell;

	g_object_get (shell,
		      "ui-manager", &uimanager,
		      NULL);

	g_signal_connect_object (G_OBJECT (shell),
				 "notify::selected-source",
				 G_CALLBACK (shell_selected_source_notify_cb),
				 pi, 0);

	/* add UI */
	pi->action_group = gtk_action_group_new ("DiscRecorderActions");
	gtk_action_group_set_translation_domain (pi->action_group,
						 GETTEXT_PACKAGE);
	gtk_action_group_add_actions (pi->action_group,
				      rb_disc_recorder_plugin_actions, G_N_ELEMENTS (rb_disc_recorder_plugin_actions),
				      pi);
	gtk_ui_manager_insert_action_group (uimanager, pi->action_group, 0);
	pi->ui_merge_id = gtk_ui_manager_new_merge_id (uimanager);
	for (i = 0; i < G_N_ELEMENTS (ui_paths); i++) {
		if (ui_paths[i].for_burn)
			gtk_ui_manager_add_ui (uimanager,
					       pi->ui_merge_id,
					       ui_paths[i].path,
					       "MusicPlaylistBurnToDiscPlaylistMenu",
					       "MusicPlaylistBurnToDiscPlaylist",
					       GTK_UI_MANAGER_AUTO,
					       FALSE);
		if (ui_paths[i].for_copy)
			gtk_ui_manager_add_ui (uimanager,
					       pi->ui_merge_id,
					       ui_paths[i].path,
					       "MusicAudioCDDuplicateMenu",
					       "MusicAudioCDDuplicate",
					       GTK_UI_MANAGER_AUTO,
					       FALSE);
	}
	g_object_unref (uimanager);

        action = gtk_action_group_get_action (pi->action_group, "MusicPlaylistBurnToDiscPlaylist");
	/* Translators: this is the toolbar button label for */
	/* Create Audio CD action                            */
	g_object_set (action, "short-label", _("Burn"), NULL);

        action = gtk_action_group_get_action (pi->action_group,
					      "MusicAudioCDDuplicate");
	/* Translators: this is the toolbar button label for */
	/* Duplicate Audio CD action                         */
	g_object_set (action, "short-label", _("Copy CD"), NULL);

	update_source (pi, shell);
}