[Xfce4-commits] <xfmpc:master> Delete files generated by valac

Vincent Legout noreply at xfce.org
Sun Jan 24 07:04:02 CET 2010


Updating branch refs/heads/master
         to ff50e3f875d4b89e661a47e0fc309f92189a2d19 (commit)
       from baef12168ff7fe39265aa28aa3e96fd3014e2e18 (commit)

commit ff50e3f875d4b89e661a47e0fc309f92189a2d19
Author: Vincent Legout <vincent at legout.info>
Date:   Fri Jan 22 16:11:29 2010 +0800

    Delete files generated by valac

 src/dbbrowser.c          | 1003 ----------------------------------------------
 src/extended-interface.c |  569 --------------------------
 src/interface.c          |  561 --------------------------
 src/main-window.c        |  604 ----------------------------
 src/main.c               |  124 ------
 src/playlist.c           |  971 --------------------------------------------
 src/preferences-dialog.c |  569 --------------------------
 src/preferences.c        |  734 ---------------------------------
 src/song-dialog.c        |  246 ------------
 src/statusbar.c          |  160 --------
 src/xfmpc.h              |  304 --------------
 11 files changed, 0 insertions(+), 5845 deletions(-)

diff --git a/src/dbbrowser.c b/src/dbbrowser.c
deleted file mode 100644
index 8ca90ea..0000000
--- a/src/dbbrowser.c
+++ /dev/null
@@ -1,1003 +0,0 @@
-/*
- *  Copyright (c) 2009 Mike Massonnet <mmassonnet at xfce.org>
- *  Copyright (c) 2009 Vincent Legout <vincent at xfce.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include <mpdclient.h>
-#include <stdlib.h>
-#include <string.h>
-#include <float.h>
-#include <math.h>
-#include <gdk-pixbuf/gdk-pixdata.h>
-#include <pango/pango.h>
-#include <gdk/gdk.h>
-#include <glib/gi18n-lib.h>
-
-
-#define XFMPC_TYPE_DBBROWSER (xfmpc_dbbrowser_get_type ())
-#define XFMPC_DBBROWSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowser))
-#define XFMPC_DBBROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowserClass))
-#define XFMPC_IS_DBBROWSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_DBBROWSER))
-#define XFMPC_IS_DBBROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_DBBROWSER))
-#define XFMPC_DBBROWSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowserClass))
-
-typedef struct _XfmpcDbbrowser XfmpcDbbrowser;
-typedef struct _XfmpcDbbrowserClass XfmpcDbbrowserClass;
-typedef struct _XfmpcDbbrowserPrivate XfmpcDbbrowserPrivate;
-
-#define XFMPC_TYPE_PREFERENCES (xfmpc_preferences_get_type ())
-#define XFMPC_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferences))
-#define XFMPC_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-#define XFMPC_IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-
-typedef struct _XfmpcPreferences XfmpcPreferences;
-typedef struct _XfmpcPreferencesClass XfmpcPreferencesClass;
-
-#define XFMPC_DBBROWSER_TYPE_COLUMNS (xfmpc_dbbrowser_columns_get_type ())
-
-#define XFMPC_TYPE_PLAYLIST (xfmpc_playlist_get_type ())
-#define XFMPC_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PLAYLIST, XfmpcPlaylist))
-#define XFMPC_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PLAYLIST, XfmpcPlaylistClass))
-#define XFMPC_IS_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PLAYLIST))
-#define XFMPC_IS_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PLAYLIST))
-#define XFMPC_PLAYLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PLAYLIST, XfmpcPlaylistClass))
-
-typedef struct _XfmpcPlaylist XfmpcPlaylist;
-typedef struct _XfmpcPlaylistClass XfmpcPlaylistClass;
-
-struct _XfmpcDbbrowser {
-	GtkVBox parent_instance;
-	XfmpcDbbrowserPrivate * priv;
-};
-
-struct _XfmpcDbbrowserClass {
-	GtkVBoxClass parent_class;
-};
-
-struct _XfmpcDbbrowserPrivate {
-	XfmpcMpdclient* mpdclient;
-	XfmpcPreferences* preferences;
-	GtkListStore* store;
-	GtkTreeView* treeview;
-	GtkMenu* menu;
-	GtkEntry* search_entry;
-	GtkImageMenuItem* mi_browse;
-	char* wdir;
-	char* last_wdir;
-	gboolean is_searching;
-	guint search_timeout;
-};
-
-typedef enum  {
-	XFMPC_DBBROWSER_COLUMNS_COLUMN_ID,
-	XFMPC_DBBROWSER_COLUMNS_COLUMN_PIXBUF,
-	XFMPC_DBBROWSER_COLUMNS_COLUMN_FILENAME,
-	XFMPC_DBBROWSER_COLUMNS_COLUMN_BASENAME,
-	XFMPC_DBBROWSER_COLUMNS_COLUMN_IS_DIR,
-	XFMPC_DBBROWSER_COLUMNS_COLUMN_WEIGHT,
-	XFMPC_DBBROWSER_COLUMNS_N_COLUMNS
-} XfmpcDbbrowserColumns;
-
-
-static gpointer xfmpc_dbbrowser_parent_class = NULL;
-
-GType xfmpc_dbbrowser_get_type (void);
-GType xfmpc_preferences_get_type (void);
-#define XFMPC_DBBROWSER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowserPrivate))
-enum  {
-	XFMPC_DBBROWSER_DUMMY_PROPERTY
-};
-static GType xfmpc_dbbrowser_columns_get_type (void);
-GType xfmpc_playlist_get_type (void);
-static void xfmpc_dbbrowser_clear (XfmpcDbbrowser* self);
-gboolean xfmpc_dbbrowser_wdir_is_root (XfmpcDbbrowser* self);
-char* xfmpc_dbbrowser_get_parent_wdir (XfmpcDbbrowser* self);
-void xfmpc_dbbrowser_append (XfmpcDbbrowser* self, const char* filename, const char* basename, gboolean is_dir, gboolean is_bold);
-gboolean xfmpc_playlist_has_filename (XfmpcPlaylist* self, const char* filename, gboolean is_dir);
-void xfmpc_dbbrowser_reload (XfmpcDbbrowser* self);
-void xfmpc_dbbrowser_set_wdir (XfmpcDbbrowser* self, const char* dir);
-static void _g_list_free_gtk_tree_path_free (GList* self);
-void xfmpc_dbbrowser_add_selected_rows (XfmpcDbbrowser* self);
-void xfmpc_dbbrowser_search (XfmpcDbbrowser* self, const char* query);
-static void xfmpc_dbbrowser_menu_popup (XfmpcDbbrowser* self);
-static void xfmpc_dbbrowser_cb_playlist_changed (XfmpcDbbrowser* self);
-static gboolean xfmpc_dbbrowser_cb_popup_menu (XfmpcDbbrowser* self);
-static gboolean xfmpc_dbbrowser_cb_key_pressed (XfmpcDbbrowser* self, const GdkEventKey* event);
-static gboolean xfmpc_dbbrowser_cb_button_released (XfmpcDbbrowser* self, const GdkEventButton* event);
-static void xfmpc_dbbrowser_cb_row_activated (XfmpcDbbrowser* self, const GtkTreePath* path, GtkTreeViewColumn* column);
-static void xfmpc_dbbrowser_cb_replace_with_selected_rows (XfmpcDbbrowser* self);
-static void xfmpc_dbbrowser_cb_browse (XfmpcDbbrowser* self);
-static void xfmpc_dbbrowser_cb_search_entry_activated (XfmpcDbbrowser* self);
-static gboolean xfmpc_dbbrowser_cb_search_entry_key_released (XfmpcDbbrowser* self, const GdkEventKey* event);
-static gboolean xfmpc_dbbrowser_timeout_search (XfmpcDbbrowser* self);
-static gboolean _xfmpc_dbbrowser_timeout_search_gsource_func (gpointer self);
-static void xfmpc_dbbrowser_cb_search_entry_changed (XfmpcDbbrowser* self);
-XfmpcDbbrowser* xfmpc_dbbrowser_new (void);
-XfmpcDbbrowser* xfmpc_dbbrowser_construct (GType object_type);
-XfmpcPreferences* xfmpc_preferences_get_default (void);
-const char* xfmpc_preferences_get_dbbrowser_last_path (XfmpcPreferences* self);
-static void _xfmpc_dbbrowser_add_selected_rows_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
-static void _xfmpc_dbbrowser_cb_replace_with_selected_rows_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
-static void _xfmpc_dbbrowser_cb_browse_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
-static void _xfmpc_dbbrowser_reload_xfmpc_mpdclient_connected (XfmpcMpdclient* _sender, gpointer self);
-static void _xfmpc_dbbrowser_reload_xfmpc_mpdclient_database_changed (XfmpcMpdclient* _sender, gpointer self);
-static void _xfmpc_dbbrowser_cb_playlist_changed_xfmpc_mpdclient_playlist_changed (XfmpcMpdclient* _sender, gpointer self);
-static void _xfmpc_dbbrowser_cb_row_activated_gtk_tree_view_row_activated (GtkTreeView* _sender, const GtkTreePath* path, GtkTreeViewColumn* column, gpointer self);
-static gboolean _xfmpc_dbbrowser_cb_key_pressed_gtk_widget_key_press_event (GtkWidget* _sender, const GdkEventKey* event, gpointer self);
-static gboolean _xfmpc_dbbrowser_cb_button_released_gtk_widget_button_press_event (GtkWidget* _sender, const GdkEventButton* event, gpointer self);
-static gboolean _xfmpc_dbbrowser_cb_popup_menu_gtk_widget_popup_menu (GtkWidget* _sender, gpointer self);
-static void _xfmpc_dbbrowser_cb_search_entry_activated_gtk_entry_activate (GtkEntry* _sender, gpointer self);
-static gboolean _xfmpc_dbbrowser_cb_search_entry_key_released_gtk_widget_key_release_event (GtkWidget* _sender, const GdkEventKey* event, gpointer self);
-static void _xfmpc_dbbrowser_cb_search_entry_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self);
-static void _xfmpc_dbbrowser_reload_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
-static GObject * xfmpc_dbbrowser_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
-static void xfmpc_dbbrowser_finalize (GObject* obj);
-static int _vala_strcmp0 (const char * str1, const char * str2);
-
-
-
-
-static GType xfmpc_dbbrowser_columns_get_type (void) {
-	static GType xfmpc_dbbrowser_columns_type_id = 0;
-	if (G_UNLIKELY (xfmpc_dbbrowser_columns_type_id == 0)) {
-		static const GEnumValue values[] = {{XFMPC_DBBROWSER_COLUMNS_COLUMN_ID, "XFMPC_DBBROWSER_COLUMNS_COLUMN_ID", "column-id"}, {XFMPC_DBBROWSER_COLUMNS_COLUMN_PIXBUF, "XFMPC_DBBROWSER_COLUMNS_COLUMN_PIXBUF", "column-pixbuf"}, {XFMPC_DBBROWSER_COLUMNS_COLUMN_FILENAME, "XFMPC_DBBROWSER_COLUMNS_COLUMN_FILENAME", "column-filename"}, {XFMPC_DBBROWSER_COLUMNS_COLUMN_BASENAME, "XFMPC_DBBROWSER_COLUMNS_COLUMN_BASENAME", "column-basename"}, {XFMPC_DBBROWSER_COLUMNS_COLUMN_IS_DIR, "XFMPC_DBBROWSER_COLUMNS_COLUMN_IS_DIR", "column-is-dir"}, {XFMPC_DBBROWSER_COLUMNS_COLUMN_WEIGHT, "XFMPC_DBBROWSER_COLUMNS_COLUMN_WEIGHT", "column-weight"}, {XFMPC_DBBROWSER_COLUMNS_N_COLUMNS, "XFMPC_DBBROWSER_COLUMNS_N_COLUMNS", "n-columns"}, {0, NULL, NULL}};
-		xfmpc_dbbrowser_columns_type_id = g_enum_register_static ("XfmpcDbbrowserColumns", values);
-	}
-	return xfmpc_dbbrowser_columns_type_id;
-}
-
-
-void xfmpc_dbbrowser_reload (XfmpcDbbrowser* self) {
-	char* filename;
-	char* basename;
-	gboolean is_dir;
-	gboolean is_bold;
-	gint i;
-	XfmpcPlaylist* _tmp0_;
-	XfmpcPlaylist* playlist;
-	g_return_if_fail (self != NULL);
-	filename = NULL;
-	basename = NULL;
-	is_dir = FALSE;
-	is_bold = FALSE;
-	i = 0;
-	_tmp0_ = NULL;
-	playlist = (_tmp0_ = XFMPC_PLAYLIST (g_object_get_data ((GObject*) self, "XfmpcPlaylist")), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	if (self->priv->is_searching) {
-		filename = (g_free (filename), NULL);
-		basename = (g_free (basename), NULL);
-		(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
-		return;
-	}
-	xfmpc_dbbrowser_clear (self);
-	if (!xfmpc_mpdclient_is_connected (self->priv->mpdclient)) {
-		filename = (g_free (filename), NULL);
-		basename = (g_free (basename), NULL);
-		(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
-		return;
-	}
-	if (!xfmpc_dbbrowser_wdir_is_root (self)) {
-		char* _tmp1_;
-		_tmp1_ = NULL;
-		filename = (_tmp1_ = xfmpc_dbbrowser_get_parent_wdir (self), filename = (g_free (filename), NULL), _tmp1_);
-		xfmpc_dbbrowser_append (self, filename, "..", TRUE, FALSE);
-		i++;
-	}
-	while (TRUE) {
-		if (!xfmpc_mpdclient_database_read (self->priv->mpdclient, self->priv->wdir, &filename, &basename, &is_dir)) {
-			break;
-		}
-		is_bold = xfmpc_playlist_has_filename (playlist, filename, is_dir);
-		xfmpc_dbbrowser_append (self, filename, basename, is_dir, is_bold);
-		if (g_utf8_collate (filename, self->priv->last_wdir) == 0) {
-			GtkTreePath* path;
-			path = gtk_tree_path_new_from_indices (i, -1, -1);
-			gtk_tree_view_set_cursor (self->priv->treeview, path, NULL, FALSE);
-			gtk_tree_view_scroll_to_cell (self->priv->treeview, path, NULL, TRUE, (float) 0.10, (float) 0);
-			i = -1;
-			(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-		} else {
-			i++;
-		}
-	}
-	filename = (g_free (filename), NULL);
-	basename = (g_free (basename), NULL);
-	(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
-}
-
-
-gboolean xfmpc_dbbrowser_wdir_is_root (XfmpcDbbrowser* self) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	result = _vala_strcmp0 (self->priv->wdir, "") == 0;
-	return result;
-}
-
-
-char* xfmpc_dbbrowser_get_parent_wdir (XfmpcDbbrowser* self) {
-	char* result;
-	const char* _tmp0_;
-	char* filename;
-	g_return_val_if_fail (self != NULL, NULL);
-	_tmp0_ = NULL;
-	filename = (_tmp0_ = strstr (self->priv->wdir, "/"), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_));
-	if (filename == NULL) {
-		result = g_strdup ("");
-		filename = (g_free (filename), NULL);
-		return result;
-	} else {
-		result = g_path_get_dirname (self->priv->wdir);
-		filename = (g_free (filename), NULL);
-		return result;
-	}
-	filename = (g_free (filename), NULL);
-}
-
-
-void xfmpc_dbbrowser_append (XfmpcDbbrowser* self, const char* filename, const char* basename, gboolean is_dir, gboolean is_bold) {
-	GtkTreeIter iter = {0};
-	const char* _tmp0_;
-	GdkPixbuf* pixbuf;
-	PangoWeight _tmp1_;
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (filename != NULL);
-	g_return_if_fail (basename != NULL);
-	_tmp0_ = NULL;
-	if (is_dir) {
-		_tmp0_ = GTK_STOCK_DIRECTORY;
-	} else {
-		_tmp0_ = GTK_STOCK_FILE;
-	}
-	pixbuf = gtk_widget_render_icon ((GtkWidget*) self->priv->treeview, _tmp0_, GTK_ICON_SIZE_MENU, NULL);
-	gtk_list_store_append (self->priv->store, &iter);
-	_tmp1_ = 0;
-	if (is_bold) {
-		_tmp1_ = PANGO_WEIGHT_BOLD;
-	} else {
-		_tmp1_ = PANGO_WEIGHT_NORMAL;
-	}
-	gtk_list_store_set (self->priv->store, &iter, XFMPC_DBBROWSER_COLUMNS_COLUMN_PIXBUF, pixbuf, XFMPC_DBBROWSER_COLUMNS_COLUMN_FILENAME, filename, XFMPC_DBBROWSER_COLUMNS_COLUMN_BASENAME, basename, XFMPC_DBBROWSER_COLUMNS_COLUMN_IS_DIR, is_dir, XFMPC_DBBROWSER_COLUMNS_COLUMN_WEIGHT, _tmp1_, -1, -1);
-	(pixbuf == NULL) ? NULL : (pixbuf = (g_object_unref (pixbuf), NULL));
-}
-
-
-void xfmpc_dbbrowser_set_wdir (XfmpcDbbrowser* self, const char* dir) {
-	char* _tmp1_;
-	const char* _tmp0_;
-	char* _tmp3_;
-	const char* _tmp2_;
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (dir != NULL);
-	_tmp1_ = NULL;
-	_tmp0_ = NULL;
-	self->priv->last_wdir = (_tmp1_ = (_tmp0_ = self->priv->wdir, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->last_wdir = (g_free (self->priv->last_wdir), NULL), _tmp1_);
-	_tmp3_ = NULL;
-	_tmp2_ = NULL;
-	self->priv->wdir = (_tmp3_ = (_tmp2_ = dir, (_tmp2_ == NULL) ? NULL : g_strdup (_tmp2_)), self->priv->wdir = (g_free (self->priv->wdir), NULL), _tmp3_);
-}
-
-
-static void _g_list_free_gtk_tree_path_free (GList* self) {
-	g_list_foreach (self, (GFunc) gtk_tree_path_free, NULL);
-	g_list_free (self);
-}
-
-
-void xfmpc_dbbrowser_add_selected_rows (XfmpcDbbrowser* self) {
-	GtkTreeModel* _tmp0_;
-	GtkTreeModel* model;
-	GtkTreeIter iter = {0};
-	char* filename;
-	GtkTreeModel* _tmp4_;
-	GtkTreeModel* _tmp3_;
-	GList* _tmp2_;
-	GtkTreeModel* _tmp1_;
-	GList* list;
-	g_return_if_fail (self != NULL);
-	_tmp0_ = NULL;
-	model = (_tmp0_ = (GtkTreeModel*) self->priv->store, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	filename = g_strdup ("");
-	_tmp4_ = NULL;
-	_tmp3_ = NULL;
-	_tmp2_ = NULL;
-	_tmp1_ = NULL;
-	list = (_tmp2_ = gtk_tree_selection_get_selected_rows (gtk_tree_view_get_selection (self->priv->treeview), &_tmp1_), model = (_tmp3_ = (_tmp4_ = _tmp1_, (_tmp4_ == NULL) ? NULL : g_object_ref (_tmp4_)), (model == NULL) ? NULL : (model = (g_object_unref (model), NULL)), _tmp3_), _tmp2_);
-	{
-		GList* path_collection;
-		GList* path_it;
-		path_collection = list;
-		for (path_it = path_collection; path_it != NULL; path_it = path_it->next) {
-			const GtkTreePath* _tmp5_;
-			GtkTreePath* path;
-			_tmp5_ = NULL;
-			path = (_tmp5_ = (const GtkTreePath*) path_it->data, (_tmp5_ == NULL) ? NULL : gtk_tree_path_copy (_tmp5_));
-			{
-				if (gtk_tree_model_get_iter (model, &iter, path)) {
-					gtk_tree_model_get (model, &iter, XFMPC_DBBROWSER_COLUMNS_COLUMN_FILENAME, &filename, -1, -1);
-					xfmpc_mpdclient_queue_add (self->priv->mpdclient, filename);
-				}
-				(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-			}
-		}
-	}
-	xfmpc_mpdclient_queue_commit (self->priv->mpdclient);
-	(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-	filename = (g_free (filename), NULL);
-	(list == NULL) ? NULL : (list = (_g_list_free_gtk_tree_path_free (list), NULL));
-}
-
-
-void xfmpc_dbbrowser_search (XfmpcDbbrowser* self, const char* query) {
-	char* filename;
-	char* basename;
-	gboolean is_bold;
-	gint i;
-	XfmpcPlaylist* _tmp0_;
-	XfmpcPlaylist* playlist;
-	gboolean no_result_buf;
-	gboolean no_result;
-	GdkColor color = {0};
-	gboolean _tmp1_;
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (query != NULL);
-	filename = NULL;
-	basename = NULL;
-	is_bold = FALSE;
-	i = 0;
-	_tmp0_ = NULL;
-	playlist = (_tmp0_ = XFMPC_PLAYLIST (g_object_get_data ((GObject*) self, "XfmpcPlaylist")), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	if (!xfmpc_mpdclient_is_connected (self->priv->mpdclient)) {
-		filename = (g_free (filename), NULL);
-		basename = (g_free (basename), NULL);
-		(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
-		return;
-	}
-	self->priv->is_searching = TRUE;
-	xfmpc_dbbrowser_clear (self);
-	while (TRUE) {
-		if (!xfmpc_mpdclient_database_search (self->priv->mpdclient, query, &filename, &basename)) {
-			break;
-		}
-		is_bold = xfmpc_playlist_has_filename (playlist, filename, FALSE);
-		xfmpc_dbbrowser_append (self, filename, basename, FALSE, is_bold);
-		i++;
-	}
-	no_result_buf = FALSE;
-	no_result = FALSE;
-	gdk_color_parse ("white", &color);
-	color.red = (guint16) 0xFFFF;
-	color.green = (guint16) 0x6666;
-	color.blue = (guint16) 0x6666;
-	if (i == 0) {
-		no_result = TRUE;
-	} else {
-		if (no_result) {
-			no_result = FALSE;
-		}
-	}
-	_tmp1_ = FALSE;
-	if (no_result == no_result_buf) {
-		_tmp1_ = no_result;
-	} else {
-		_tmp1_ = FALSE;
-	}
-	if (_tmp1_) {
-		gtk_widget_modify_bg ((GtkWidget*) self->priv->search_entry, GTK_STATE_NORMAL, &color);
-		gtk_widget_modify_bg ((GtkWidget*) self->priv->search_entry, GTK_STATE_SELECTED, &color);
-	} else {
-		gboolean _tmp2_;
-		_tmp2_ = FALSE;
-		if (no_result == no_result_buf) {
-			_tmp2_ = !no_result;
-		} else {
-			_tmp2_ = FALSE;
-		}
-		if (_tmp2_) {
-			gtk_widget_modify_bg ((GtkWidget*) self->priv->search_entry, GTK_STATE_NORMAL, NULL);
-			gtk_widget_modify_bg ((GtkWidget*) self->priv->search_entry, GTK_STATE_SELECTED, NULL);
-		}
-	}
-	if (i == 0) {
-		gtk_widget_modify_bg ((GtkWidget*) self->priv->search_entry, GTK_STATE_NORMAL, &color);
-		gtk_widget_modify_bg ((GtkWidget*) self->priv->search_entry, GTK_STATE_SELECTED, &color);
-	} else {
-		if (no_result) {
-			gtk_widget_modify_bg ((GtkWidget*) self->priv->search_entry, GTK_STATE_NORMAL, NULL);
-			gtk_widget_modify_bg ((GtkWidget*) self->priv->search_entry, GTK_STATE_SELECTED, NULL);
-		}
-	}
-	filename = (g_free (filename), NULL);
-	basename = (g_free (basename), NULL);
-	(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
-}
-
-
-static void xfmpc_dbbrowser_clear (XfmpcDbbrowser* self) {
-	g_return_if_fail (self != NULL);
-	gtk_list_store_clear (self->priv->store);
-}
-
-
-static void xfmpc_dbbrowser_menu_popup (XfmpcDbbrowser* self) {
-	GtkTreeSelection* _tmp0_;
-	GtkTreeSelection* selection;
-	gint count;
-	g_return_if_fail (self != NULL);
-	_tmp0_ = NULL;
-	selection = (_tmp0_ = gtk_tree_view_get_selection (self->priv->treeview), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	count = gtk_tree_selection_count_selected_rows (selection);
-	if (self->priv->is_searching) {
-		gboolean _tmp1_;
-		gtk_widget_show ((GtkWidget*) self->priv->mi_browse);
-		_tmp1_ = FALSE;
-		if (count == 1) {
-			_tmp1_ = TRUE;
-		} else {
-			_tmp1_ = FALSE;
-		}
-		gtk_widget_set_sensitive ((GtkWidget*) self->priv->mi_browse, _tmp1_);
-	} else {
-		gtk_widget_hide ((GtkWidget*) self->priv->mi_browse);
-	}
-	gtk_menu_popup (self->priv->menu, NULL, NULL, NULL, NULL, (guint) 0, gtk_get_current_event_time ());
-	(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-}
-
-
-/*
- * Signal callbacks
- */
-static void xfmpc_dbbrowser_cb_playlist_changed (XfmpcDbbrowser* self) {
-	GtkTreeModel* _tmp0_;
-	GtkTreeModel* model;
-	GtkTreeIter iter = {0};
-	char* filename;
-	gboolean is_bold;
-	gboolean is_dir;
-	XfmpcPlaylist* _tmp1_;
-	XfmpcPlaylist* playlist;
-	g_return_if_fail (self != NULL);
-	_tmp0_ = NULL;
-	model = (_tmp0_ = (GtkTreeModel*) self->priv->store, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	filename = g_strdup ("");
-	is_bold = FALSE;
-	is_dir = FALSE;
-	_tmp1_ = NULL;
-	playlist = (_tmp1_ = XFMPC_PLAYLIST (g_object_get_data ((GObject*) self, "XfmpcPlaylist")), (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_));
-	if (!gtk_tree_model_get_iter_first (model, &iter)) {
-		(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-		filename = (g_free (filename), NULL);
-		(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
-		return;
-	}
-	{
-		gboolean _tmp2_;
-		_tmp2_ = TRUE;
-		while (TRUE) {
-			PangoWeight _tmp3_;
-			if (!_tmp2_) {
-				if (!gtk_tree_model_iter_next (model, &iter)) {
-					break;
-				}
-			}
-			_tmp2_ = FALSE;
-			gtk_tree_model_get (model, &iter, XFMPC_DBBROWSER_COLUMNS_COLUMN_FILENAME, &filename, XFMPC_DBBROWSER_COLUMNS_COLUMN_IS_DIR, &is_dir, -1, -1);
-			is_bold = xfmpc_playlist_has_filename (playlist, filename, is_dir);
-			_tmp3_ = 0;
-			if (is_bold) {
-				_tmp3_ = PANGO_WEIGHT_BOLD;
-			} else {
-				_tmp3_ = PANGO_WEIGHT_NORMAL;
-			}
-			gtk_list_store_set (self->priv->store, &iter, XFMPC_DBBROWSER_COLUMNS_COLUMN_WEIGHT, _tmp3_, -1, -1);
-		}
-	}
-	(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-	filename = (g_free (filename), NULL);
-	(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
-}
-
-
-static gboolean xfmpc_dbbrowser_cb_popup_menu (XfmpcDbbrowser* self) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	xfmpc_dbbrowser_menu_popup (self);
-	result = TRUE;
-	return result;
-}
-
-
-static gboolean xfmpc_dbbrowser_cb_key_pressed (XfmpcDbbrowser* self, const GdkEventKey* event) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	if ((*event).type != GDK_KEY_PRESS) {
-		result = FALSE;
-		return result;
-	}
-	switch ((*event).keyval) {
-		case 0xff0d:
-		{
-			GtkTreeSelection* _tmp0_;
-			GtkTreeSelection* selection;
-			_tmp0_ = NULL;
-			selection = (_tmp0_ = gtk_tree_view_get_selection (self->priv->treeview), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-			if (gtk_tree_selection_count_selected_rows (selection) > 1) {
-				xfmpc_dbbrowser_add_selected_rows (self);
-			} else {
-				result = FALSE;
-				(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-				return result;
-			}
-			(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-			break;
-		}
-		case 0xff08:
-		{
-			char* filename;
-			filename = xfmpc_dbbrowser_get_parent_wdir (self);
-			xfmpc_dbbrowser_set_wdir (self, filename);
-			xfmpc_dbbrowser_reload (self);
-			filename = (g_free (filename), NULL);
-			break;
-		}
-		default:
-		{
-			result = FALSE;
-			return result;
-		}
-	}
-	result = TRUE;
-	return result;
-}
-
-
-static gboolean xfmpc_dbbrowser_cb_button_released (XfmpcDbbrowser* self, const GdkEventButton* event) {
-	gboolean result;
-	gboolean _tmp0_;
-	GtkTreePath* path;
-	GtkTreeSelection* _tmp1_;
-	GtkTreeSelection* selection;
-	GtkTreePath* _tmp4_;
-	gboolean _tmp3_;
-	GtkTreePath* _tmp2_;
-	g_return_val_if_fail (self != NULL, FALSE);
-	_tmp0_ = FALSE;
-	if ((*event).type != GDK_BUTTON_PRESS) {
-		_tmp0_ = TRUE;
-	} else {
-		_tmp0_ = (*event).button != 3;
-	}
-	if (_tmp0_) {
-		result = FALSE;
-		return result;
-	}
-	path = NULL;
-	_tmp1_ = NULL;
-	selection = (_tmp1_ = gtk_tree_view_get_selection (self->priv->treeview), (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_));
-	if (gtk_tree_selection_count_selected_rows (selection) < 1) {
-		result = TRUE;
-		(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-		(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-		return result;
-	}
-	_tmp4_ = NULL;
-	_tmp2_ = NULL;
-	if ((_tmp3_ = gtk_tree_view_get_path_at_pos (self->priv->treeview, (gint) (*event).x, (gint) (*event).y, &_tmp2_, NULL, NULL, NULL), path = (_tmp4_ = _tmp2_, (path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL)), _tmp4_), _tmp3_)) {
-		if (!gtk_tree_selection_path_is_selected (selection, path)) {
-			gtk_tree_selection_unselect_all (selection);
-			gtk_tree_selection_select_path (selection, path);
-		}
-	}
-	xfmpc_dbbrowser_menu_popup (self);
-	result = TRUE;
-	(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-	(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-	return result;
-}
-
-
-static void xfmpc_dbbrowser_cb_row_activated (XfmpcDbbrowser* self, const GtkTreePath* path, GtkTreeViewColumn* column) {
-	const GtkTreePath* _tmp0_;
-	GtkTreePath* ppath;
-	GtkTreeModel* _tmp1_;
-	GtkTreeModel* model;
-	GtkTreeIter iter = {0};
-	char* filename;
-	gboolean is_dir;
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (path != NULL);
-	g_return_if_fail (column != NULL);
-	_tmp0_ = NULL;
-	ppath = (_tmp0_ = path, (_tmp0_ == NULL) ? NULL : gtk_tree_path_copy (_tmp0_));
-	_tmp1_ = NULL;
-	model = (_tmp1_ = (GtkTreeModel*) self->priv->store, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_));
-	filename = g_strdup ("");
-	is_dir = FALSE;
-	if (!gtk_tree_model_get_iter (model, &iter, ppath)) {
-		(ppath == NULL) ? NULL : (ppath = (gtk_tree_path_free (ppath), NULL));
-		(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-		filename = (g_free (filename), NULL);
-		return;
-	}
-	gtk_tree_model_get (model, &iter, XFMPC_DBBROWSER_COLUMNS_COLUMN_FILENAME, &filename, XFMPC_DBBROWSER_COLUMNS_COLUMN_IS_DIR, &is_dir, -1, -1);
-	if (is_dir) {
-		xfmpc_dbbrowser_set_wdir (self, filename);
-		xfmpc_dbbrowser_reload (self);
-	} else {
-		xfmpc_mpdclient_queue_add (self->priv->mpdclient, filename);
-		xfmpc_mpdclient_queue_commit (self->priv->mpdclient);
-	}
-	(ppath == NULL) ? NULL : (ppath = (gtk_tree_path_free (ppath), NULL));
-	(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-	filename = (g_free (filename), NULL);
-}
-
-
-static void xfmpc_dbbrowser_cb_replace_with_selected_rows (XfmpcDbbrowser* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_mpdclient_queue_clear (self->priv->mpdclient);
-	xfmpc_dbbrowser_add_selected_rows (self);
-}
-
-
-static void xfmpc_dbbrowser_cb_browse (XfmpcDbbrowser* self) {
-	GtkTreeModel* _tmp0_;
-	GtkTreeModel* model;
-	GtkTreeIter iter = {0};
-	GtkTreeSelection* _tmp1_;
-	GtkTreeSelection* selection;
-	GtkTreeModel* _tmp5_;
-	GtkTreeModel* _tmp4_;
-	GList* _tmp3_;
-	GtkTreeModel* _tmp2_;
-	GList* list;
-	const GtkTreePath* _tmp6_;
-	GtkTreePath* path;
-	g_return_if_fail (self != NULL);
-	_tmp0_ = NULL;
-	model = (_tmp0_ = (GtkTreeModel*) self->priv->store, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	_tmp1_ = NULL;
-	selection = (_tmp1_ = gtk_tree_view_get_selection (self->priv->treeview), (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_));
-	if (gtk_tree_selection_count_selected_rows (selection) > 1) {
-		(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-		(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-		return;
-	}
-	_tmp5_ = NULL;
-	_tmp4_ = NULL;
-	_tmp3_ = NULL;
-	_tmp2_ = NULL;
-	list = (_tmp3_ = gtk_tree_selection_get_selected_rows (selection, &_tmp2_), model = (_tmp4_ = (_tmp5_ = _tmp2_, (_tmp5_ == NULL) ? NULL : g_object_ref (_tmp5_)), (model == NULL) ? NULL : (model = (g_object_unref (model), NULL)), _tmp4_), _tmp3_);
-	_tmp6_ = NULL;
-	path = (_tmp6_ = (const GtkTreePath*) g_list_nth_data (list, (guint) 0), (_tmp6_ == NULL) ? NULL : gtk_tree_path_copy (_tmp6_));
-	if (gtk_tree_model_get_iter (model, &iter, path)) {
-		char* filename;
-		char* dir;
-		filename = NULL;
-		gtk_tree_model_get (model, &iter, XFMPC_DBBROWSER_COLUMNS_COLUMN_FILENAME, &filename, -1, -1);
-		dir = g_path_get_dirname (filename);
-		xfmpc_dbbrowser_set_wdir (self, dir);
-		xfmpc_dbbrowser_reload (self);
-		filename = (g_free (filename), NULL);
-		dir = (g_free (dir), NULL);
-	}
-	(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-	(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-	(list == NULL) ? NULL : (list = (_g_list_free_gtk_tree_path_free (list), NULL));
-	(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-}
-
-
-static void xfmpc_dbbrowser_cb_search_entry_activated (XfmpcDbbrowser* self) {
-	const char* _tmp0_;
-	char* entry_text;
-	g_return_if_fail (self != NULL);
-	_tmp0_ = NULL;
-	entry_text = (_tmp0_ = gtk_entry_get_text (self->priv->search_entry), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_));
-	if (_vala_strcmp0 (entry_text, "") == 0) {
-		self->priv->is_searching = FALSE;
-		xfmpc_dbbrowser_reload (self);
-		/* revert possible previous applied color */
-		gtk_widget_modify_bg ((GtkWidget*) self->priv->search_entry, GTK_STATE_NORMAL, NULL);
-		gtk_widget_modify_bg ((GtkWidget*) self->priv->search_entry, GTK_STATE_SELECTED, NULL);
-		entry_text = (g_free (entry_text), NULL);
-		return;
-	}
-	xfmpc_dbbrowser_search (self, entry_text);
-	entry_text = (g_free (entry_text), NULL);
-}
-
-
-static gboolean xfmpc_dbbrowser_cb_search_entry_key_released (XfmpcDbbrowser* self, const GdkEventKey* event) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	if ((*event).type != GDK_KEY_RELEASE) {
-		result = FALSE;
-		return result;
-	}
-	/* Escape */
-	if ((*event).keyval == 0xff1b) {
-		gtk_entry_set_text (self->priv->search_entry, "");
-	}
-	result = TRUE;
-	return result;
-}
-
-
-static gboolean _xfmpc_dbbrowser_timeout_search_gsource_func (gpointer self) {
-	return xfmpc_dbbrowser_timeout_search (self);
-}
-
-
-static void xfmpc_dbbrowser_cb_search_entry_changed (XfmpcDbbrowser* self) {
-	g_return_if_fail (self != NULL);
-	if (self->priv->search_timeout > 0) {
-		g_source_remove (self->priv->search_timeout);
-	}
-	self->priv->search_timeout = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 642, _xfmpc_dbbrowser_timeout_search_gsource_func, g_object_ref (self), g_object_unref);
-}
-
-
-static gboolean xfmpc_dbbrowser_timeout_search (XfmpcDbbrowser* self) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	xfmpc_dbbrowser_cb_search_entry_activated (self);
-	result = FALSE;
-	return result;
-}
-
-
-XfmpcDbbrowser* xfmpc_dbbrowser_construct (GType object_type) {
-	XfmpcDbbrowser * self;
-	self = g_object_newv (object_type, 0, NULL);
-	return self;
-}
-
-
-XfmpcDbbrowser* xfmpc_dbbrowser_new (void) {
-	return xfmpc_dbbrowser_construct (XFMPC_TYPE_DBBROWSER);
-}
-
-
-static void _xfmpc_dbbrowser_add_selected_rows_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
-	xfmpc_dbbrowser_add_selected_rows (self);
-}
-
-
-static void _xfmpc_dbbrowser_cb_replace_with_selected_rows_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
-	xfmpc_dbbrowser_cb_replace_with_selected_rows (self);
-}
-
-
-static void _xfmpc_dbbrowser_cb_browse_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
-	xfmpc_dbbrowser_cb_browse (self);
-}
-
-
-static void _xfmpc_dbbrowser_reload_xfmpc_mpdclient_connected (XfmpcMpdclient* _sender, gpointer self) {
-	xfmpc_dbbrowser_reload (self);
-}
-
-
-static void _xfmpc_dbbrowser_reload_xfmpc_mpdclient_database_changed (XfmpcMpdclient* _sender, gpointer self) {
-	xfmpc_dbbrowser_reload (self);
-}
-
-
-static void _xfmpc_dbbrowser_cb_playlist_changed_xfmpc_mpdclient_playlist_changed (XfmpcMpdclient* _sender, gpointer self) {
-	xfmpc_dbbrowser_cb_playlist_changed (self);
-}
-
-
-static void _xfmpc_dbbrowser_cb_row_activated_gtk_tree_view_row_activated (GtkTreeView* _sender, const GtkTreePath* path, GtkTreeViewColumn* column, gpointer self) {
-	xfmpc_dbbrowser_cb_row_activated (self, path, column);
-}
-
-
-static gboolean _xfmpc_dbbrowser_cb_key_pressed_gtk_widget_key_press_event (GtkWidget* _sender, const GdkEventKey* event, gpointer self) {
-	return xfmpc_dbbrowser_cb_key_pressed (self, event);
-}
-
-
-static gboolean _xfmpc_dbbrowser_cb_button_released_gtk_widget_button_press_event (GtkWidget* _sender, const GdkEventButton* event, gpointer self) {
-	return xfmpc_dbbrowser_cb_button_released (self, event);
-}
-
-
-static gboolean _xfmpc_dbbrowser_cb_popup_menu_gtk_widget_popup_menu (GtkWidget* _sender, gpointer self) {
-	return xfmpc_dbbrowser_cb_popup_menu (self);
-}
-
-
-static void _xfmpc_dbbrowser_cb_search_entry_activated_gtk_entry_activate (GtkEntry* _sender, gpointer self) {
-	xfmpc_dbbrowser_cb_search_entry_activated (self);
-}
-
-
-static gboolean _xfmpc_dbbrowser_cb_search_entry_key_released_gtk_widget_key_release_event (GtkWidget* _sender, const GdkEventKey* event, gpointer self) {
-	return xfmpc_dbbrowser_cb_search_entry_key_released (self, event);
-}
-
-
-static void _xfmpc_dbbrowser_cb_search_entry_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self) {
-	xfmpc_dbbrowser_cb_search_entry_changed (self);
-}
-
-
-static void _xfmpc_dbbrowser_reload_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
-	xfmpc_dbbrowser_reload (self);
-}
-
-
-static GObject * xfmpc_dbbrowser_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
-	GObject * obj;
-	XfmpcDbbrowserClass * klass;
-	GObjectClass * parent_class;
-	XfmpcDbbrowser * self;
-	klass = XFMPC_DBBROWSER_CLASS (g_type_class_peek (XFMPC_TYPE_DBBROWSER));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
-	self = XFMPC_DBBROWSER (obj);
-	{
-		char* _tmp1_;
-		const char* _tmp0_;
-		GtkListStore* _tmp4_;
-		GtkTreeView* _tmp5_;
-		GtkCellRendererPixbuf* cell_pixbuf;
-		GtkCellRendererText* cell_text;
-		GtkScrolledWindow* scrolled;
-		GtkMenu* _tmp6_;
-		GtkImageMenuItem* mi;
-		GtkImageMenuItem* _tmp7_;
-		GtkImage* image;
-		GtkImageMenuItem* _tmp8_;
-		GtkImage* _tmp9_;
-		GtkEntry* _tmp10_;
-		self->priv->mpdclient = xfmpc_mpdclient_get_default ();
-		self->priv->preferences = xfmpc_preferences_get_default ();
-		_tmp1_ = NULL;
-		_tmp0_ = NULL;
-		self->priv->wdir = (_tmp1_ = (_tmp0_ = xfmpc_preferences_get_dbbrowser_last_path (self->priv->preferences), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->wdir = (g_free (self->priv->wdir), NULL), _tmp1_);
-		if (self->priv->wdir != NULL) {
-			char* _tmp2_;
-			_tmp2_ = NULL;
-			self->priv->last_wdir = (_tmp2_ = g_strndup (self->priv->wdir, (gsize) g_utf8_strlen (self->priv->wdir, -1)), self->priv->last_wdir = (g_free (self->priv->last_wdir), NULL), _tmp2_);
-		} else {
-			char* _tmp3_;
-			_tmp3_ = NULL;
-			self->priv->last_wdir = (_tmp3_ = g_strdup (""), self->priv->last_wdir = (g_free (self->priv->last_wdir), NULL), _tmp3_);
-		}
-		_tmp4_ = NULL;
-		self->priv->store = (_tmp4_ = gtk_list_store_new ((gint) XFMPC_DBBROWSER_COLUMNS_N_COLUMNS, G_TYPE_INT, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INT, NULL), (self->priv->store == NULL) ? NULL : (self->priv->store = (g_object_unref (self->priv->store), NULL)), _tmp4_);
-		_tmp5_ = NULL;
-		self->priv->treeview = (_tmp5_ = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new ()), (self->priv->treeview == NULL) ? NULL : (self->priv->treeview = (g_object_unref (self->priv->treeview), NULL)), _tmp5_);
-		gtk_tree_selection_set_mode (gtk_tree_view_get_selection (self->priv->treeview), GTK_SELECTION_MULTIPLE);
-		gtk_tree_view_set_rubber_banding (self->priv->treeview, TRUE);
-		gtk_tree_view_set_enable_search (self->priv->treeview, TRUE);
-		gtk_tree_view_set_search_column (self->priv->treeview, (gint) XFMPC_DBBROWSER_COLUMNS_COLUMN_BASENAME);
-		gtk_tree_view_set_headers_visible (self->priv->treeview, FALSE);
-		gtk_tree_view_set_rules_hint (self->priv->treeview, TRUE);
-		gtk_tree_view_set_model (self->priv->treeview, (GtkTreeModel*) self->priv->store);
-		cell_pixbuf = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ());
-		gtk_tree_view_insert_column_with_attributes (self->priv->treeview, -1, "", (GtkCellRenderer*) cell_pixbuf, "pixbuf", XFMPC_DBBROWSER_COLUMNS_COLUMN_PIXBUF, NULL, NULL);
-		cell_text = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
-		g_object_set (cell_text, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
-		gtk_tree_view_insert_column_with_attributes (self->priv->treeview, -1, "Filename", (GtkCellRenderer*) cell_text, "text", XFMPC_DBBROWSER_COLUMNS_COLUMN_BASENAME, "weight", XFMPC_DBBROWSER_COLUMNS_COLUMN_WEIGHT, NULL, NULL);
-		scrolled = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
-		gtk_scrolled_window_set_policy (scrolled, GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
-		_tmp6_ = NULL;
-		self->priv->menu = (_tmp6_ = g_object_ref_sink ((GtkMenu*) gtk_menu_new ()), (self->priv->menu == NULL) ? NULL : (self->priv->menu = (g_object_unref (self->priv->menu), NULL)), _tmp6_);
-		mi = g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_ADD, NULL));
-		gtk_menu_shell_append ((GtkMenuShell*) self->priv->menu, (GtkWidget*) ((GtkMenuItem*) mi));
-		g_signal_connect_object ((GtkMenuItem*) mi, "activate", (GCallback) _xfmpc_dbbrowser_add_selected_rows_gtk_menu_item_activate, self, 0);
-		_tmp7_ = NULL;
-		mi = (_tmp7_ = g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_with_mnemonic (_ ("Replace"))), (mi == NULL) ? NULL : (mi = (g_object_unref (mi), NULL)), _tmp7_);
-		image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CUT, GTK_ICON_SIZE_MENU));
-		gtk_image_menu_item_set_image (mi, (GtkWidget*) image);
-		gtk_menu_shell_append ((GtkMenuShell*) self->priv->menu, (GtkWidget*) ((GtkMenuItem*) mi));
-		g_signal_connect_object ((GtkMenuItem*) mi, "activate", (GCallback) _xfmpc_dbbrowser_cb_replace_with_selected_rows_gtk_menu_item_activate, self, 0);
-		_tmp8_ = NULL;
-		self->priv->mi_browse = (_tmp8_ = g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_with_mnemonic (_ ("Browse"))), (self->priv->mi_browse == NULL) ? NULL : (self->priv->mi_browse = (g_object_unref (self->priv->mi_browse), NULL)), _tmp8_);
-		_tmp9_ = NULL;
-		image = (_tmp9_ = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU)), (image == NULL) ? NULL : (image = (g_object_unref (image), NULL)), _tmp9_);
-		gtk_image_menu_item_set_image (self->priv->mi_browse, (GtkWidget*) image);
-		gtk_menu_shell_append ((GtkMenuShell*) self->priv->menu, (GtkWidget*) ((GtkMenuItem*) self->priv->mi_browse));
-		g_signal_connect_object ((GtkMenuItem*) self->priv->mi_browse, "activate", (GCallback) _xfmpc_dbbrowser_cb_browse_gtk_menu_item_activate, self, 0);
-		gtk_widget_show_all ((GtkWidget*) self->priv->menu);
-		_tmp10_ = NULL;
-		self->priv->search_entry = (_tmp10_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), (self->priv->search_entry == NULL) ? NULL : (self->priv->search_entry = (g_object_unref (self->priv->search_entry), NULL)), _tmp10_);
-		gtk_container_add ((GtkContainer*) scrolled, (GtkWidget*) self->priv->treeview);
-		gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) scrolled, TRUE, TRUE, (guint) 0);
-		gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) self->priv->search_entry, FALSE, FALSE, (guint) 0);
-		/* Signals */
-		g_signal_connect_object (self->priv->mpdclient, "connected", (GCallback) _xfmpc_dbbrowser_reload_xfmpc_mpdclient_connected, self, 0);
-		g_signal_connect_object (self->priv->mpdclient, "database-changed", (GCallback) _xfmpc_dbbrowser_reload_xfmpc_mpdclient_database_changed, self, 0);
-		g_signal_connect_object (self->priv->mpdclient, "playlist-changed", (GCallback) _xfmpc_dbbrowser_cb_playlist_changed_xfmpc_mpdclient_playlist_changed, self, 0);
-		g_signal_connect_object (self->priv->treeview, "row-activated", (GCallback) _xfmpc_dbbrowser_cb_row_activated_gtk_tree_view_row_activated, self, 0);
-		g_signal_connect_object ((GtkWidget*) self->priv->treeview, "key-press-event", (GCallback) _xfmpc_dbbrowser_cb_key_pressed_gtk_widget_key_press_event, self, 0);
-		g_signal_connect_object ((GtkWidget*) self->priv->treeview, "button-press-event", (GCallback) _xfmpc_dbbrowser_cb_button_released_gtk_widget_button_press_event, self, 0);
-		g_signal_connect_object ((GtkWidget*) self->priv->treeview, "popup-menu", (GCallback) _xfmpc_dbbrowser_cb_popup_menu_gtk_widget_popup_menu, self, 0);
-		g_signal_connect_object (self->priv->search_entry, "activate", (GCallback) _xfmpc_dbbrowser_cb_search_entry_activated_gtk_entry_activate, self, 0);
-		g_signal_connect_object ((GtkWidget*) self->priv->search_entry, "key-release-event", (GCallback) _xfmpc_dbbrowser_cb_search_entry_key_released_gtk_widget_key_release_event, self, 0);
-		g_signal_connect_object ((GtkEditable*) self->priv->search_entry, "changed", (GCallback) _xfmpc_dbbrowser_cb_search_entry_changed_gtk_editable_changed, self, 0);
-		g_signal_connect_object ((GObject*) self->priv->preferences, "notify::song-format", (GCallback) _xfmpc_dbbrowser_reload_g_object_notify, self, 0);
-		g_signal_connect_object ((GObject*) self->priv->preferences, "notify::song-format-custom", (GCallback) _xfmpc_dbbrowser_reload_g_object_notify, self, 0);
-		(cell_pixbuf == NULL) ? NULL : (cell_pixbuf = (g_object_unref (cell_pixbuf), NULL));
-		(cell_text == NULL) ? NULL : (cell_text = (g_object_unref (cell_text), NULL));
-		(scrolled == NULL) ? NULL : (scrolled = (g_object_unref (scrolled), NULL));
-		(mi == NULL) ? NULL : (mi = (g_object_unref (mi), NULL));
-		(image == NULL) ? NULL : (image = (g_object_unref (image), NULL));
-	}
-	return obj;
-}
-
-
-static void xfmpc_dbbrowser_class_init (XfmpcDbbrowserClass * klass) {
-	xfmpc_dbbrowser_parent_class = g_type_class_peek_parent (klass);
-	g_type_class_add_private (klass, sizeof (XfmpcDbbrowserPrivate));
-	G_OBJECT_CLASS (klass)->constructor = xfmpc_dbbrowser_constructor;
-	G_OBJECT_CLASS (klass)->finalize = xfmpc_dbbrowser_finalize;
-}
-
-
-static void xfmpc_dbbrowser_instance_init (XfmpcDbbrowser * self) {
-	self->priv = XFMPC_DBBROWSER_GET_PRIVATE (self);
-}
-
-
-static void xfmpc_dbbrowser_finalize (GObject* obj) {
-	XfmpcDbbrowser * self;
-	self = XFMPC_DBBROWSER (obj);
-	(self->priv->store == NULL) ? NULL : (self->priv->store = (g_object_unref (self->priv->store), NULL));
-	(self->priv->treeview == NULL) ? NULL : (self->priv->treeview = (g_object_unref (self->priv->treeview), NULL));
-	(self->priv->menu == NULL) ? NULL : (self->priv->menu = (g_object_unref (self->priv->menu), NULL));
-	(self->priv->search_entry == NULL) ? NULL : (self->priv->search_entry = (g_object_unref (self->priv->search_entry), NULL));
-	(self->priv->mi_browse == NULL) ? NULL : (self->priv->mi_browse = (g_object_unref (self->priv->mi_browse), NULL));
-	self->priv->wdir = (g_free (self->priv->wdir), NULL);
-	self->priv->last_wdir = (g_free (self->priv->last_wdir), NULL);
-	G_OBJECT_CLASS (xfmpc_dbbrowser_parent_class)->finalize (obj);
-}
-
-
-GType xfmpc_dbbrowser_get_type (void) {
-	static GType xfmpc_dbbrowser_type_id = 0;
-	if (xfmpc_dbbrowser_type_id == 0) {
-		static const GTypeInfo g_define_type_info = { sizeof (XfmpcDbbrowserClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) xfmpc_dbbrowser_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (XfmpcDbbrowser), 0, (GInstanceInitFunc) xfmpc_dbbrowser_instance_init, NULL };
-		xfmpc_dbbrowser_type_id = g_type_register_static (GTK_TYPE_VBOX, "XfmpcDbbrowser", &g_define_type_info, 0);
-	}
-	return xfmpc_dbbrowser_type_id;
-}
-
-
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
-
diff --git a/src/extended-interface.c b/src/extended-interface.c
deleted file mode 100644
index 13d4905..0000000
--- a/src/extended-interface.c
+++ /dev/null
@@ -1,569 +0,0 @@
-/*
- *  Copyright (c) 2009 Mike Massonnet <mmassonnet at xfce.org>
- *  Copyright (c) 2009 Vincent Legout <vincent at xfce.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include <mpdclient.h>
-#include <xfce-arrow-button.h>
-#include <stdlib.h>
-#include <string.h>
-#include <gdk/gdk.h>
-#include <glib/gi18n-lib.h>
-#include <libxfcegui4/libxfcegui4.h>
-#include <libxfce4util/libxfce4util.h>
-#include <config.h>
-
-
-#define XFMPC_TYPE_EXTENDED_INTERFACE (xfmpc_extended_interface_get_type ())
-#define XFMPC_EXTENDED_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterface))
-#define XFMPC_EXTENDED_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterfaceClass))
-#define XFMPC_IS_EXTENDED_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_EXTENDED_INTERFACE))
-#define XFMPC_IS_EXTENDED_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_EXTENDED_INTERFACE))
-#define XFMPC_EXTENDED_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterfaceClass))
-
-typedef struct _XfmpcExtendedInterface XfmpcExtendedInterface;
-typedef struct _XfmpcExtendedInterfaceClass XfmpcExtendedInterfaceClass;
-typedef struct _XfmpcExtendedInterfacePrivate XfmpcExtendedInterfacePrivate;
-
-#define XFMPC_TYPE_PREFERENCES (xfmpc_preferences_get_type ())
-#define XFMPC_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferences))
-#define XFMPC_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-#define XFMPC_IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-
-typedef struct _XfmpcPreferences XfmpcPreferences;
-typedef struct _XfmpcPreferencesClass XfmpcPreferencesClass;
-
-#define XFMPC_EXTENDED_INTERFACE_TYPE_COLUMNS (xfmpc_extended_interface_columns_get_type ())
-
-#define XFMPC_EXTENDED_INTERFACE_TYPE_EXTENDED_INTERFACE_WIDGET (xfmpc_extended_interface_extended_interface_widget_get_type ())
-
-#define XFMPC_TYPE_PREFERENCES_DIALOG (xfmpc_preferences_dialog_get_type ())
-#define XFMPC_PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PREFERENCES_DIALOG, XfmpcPreferencesDialog))
-#define XFMPC_PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PREFERENCES_DIALOG, XfmpcPreferencesDialogClass))
-#define XFMPC_IS_PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PREFERENCES_DIALOG))
-#define XFMPC_IS_PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PREFERENCES_DIALOG))
-#define XFMPC_PREFERENCES_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PREFERENCES_DIALOG, XfmpcPreferencesDialogClass))
-
-typedef struct _XfmpcPreferencesDialog XfmpcPreferencesDialog;
-typedef struct _XfmpcPreferencesDialogClass XfmpcPreferencesDialogClass;
-
-#define XFMPC_TYPE_PLAYLIST (xfmpc_playlist_get_type ())
-#define XFMPC_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PLAYLIST, XfmpcPlaylist))
-#define XFMPC_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PLAYLIST, XfmpcPlaylistClass))
-#define XFMPC_IS_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PLAYLIST))
-#define XFMPC_IS_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PLAYLIST))
-#define XFMPC_PLAYLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PLAYLIST, XfmpcPlaylistClass))
-
-typedef struct _XfmpcPlaylist XfmpcPlaylist;
-typedef struct _XfmpcPlaylistClass XfmpcPlaylistClass;
-
-#define XFMPC_TYPE_DBBROWSER (xfmpc_dbbrowser_get_type ())
-#define XFMPC_DBBROWSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowser))
-#define XFMPC_DBBROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowserClass))
-#define XFMPC_IS_DBBROWSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_DBBROWSER))
-#define XFMPC_IS_DBBROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_DBBROWSER))
-#define XFMPC_DBBROWSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowserClass))
-
-typedef struct _XfmpcDbbrowser XfmpcDbbrowser;
-typedef struct _XfmpcDbbrowserClass XfmpcDbbrowserClass;
-
-struct _XfmpcExtendedInterface {
-	GtkVBox parent_instance;
-	XfmpcExtendedInterfacePrivate * priv;
-};
-
-struct _XfmpcExtendedInterfaceClass {
-	GtkVBoxClass parent_class;
-};
-
-struct _XfmpcExtendedInterfacePrivate {
-	XfmpcMpdclient* mpdclient;
-	XfmpcPreferences* preferences;
-	GtkListStore* list_store;
-	GtkComboBox* combobox;
-	GtkNotebook* notebook;
-	GtkMenu* context_menu;
-};
-
-typedef enum  {
-	XFMPC_EXTENDED_INTERFACE_COLUMNS_COLUMN_STRING,
-	XFMPC_EXTENDED_INTERFACE_COLUMNS_COLUMN_POINTER,
-	XFMPC_EXTENDED_INTERFACE_COLUMNS_N_COLUMNS
-} XfmpcExtendedInterfaceColumns;
-
-typedef enum  {
-	XFMPC_EXTENDED_INTERFACE_EXTENDED_INTERFACE_WIDGET_PLAYLIST,
-	XFMPC_EXTENDED_INTERFACE_EXTENDED_INTERFACE_WIDGET_DBBROWSER
-} XfmpcExtendedInterfaceExtendedInterfaceWidget;
-
-
-static XfceArrowButton* xfmpc_extended_interface_context_button;
-static XfceArrowButton* xfmpc_extended_interface_context_button = NULL;
-static gpointer xfmpc_extended_interface_parent_class = NULL;
-
-GType xfmpc_extended_interface_get_type (void);
-GType xfmpc_preferences_get_type (void);
-#define XFMPC_EXTENDED_INTERFACE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterfacePrivate))
-enum  {
-	XFMPC_EXTENDED_INTERFACE_DUMMY_PROPERTY
-};
-static GType xfmpc_extended_interface_columns_get_type (void);
-GType xfmpc_extended_interface_extended_interface_widget_get_type (void);
-void xfmpc_extended_interface_set_active (XfmpcExtendedInterface* self, XfmpcExtendedInterfaceExtendedInterfaceWidget active_widget);
-static void xfmpc_extended_interface_append_child (XfmpcExtendedInterface* self, GtkWidget* child, const char* title);
-static void xfmpc_extended_interface_context_menu_new (XfmpcExtendedInterface* self, GtkWidget* attach_widget);
-static void xfmpc_extended_interface_position_context_menu (GtkMenu* menu, gint x, gint y, gboolean push_in);
-static void xfmpc_extended_interface_popup_context_menu (XfmpcExtendedInterface* self);
-static void xfmpc_extended_interface_menu_detach (XfmpcExtendedInterface* self, GtkWidget* attach_widget, GtkMenu* menu);
-static void xfmpc_extended_interface_cb_context_menu_deactivate (XfmpcExtendedInterface* self);
-static void _xfmpc_extended_interface_cb_context_menu_deactivate_gtk_menu_shell_deactivate (GtkMenuShell* _sender, gpointer self);
-static void xfmpc_extended_interface_cb_repeat_switch (XfmpcExtendedInterface* self);
-static void _xfmpc_extended_interface_cb_repeat_switch_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
-static void xfmpc_extended_interface_cb_random_switch (XfmpcExtendedInterface* self);
-static void _xfmpc_extended_interface_cb_random_switch_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
-static void xfmpc_extended_interface_cb_preferences (XfmpcExtendedInterface* self);
-static void _xfmpc_extended_interface_cb_preferences_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
-static void xfmpc_extended_interface_cb_about (XfmpcExtendedInterface* self);
-static void _xfmpc_extended_interface_cb_about_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
-static void xfmpc_extended_interface_cb_playlist_clear (XfmpcExtendedInterface* self);
-static void xfmpc_extended_interface_cb_database_refresh (XfmpcExtendedInterface* self);
-static void xfmpc_extended_interface_cb_interface_changed (XfmpcExtendedInterface* self);
-static void xfmpc_extended_interface_cb_context_menu_clicked (XfmpcExtendedInterface* self);
-XfmpcPreferencesDialog* xfmpc_preferences_dialog_new (void);
-XfmpcPreferencesDialog* xfmpc_preferences_dialog_construct (GType object_type);
-GType xfmpc_preferences_dialog_get_type (void);
-XfmpcExtendedInterface* xfmpc_extended_interface_new (void);
-XfmpcExtendedInterface* xfmpc_extended_interface_construct (GType object_type);
-XfmpcPreferences* xfmpc_preferences_get_default (void);
-static void _xfmpc_extended_interface_cb_playlist_clear_gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _xfmpc_extended_interface_cb_database_refresh_gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _xfmpc_extended_interface_popup_context_menu_gtk_button_pressed (GtkButton* _sender, gpointer self);
-static void _xfmpc_extended_interface_cb_context_menu_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _xfmpc_extended_interface_cb_interface_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
-XfmpcPlaylist* xfmpc_playlist_new (void);
-XfmpcPlaylist* xfmpc_playlist_construct (GType object_type);
-GType xfmpc_playlist_get_type (void);
-XfmpcDbbrowser* xfmpc_dbbrowser_new (void);
-XfmpcDbbrowser* xfmpc_dbbrowser_construct (GType object_type);
-GType xfmpc_dbbrowser_get_type (void);
-static GObject * xfmpc_extended_interface_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
-static void xfmpc_extended_interface_finalize (GObject* obj);
-static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
-static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
-
-
-
-
-static GType xfmpc_extended_interface_columns_get_type (void) {
-	static GType xfmpc_extended_interface_columns_type_id = 0;
-	if (G_UNLIKELY (xfmpc_extended_interface_columns_type_id == 0)) {
-		static const GEnumValue values[] = {{XFMPC_EXTENDED_INTERFACE_COLUMNS_COLUMN_STRING, "XFMPC_EXTENDED_INTERFACE_COLUMNS_COLUMN_STRING", "column-string"}, {XFMPC_EXTENDED_INTERFACE_COLUMNS_COLUMN_POINTER, "XFMPC_EXTENDED_INTERFACE_COLUMNS_COLUMN_POINTER", "column-pointer"}, {XFMPC_EXTENDED_INTERFACE_COLUMNS_N_COLUMNS, "XFMPC_EXTENDED_INTERFACE_COLUMNS_N_COLUMNS", "n-columns"}, {0, NULL, NULL}};
-		xfmpc_extended_interface_columns_type_id = g_enum_register_static ("XfmpcExtendedInterfaceColumns", values);
-	}
-	return xfmpc_extended_interface_columns_type_id;
-}
-
-
-
-GType xfmpc_extended_interface_extended_interface_widget_get_type (void) {
-	static GType xfmpc_extended_interface_extended_interface_widget_type_id = 0;
-	if (G_UNLIKELY (xfmpc_extended_interface_extended_interface_widget_type_id == 0)) {
-		static const GEnumValue values[] = {{XFMPC_EXTENDED_INTERFACE_EXTENDED_INTERFACE_WIDGET_PLAYLIST, "XFMPC_EXTENDED_INTERFACE_EXTENDED_INTERFACE_WIDGET_PLAYLIST", "playlist"}, {XFMPC_EXTENDED_INTERFACE_EXTENDED_INTERFACE_WIDGET_DBBROWSER, "XFMPC_EXTENDED_INTERFACE_EXTENDED_INTERFACE_WIDGET_DBBROWSER", "dbbrowser"}, {0, NULL, NULL}};
-		xfmpc_extended_interface_extended_interface_widget_type_id = g_enum_register_static ("XfmpcExtendedInterfaceExtendedInterfaceWidget", values);
-	}
-	return xfmpc_extended_interface_extended_interface_widget_type_id;
-}
-
-
-void xfmpc_extended_interface_set_active (XfmpcExtendedInterface* self, XfmpcExtendedInterfaceExtendedInterfaceWidget active_widget) {
-	g_return_if_fail (self != NULL);
-	gtk_combo_box_set_active (self->priv->combobox, (gint) active_widget);
-}
-
-
-static void xfmpc_extended_interface_append_child (XfmpcExtendedInterface* self, GtkWidget* child, const char* title) {
-	GtkTreeIter iter = {0};
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (child != NULL);
-	g_return_if_fail (title != NULL);
-	gtk_list_store_append (self->priv->list_store, &iter);
-	gtk_list_store_set (self->priv->list_store, &iter, XFMPC_EXTENDED_INTERFACE_COLUMNS_COLUMN_STRING, title, XFMPC_EXTENDED_INTERFACE_COLUMNS_COLUMN_POINTER, child, -1, -1);
-	if (gtk_combo_box_get_active (self->priv->combobox) == (-1)) {
-		gtk_combo_box_set_active (self->priv->combobox, 0);
-	}
-	gtk_notebook_append_page (self->priv->notebook, child, NULL);
-	gtk_notebook_set_tab_label_packing (self->priv->notebook, child, TRUE, TRUE, GTK_PACK_START);
-}
-
-
-static void xfmpc_extended_interface_popup_context_menu (XfmpcExtendedInterface* self) {
-	g_return_if_fail (self != NULL);
-	if (self->priv->context_menu == NULL) {
-		xfmpc_extended_interface_context_menu_new (self, GTK_WIDGET (xfmpc_extended_interface_context_button));
-	}
-	gtk_menu_popup (self->priv->context_menu, NULL, NULL, (GtkMenuPositionFunc) xfmpc_extended_interface_position_context_menu, NULL, (guint) 0, gtk_get_current_event_time ());
-}
-
-
-static void xfmpc_extended_interface_position_context_menu (GtkMenu* menu, gint x, gint y, gboolean push_in) {
-	GtkRequisition menu_req = {0};
-	gint root_x;
-	gint root_y;
-	g_return_if_fail (menu != NULL);
-	root_x = 0;
-	root_y = 0;
-	gtk_widget_size_request ((GtkWidget*) menu, &menu_req);
-	gdk_window_get_origin (GTK_WIDGET (xfmpc_extended_interface_context_button)->window, &root_x, &root_y);
-	x = root_x + GTK_WIDGET (xfmpc_extended_interface_context_button)->allocation.x;
-	y = root_y + GTK_WIDGET (xfmpc_extended_interface_context_button)->allocation.y;
-	if (y > (gdk_screen_height () - menu_req.height)) {
-		y = gdk_screen_height () - menu_req.height;
-	} else {
-		if (y < 0) {
-			y = 0;
-		}
-	}
-	push_in = FALSE;
-}
-
-
-static void _xfmpc_extended_interface_cb_context_menu_deactivate_gtk_menu_shell_deactivate (GtkMenuShell* _sender, gpointer self) {
-	xfmpc_extended_interface_cb_context_menu_deactivate (self);
-}
-
-
-static void _xfmpc_extended_interface_cb_repeat_switch_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
-	xfmpc_extended_interface_cb_repeat_switch (self);
-}
-
-
-static void _xfmpc_extended_interface_cb_random_switch_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
-	xfmpc_extended_interface_cb_random_switch (self);
-}
-
-
-static void _xfmpc_extended_interface_cb_preferences_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
-	xfmpc_extended_interface_cb_preferences (self);
-}
-
-
-static void _xfmpc_extended_interface_cb_about_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
-	xfmpc_extended_interface_cb_about (self);
-}
-
-
-static void xfmpc_extended_interface_context_menu_new (XfmpcExtendedInterface* self, GtkWidget* attach_widget) {
-	GtkMenu* _tmp0_;
-	GtkCheckMenuItem* mi;
-	GtkCheckMenuItem* _tmp1_;
-	GtkSeparatorMenuItem* separator;
-	GtkImageMenuItem* imi;
-	GtkImageMenuItem* _tmp2_;
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (attach_widget != NULL);
-	_tmp0_ = NULL;
-	self->priv->context_menu = (_tmp0_ = g_object_ref_sink ((GtkMenu*) gtk_menu_new ()), (self->priv->context_menu == NULL) ? NULL : (self->priv->context_menu = (g_object_unref (self->priv->context_menu), NULL)), _tmp0_);
-	gtk_menu_set_screen (self->priv->context_menu, gtk_widget_get_screen (attach_widget));
-	gtk_menu_attach_to_widget (self->priv->context_menu, attach_widget, (GtkMenuDetachFunc) xfmpc_extended_interface_menu_detach);
-	g_signal_connect_object ((GtkMenuShell*) self->priv->context_menu, "deactivate", (GCallback) _xfmpc_extended_interface_cb_context_menu_deactivate_gtk_menu_shell_deactivate, self, 0);
-	mi = g_object_ref_sink ((GtkCheckMenuItem*) gtk_check_menu_item_new_with_label (_ ("Repeat")));
-	gtk_check_menu_item_set_active (mi, xfmpc_mpdclient_get_repeat (self->priv->mpdclient));
-	g_signal_connect_object ((GtkMenuItem*) mi, "activate", (GCallback) _xfmpc_extended_interface_cb_repeat_switch_gtk_menu_item_activate, self, 0);
-	gtk_menu_shell_append ((GtkMenuShell*) self->priv->context_menu, (GtkWidget*) ((GtkMenuItem*) mi));
-	_tmp1_ = NULL;
-	mi = (_tmp1_ = g_object_ref_sink ((GtkCheckMenuItem*) gtk_check_menu_item_new_with_label (_ ("Random"))), (mi == NULL) ? NULL : (mi = (g_object_unref (mi), NULL)), _tmp1_);
-	gtk_check_menu_item_set_active (mi, xfmpc_mpdclient_get_random (self->priv->mpdclient));
-	g_signal_connect_object ((GtkMenuItem*) mi, "activate", (GCallback) _xfmpc_extended_interface_cb_random_switch_gtk_menu_item_activate, self, 0);
-	gtk_menu_shell_append ((GtkMenuShell*) self->priv->context_menu, (GtkWidget*) ((GtkMenuItem*) mi));
-	separator = g_object_ref_sink ((GtkSeparatorMenuItem*) gtk_separator_menu_item_new ());
-	gtk_menu_shell_append ((GtkMenuShell*) self->priv->context_menu, (GtkWidget*) ((GtkMenuItem*) separator));
-	imi = g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_PREFERENCES, NULL));
-	g_signal_connect_object ((GtkMenuItem*) imi, "activate", (GCallback) _xfmpc_extended_interface_cb_preferences_gtk_menu_item_activate, self, 0);
-	gtk_menu_shell_append ((GtkMenuShell*) self->priv->context_menu, (GtkWidget*) ((GtkMenuItem*) imi));
-	_tmp2_ = NULL;
-	imi = (_tmp2_ = g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_ABOUT, NULL)), (imi == NULL) ? NULL : (imi = (g_object_unref (imi), NULL)), _tmp2_);
-	g_signal_connect_object ((GtkMenuItem*) imi, "activate", (GCallback) _xfmpc_extended_interface_cb_about_gtk_menu_item_activate, self, 0);
-	gtk_menu_shell_append ((GtkMenuShell*) self->priv->context_menu, (GtkWidget*) ((GtkMenuItem*) imi));
-	gtk_widget_show_all ((GtkWidget*) self->priv->context_menu);
-	(mi == NULL) ? NULL : (mi = (g_object_unref (mi), NULL));
-	(separator == NULL) ? NULL : (separator = (g_object_unref (separator), NULL));
-	(imi == NULL) ? NULL : (imi = (g_object_unref (imi), NULL));
-}
-
-
-static void xfmpc_extended_interface_menu_detach (XfmpcExtendedInterface* self, GtkWidget* attach_widget, GtkMenu* menu) {
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (attach_widget != NULL);
-	g_return_if_fail (menu != NULL);
-}
-
-
-/*
- * Signal callbacks
- */
-static void xfmpc_extended_interface_cb_playlist_clear (XfmpcExtendedInterface* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_mpdclient_playlist_clear (self->priv->mpdclient);
-}
-
-
-static void xfmpc_extended_interface_cb_database_refresh (XfmpcExtendedInterface* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_mpdclient_database_refresh (self->priv->mpdclient);
-}
-
-
-static void xfmpc_extended_interface_cb_interface_changed (XfmpcExtendedInterface* self) {
-	void* child;
-	GtkTreeIter iter = {0};
-	gint i;
-	g_return_if_fail (self != NULL);
-	child = NULL;
-	i = 0;
-	if (gtk_combo_box_get_active_iter (self->priv->combobox, &iter) == FALSE) {
-		return;
-	}
-	gtk_tree_model_get (GTK_TREE_MODEL (self->priv->list_store), &iter, XFMPC_EXTENDED_INTERFACE_COLUMNS_COLUMN_POINTER, &child, -1, -1);
-	i = gtk_notebook_page_num (self->priv->notebook, GTK_WIDGET (child));
-	gtk_notebook_set_current_page (self->priv->notebook, i);
-}
-
-
-static void xfmpc_extended_interface_cb_context_menu_clicked (XfmpcExtendedInterface* self) {
-	g_return_if_fail (self != NULL);
-	if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (xfmpc_extended_interface_context_button))) {
-		return;
-	}
-	xfmpc_extended_interface_popup_context_menu (self);
-}
-
-
-static void xfmpc_extended_interface_cb_context_menu_deactivate (XfmpcExtendedInterface* self) {
-	g_return_if_fail (self != NULL);
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (xfmpc_extended_interface_context_button), FALSE);
-}
-
-
-static void xfmpc_extended_interface_cb_repeat_switch (XfmpcExtendedInterface* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_mpdclient_set_repeat (self->priv->mpdclient, !xfmpc_mpdclient_get_repeat (self->priv->mpdclient));
-}
-
-
-static void xfmpc_extended_interface_cb_random_switch (XfmpcExtendedInterface* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_mpdclient_set_random (self->priv->mpdclient, !xfmpc_mpdclient_get_random (self->priv->mpdclient));
-}
-
-
-static void xfmpc_extended_interface_cb_preferences (XfmpcExtendedInterface* self) {
-	XfmpcPreferencesDialog* dialog;
-	g_return_if_fail (self != NULL);
-	dialog = g_object_ref_sink (xfmpc_preferences_dialog_new ());
-	gtk_widget_show ((GtkWidget*) dialog);
-	(dialog == NULL) ? NULL : (dialog = (g_object_unref (dialog), NULL));
-}
-
-
-static void xfmpc_extended_interface_cb_about (XfmpcExtendedInterface* self) {
-	char** _tmp1_;
-	gint authors_size;
-	gint authors_length1;
-	char** _tmp0_;
-	char** authors;
-	g_return_if_fail (self != NULL);
-	_tmp1_ = NULL;
-	_tmp0_ = NULL;
-	authors = (_tmp1_ = (_tmp0_ = g_new0 (char*, 2 + 1), _tmp0_[0] = g_strdup ("Mike Massonnet <mmassonnet at xfce.org>"), _tmp0_[1] = g_strdup ("Vincent Legout <vincent at xfce.org>"), _tmp0_), authors_length1 = 2, authors_size = authors_length1, _tmp1_);
-	gtk_show_about_dialog (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self))), "artists", NULL, "authors", authors, "comments", _ ("MPD client written in GTK+ for Xfce"), "copyright", "Copyright \xc2\xa9 2008-2009 Mike Massonnet, Vincent Legout", "documenters", NULL, "license", xfce_get_license_text (XFCE_LICENSE_TEXT_GPL), "translator-credits", _ ("translator-credits"), "version", PACKAGE_VERSION, "website", "http://goodies.xfce.org/projects/applications/xfmpc", NULL, NULL);
-	authors = (_vala_array_free (authors, authors_length1, (GDestroyNotify) g_free), NULL);
-}
-
-
-XfmpcExtendedInterface* xfmpc_extended_interface_construct (GType object_type) {
-	XfmpcExtendedInterface * self;
-	self = g_object_newv (object_type, 0, NULL);
-	return self;
-}
-
-
-XfmpcExtendedInterface* xfmpc_extended_interface_new (void) {
-	return xfmpc_extended_interface_construct (XFMPC_TYPE_EXTENDED_INTERFACE);
-}
-
-
-static void _xfmpc_extended_interface_cb_playlist_clear_gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	xfmpc_extended_interface_cb_playlist_clear (self);
-}
-
-
-static void _xfmpc_extended_interface_cb_database_refresh_gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	xfmpc_extended_interface_cb_database_refresh (self);
-}
-
-
-static void _xfmpc_extended_interface_popup_context_menu_gtk_button_pressed (GtkButton* _sender, gpointer self) {
-	xfmpc_extended_interface_popup_context_menu (self);
-}
-
-
-static void _xfmpc_extended_interface_cb_context_menu_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	xfmpc_extended_interface_cb_context_menu_clicked (self);
-}
-
-
-static void _xfmpc_extended_interface_cb_interface_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
-	xfmpc_extended_interface_cb_interface_changed (self);
-}
-
-
-static GObject * xfmpc_extended_interface_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
-	GObject * obj;
-	XfmpcExtendedInterfaceClass * klass;
-	GObjectClass * parent_class;
-	XfmpcExtendedInterface * self;
-	klass = XFMPC_EXTENDED_INTERFACE_CLASS (g_type_class_peek (XFMPC_TYPE_EXTENDED_INTERFACE));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
-	self = XFMPC_EXTENDED_INTERFACE (obj);
-	{
-		GtkHBox* hbox;
-		GtkButton* button;
-		GtkImage* image;
-		GtkButton* _tmp0_;
-		GtkImage* _tmp1_;
-		XfceArrowButton* _tmp2_;
-		GtkListStore* _tmp3_;
-		GtkComboBox* _tmp4_;
-		GtkCellRendererText* cell;
-		GtkNotebook* _tmp5_;
-		GtkWidget* playlist;
-		GtkWidget* dbbrowser;
-		self->priv->mpdclient = xfmpc_mpdclient_get_default ();
-		self->priv->preferences = xfmpc_preferences_get_default ();
-		hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 2));
-		gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) hbox, FALSE, FALSE, (guint) 2);
-		button = g_object_ref_sink ((GtkButton*) gtk_button_new ());
-		gtk_widget_set_tooltip_text ((GtkWidget*) button, _ ("Clear Playlist"));
-		g_signal_connect_object (button, "clicked", (GCallback) _xfmpc_extended_interface_cb_playlist_clear_gtk_button_clicked, self, 0);
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) button, FALSE, FALSE, (guint) 0);
-		image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_NEW, GTK_ICON_SIZE_MENU));
-		gtk_button_set_image (button, (GtkWidget*) image);
-		_tmp0_ = NULL;
-		button = (_tmp0_ = g_object_ref_sink ((GtkButton*) gtk_button_new ()), (button == NULL) ? NULL : (button = (g_object_unref (button), NULL)), _tmp0_);
-		gtk_widget_set_tooltip_text ((GtkWidget*) button, _ ("Refresh Database"));
-		g_signal_connect_object (button, "clicked", (GCallback) _xfmpc_extended_interface_cb_database_refresh_gtk_button_clicked, self, 0);
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) button, FALSE, FALSE, (guint) 0);
-		_tmp1_ = NULL;
-		image = (_tmp1_ = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_REFRESH, GTK_ICON_SIZE_MENU)), (image == NULL) ? NULL : (image = (g_object_unref (image), NULL)), _tmp1_);
-		gtk_button_set_image (button, (GtkWidget*) image);
-		_tmp2_ = NULL;
-		xfmpc_extended_interface_context_button = (_tmp2_ = (XfceArrowButton*) xfce_arrow_button_new (GTK_ARROW_DOWN), (xfmpc_extended_interface_context_button == NULL) ? NULL : (xfmpc_extended_interface_context_button = ( (xfmpc_extended_interface_context_button), NULL)), _tmp2_);
-		gtk_widget_set_tooltip_text (GTK_WIDGET (xfmpc_extended_interface_context_button), _ ("Context Menu"));
-		g_signal_connect_object (GTK_BUTTON (xfmpc_extended_interface_context_button), "pressed", (GCallback) _xfmpc_extended_interface_popup_context_menu_gtk_button_pressed, self, 0);
-		g_signal_connect_object (GTK_BUTTON (xfmpc_extended_interface_context_button), "clicked", (GCallback) _xfmpc_extended_interface_cb_context_menu_clicked_gtk_button_clicked, self, 0);
-		gtk_box_pack_start ((GtkBox*) hbox, GTK_WIDGET (xfmpc_extended_interface_context_button), FALSE, FALSE, (guint) 0);
-		_tmp3_ = NULL;
-		self->priv->list_store = (_tmp3_ = gtk_list_store_new ((gint) XFMPC_EXTENDED_INTERFACE_COLUMNS_N_COLUMNS, G_TYPE_STRING, G_TYPE_POINTER, NULL), (self->priv->list_store == NULL) ? NULL : (self->priv->list_store = (g_object_unref (self->priv->list_store), NULL)), _tmp3_);
-		_tmp4_ = NULL;
-		self->priv->combobox = (_tmp4_ = g_object_ref_sink ((GtkComboBox*) gtk_combo_box_new_with_model ((GtkTreeModel*) self->priv->list_store)), (self->priv->combobox == NULL) ? NULL : (self->priv->combobox = (g_object_unref (self->priv->combobox), NULL)), _tmp4_);
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->combobox, TRUE, TRUE, (guint) 0);
-		g_signal_connect_object (self->priv->combobox, "changed", (GCallback) _xfmpc_extended_interface_cb_interface_changed_gtk_combo_box_changed, self, 0);
-		cell = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
-		gtk_cell_layout_pack_start ((GtkCellLayout*) self->priv->combobox, (GtkCellRenderer*) cell, TRUE);
-		gtk_cell_layout_set_attributes ((GtkCellLayout*) self->priv->combobox, (GtkCellRenderer*) cell, "text", XFMPC_EXTENDED_INTERFACE_COLUMNS_COLUMN_STRING, NULL, NULL);
-		_tmp5_ = NULL;
-		self->priv->notebook = (_tmp5_ = g_object_ref_sink ((GtkNotebook*) gtk_notebook_new ()), (self->priv->notebook == NULL) ? NULL : (self->priv->notebook = (g_object_unref (self->priv->notebook), NULL)), _tmp5_);
-		gtk_notebook_set_show_tabs (self->priv->notebook, FALSE);
-		gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) self->priv->notebook, TRUE, TRUE, (guint) 0);
-		playlist = GTK_WIDGET (g_object_ref_sink (xfmpc_playlist_new ()));
-		xfmpc_extended_interface_append_child (self, playlist, _ ("Current Playlist"));
-		dbbrowser = GTK_WIDGET (g_object_ref_sink (xfmpc_dbbrowser_new ()));
-		xfmpc_extended_interface_append_child (self, dbbrowser, _ ("Browse database"));
-		g_object_set_data ((GObject*) playlist, "XfmpcDbbrowser", dbbrowser);
-		g_object_set_data ((GObject*) dbbrowser, "XfmpcPlaylist", playlist);
-		g_object_set_data ((GObject*) playlist, "XfmpcExtendedInterface", self);
-		(hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL));
-		(button == NULL) ? NULL : (button = (g_object_unref (button), NULL));
-		(image == NULL) ? NULL : (image = (g_object_unref (image), NULL));
-		(cell == NULL) ? NULL : (cell = (g_object_unref (cell), NULL));
-		(playlist == NULL) ? NULL : (playlist = (g_object_unref (playlist), NULL));
-		(dbbrowser == NULL) ? NULL : (dbbrowser = (g_object_unref (dbbrowser), NULL));
-	}
-	return obj;
-}
-
-
-static void xfmpc_extended_interface_class_init (XfmpcExtendedInterfaceClass * klass) {
-	xfmpc_extended_interface_parent_class = g_type_class_peek_parent (klass);
-	g_type_class_add_private (klass, sizeof (XfmpcExtendedInterfacePrivate));
-	G_OBJECT_CLASS (klass)->constructor = xfmpc_extended_interface_constructor;
-	G_OBJECT_CLASS (klass)->finalize = xfmpc_extended_interface_finalize;
-}
-
-
-static void xfmpc_extended_interface_instance_init (XfmpcExtendedInterface * self) {
-	self->priv = XFMPC_EXTENDED_INTERFACE_GET_PRIVATE (self);
-}
-
-
-static void xfmpc_extended_interface_finalize (GObject* obj) {
-	XfmpcExtendedInterface * self;
-	self = XFMPC_EXTENDED_INTERFACE (obj);
-	(self->priv->list_store == NULL) ? NULL : (self->priv->list_store = (g_object_unref (self->priv->list_store), NULL));
-	(self->priv->combobox == NULL) ? NULL : (self->priv->combobox = (g_object_unref (self->priv->combobox), NULL));
-	(self->priv->notebook == NULL) ? NULL : (self->priv->notebook = (g_object_unref (self->priv->notebook), NULL));
-	(self->priv->context_menu == NULL) ? NULL : (self->priv->context_menu = (g_object_unref (self->priv->context_menu), NULL));
-	G_OBJECT_CLASS (xfmpc_extended_interface_parent_class)->finalize (obj);
-}
-
-
-GType xfmpc_extended_interface_get_type (void) {
-	static GType xfmpc_extended_interface_type_id = 0;
-	if (xfmpc_extended_interface_type_id == 0) {
-		static const GTypeInfo g_define_type_info = { sizeof (XfmpcExtendedInterfaceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) xfmpc_extended_interface_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (XfmpcExtendedInterface), 0, (GInstanceInitFunc) xfmpc_extended_interface_instance_init, NULL };
-		xfmpc_extended_interface_type_id = g_type_register_static (GTK_TYPE_VBOX, "XfmpcExtendedInterface", &g_define_type_info, 0);
-	}
-	return xfmpc_extended_interface_type_id;
-}
-
-
-static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
-	if ((array != NULL) && (destroy_func != NULL)) {
-		int i;
-		for (i = 0; i < array_length; i = i + 1) {
-			if (((gpointer*) array)[i] != NULL) {
-				destroy_func (((gpointer*) array)[i]);
-			}
-		}
-	}
-}
-
-
-static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
-	_vala_array_destroy (array, array_length, destroy_func);
-	g_free (array);
-}
-
-
-
-
diff --git a/src/interface.c b/src/interface.c
deleted file mode 100644
index 80ec651..0000000
--- a/src/interface.c
+++ /dev/null
@@ -1,561 +0,0 @@
-/*
- *  Copyright (c) 2009 Mike Massonnet <mmassonnet at xfce.org>
- *  Copyright (c) 2009 Vincent Legout <vincent at xfce.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include <mpdclient.h>
-#include <stdlib.h>
-#include <string.h>
-#include <gdk/gdk.h>
-#include <float.h>
-#include <math.h>
-#include <glib/gi18n-lib.h>
-#include <config.h>
-#include <pango/pango.h>
-
-
-#define XFMPC_TYPE_INTERFACE (xfmpc_interface_get_type ())
-#define XFMPC_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_INTERFACE, XfmpcInterface))
-#define XFMPC_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_INTERFACE, XfmpcInterfaceClass))
-#define XFMPC_IS_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_INTERFACE))
-#define XFMPC_IS_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_INTERFACE))
-#define XFMPC_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_INTERFACE, XfmpcInterfaceClass))
-
-typedef struct _XfmpcInterface XfmpcInterface;
-typedef struct _XfmpcInterfaceClass XfmpcInterfaceClass;
-typedef struct _XfmpcInterfacePrivate XfmpcInterfacePrivate;
-
-#define XFMPC_TYPE_PREFERENCES (xfmpc_preferences_get_type ())
-#define XFMPC_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferences))
-#define XFMPC_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-#define XFMPC_IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-
-typedef struct _XfmpcPreferences XfmpcPreferences;
-typedef struct _XfmpcPreferencesClass XfmpcPreferencesClass;
-
-struct _XfmpcInterface {
-	GtkVBox parent_instance;
-	XfmpcInterfacePrivate * priv;
-};
-
-struct _XfmpcInterfaceClass {
-	GtkVBoxClass parent_class;
-};
-
-struct _XfmpcInterfacePrivate {
-	XfmpcMpdclient* mpdclient;
-	XfmpcPreferences* preferences;
-	GtkButton* button_prev;
-	GtkButton* button_pp;
-	GtkButton* button_next;
-	GtkVolumeButton* button_volume;
-	GtkProgressBar* progress_bar;
-	GtkLabel* title;
-	GtkLabel* subtitle;
-};
-
-
-static gpointer xfmpc_interface_parent_class = NULL;
-
-GType xfmpc_interface_get_type (void);
-GType xfmpc_preferences_get_type (void);
-#define XFMPC_INTERFACE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), XFMPC_TYPE_INTERFACE, XfmpcInterfacePrivate))
-enum  {
-	XFMPC_INTERFACE_DUMMY_PROPERTY
-};
-void xfmpc_interface_set_title (XfmpcInterface* self, const char* title);
-void xfmpc_interface_set_subtitle (XfmpcInterface* self, const char* subtitle);
-void xfmpc_interface_set_pp (XfmpcInterface* self, gboolean play);
-void xfmpc_interface_pp_clicked (XfmpcInterface* self);
-static gboolean xfmpc_interface_cb_progress_box_release_event (XfmpcInterface* self, const GdkEventButton* event);
-void xfmpc_interface_volume_changed (XfmpcInterface* self, double value);
-void xfmpc_interface_set_volume (XfmpcInterface* self, gint volume);
-void xfmpc_interface_popup_volume (XfmpcInterface* self);
-void xfmpc_interface_set_time (XfmpcInterface* self, gint time, gint time_total);
-void xfmpc_interface_update_title (XfmpcInterface* self);
-void xfmpc_interface_reset (XfmpcInterface* self);
-static void xfmpc_interface_cb_song_changed (XfmpcInterface* self);
-static void xfmpc_interface_cb_pp_changed (XfmpcInterface* self, gboolean is_playing);
-static void xfmpc_interface_cb_time_changed (XfmpcInterface* self, gint time, gint total_time);
-static void xfmpc_interface_cb_volume_changed (XfmpcInterface* self, gint volume);
-static void xfmpc_interface_cb_playlist_changed (XfmpcInterface* self);
-static void xfmpc_interface_cb_stopped (XfmpcInterface* self);
-static void xfmpc_interface_cb_mpdclient_previous (XfmpcInterface* self);
-static void xfmpc_interface_cb_mpdclient_next (XfmpcInterface* self);
-XfmpcInterface* xfmpc_interface_new (void);
-XfmpcInterface* xfmpc_interface_construct (GType object_type);
-XfmpcPreferences* xfmpc_preferences_get_default (void);
-static void _xfmpc_interface_cb_mpdclient_previous_gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _xfmpc_interface_pp_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _xfmpc_interface_cb_mpdclient_next_gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _xfmpc_interface_volume_changed_gtk_scale_button_value_changed (GtkScaleButton* _sender, double value, gpointer self);
-static gboolean _xfmpc_interface_cb_progress_box_release_event_gtk_widget_button_release_event (GtkWidget* _sender, const GdkEventButton* event, gpointer self);
-static void _xfmpc_interface_cb_song_changed_xfmpc_mpdclient_song_changed (XfmpcMpdclient* _sender, gpointer self);
-static void _xfmpc_interface_cb_pp_changed_xfmpc_mpdclient_pp_changed (XfmpcMpdclient* _sender, gboolean is_playing, gpointer self);
-static void _xfmpc_interface_cb_time_changed_xfmpc_mpdclient_time_changed (XfmpcMpdclient* _sender, gint time, gint total_time, gpointer self);
-static void _xfmpc_interface_cb_volume_changed_xfmpc_mpdclient_volume_changed (XfmpcMpdclient* _sender, gint volume, gpointer self);
-static void _xfmpc_interface_cb_playlist_changed_xfmpc_mpdclient_playlist_changed (XfmpcMpdclient* _sender, gpointer self);
-static void _xfmpc_interface_cb_stopped_xfmpc_mpdclient_stopped (XfmpcMpdclient* _sender, gpointer self);
-static GObject * xfmpc_interface_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
-static void xfmpc_interface_finalize (GObject* obj);
-
-
-
-void xfmpc_interface_set_title (XfmpcInterface* self, const char* title) {
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (title != NULL);
-	gtk_label_set_text (self->priv->title, title);
-}
-
-
-void xfmpc_interface_set_subtitle (XfmpcInterface* self, const char* subtitle) {
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (subtitle != NULL);
-	gtk_label_set_text (self->priv->subtitle, subtitle);
-}
-
-
-void xfmpc_interface_pp_clicked (XfmpcInterface* self) {
-	g_return_if_fail (self != NULL);
-	if (!xfmpc_mpdclient_pp (self->priv->mpdclient)) {
-		return;
-	}
-	xfmpc_interface_set_pp (self, xfmpc_mpdclient_is_playing (self->priv->mpdclient));
-}
-
-
-void xfmpc_interface_set_pp (XfmpcInterface* self, gboolean play) {
-	GtkImage* _tmp0_;
-	GtkImage* image;
-	g_return_if_fail (self != NULL);
-	_tmp0_ = NULL;
-	image = (_tmp0_ = GTK_IMAGE (gtk_bin_get_child ((GtkBin*) self->priv->button_pp)), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	if (play == TRUE) {
-		gtk_image_set_from_stock (image, GTK_STOCK_MEDIA_PAUSE, GTK_ICON_SIZE_BUTTON);
-	} else {
-		gtk_image_set_from_stock (image, GTK_STOCK_MEDIA_PLAY, GTK_ICON_SIZE_BUTTON);
-	}
-	(image == NULL) ? NULL : (image = (g_object_unref (image), NULL));
-}
-
-
-static gboolean xfmpc_interface_cb_progress_box_release_event (XfmpcInterface* self, const GdkEventButton* event) {
-	gboolean result;
-	gboolean _tmp0_;
-	gint time_total;
-	double time;
-	g_return_val_if_fail (self != NULL, FALSE);
-	_tmp0_ = FALSE;
-	if ((*event).type != GDK_BUTTON_RELEASE) {
-		_tmp0_ = TRUE;
-	} else {
-		_tmp0_ = (*event).button != 1;
-	}
-	if (_tmp0_) {
-		result = FALSE;
-		return result;
-	}
-	time_total = xfmpc_mpdclient_get_total_time (self->priv->mpdclient);
-	if (time_total < 0) {
-		result = FALSE;
-		return result;
-	}
-	time = (*event).x / ((GtkWidget*) self->priv->progress_bar)->allocation.width;
-	time = time * ((double) time_total);
-	xfmpc_mpdclient_set_song_time (self->priv->mpdclient, (guint) ((gint) time));
-	result = TRUE;
-	return result;
-}
-
-
-void xfmpc_interface_volume_changed (XfmpcInterface* self, double value) {
-	g_return_if_fail (self != NULL);
-	xfmpc_mpdclient_set_volume (self->priv->mpdclient, (guchar) ((gchar) value));
-}
-
-
-void xfmpc_interface_set_volume (XfmpcInterface* self, gint volume) {
-	g_return_if_fail (self != NULL);
-	gtk_scale_button_set_value ((GtkScaleButton*) self->priv->button_volume, (double) volume);
-}
-
-
-void xfmpc_interface_popup_volume (XfmpcInterface* self) {
-	g_return_if_fail (self != NULL);
-	g_signal_emit_by_name (self->priv->button_volume, "popup", NULL, NULL);
-}
-
-
-void xfmpc_interface_set_time (XfmpcInterface* self, gint time, gint time_total) {
-	gint min;
-	gint sec;
-	gint min_total;
-	gint sec_total;
-	double fraction;
-	GString* text;
-	double _tmp0_;
-	g_return_if_fail (self != NULL);
-	min = 0;
-	sec = 0;
-	min_total = 0;
-	sec_total = 0;
-	fraction = 1.0;
-	min = time / 60;
-	sec = time % 60;
-	min_total = time_total / 60;
-	sec_total = time_total % 60;
-	text = g_string_new ("");
-	g_string_append_printf (text, "%d:%02d / %d:%02d", min, sec, min_total, sec_total);
-	gtk_progress_bar_set_text (self->priv->progress_bar, text->str);
-	if (time_total > 0) {
-		fraction = (double) (((float) time) / ((float) time_total));
-	}
-	_tmp0_ = 0.0;
-	if (fraction <= 1.0) {
-		_tmp0_ = fraction;
-	} else {
-		_tmp0_ = 1.0;
-	}
-	gtk_progress_bar_set_fraction (self->priv->progress_bar, _tmp0_);
-	(text == NULL) ? NULL : (text = (g_string_free (text, TRUE), NULL));
-}
-
-
-void xfmpc_interface_reset (XfmpcInterface* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_interface_set_pp (self, FALSE);
-	xfmpc_interface_set_time (self, 0, 0);
-	xfmpc_interface_set_volume (self, 0);
-	xfmpc_interface_update_title (self);
-}
-
-
-void xfmpc_interface_update_title (XfmpcInterface* self) {
-	g_return_if_fail (self != NULL);
-	if (xfmpc_mpdclient_is_playing (self->priv->mpdclient)) {
-		char* text;
-		xfmpc_interface_set_title (self, xfmpc_mpdclient_get_title (self->priv->mpdclient));
-		/*
-		// write private function in case it is wished to avoid the
-		// "n/a" values, but no big deal IMO
-		text = get_subtitle (interface);
-		 
-		 TRANSLATORS: subtitle "by \"artist\" from \"album\" (year)" */
-		text = g_strdup_printf (_ ("by \"%s\" from \"%s\" (%s)"), xfmpc_mpdclient_get_artist (self->priv->mpdclient), xfmpc_mpdclient_get_album (self->priv->mpdclient), xfmpc_mpdclient_get_date (self->priv->mpdclient));
-		xfmpc_interface_set_subtitle (self, text);
-		text = (g_free (text), NULL);
-	} else {
-		if (xfmpc_mpdclient_is_stopped (self->priv->mpdclient)) {
-			xfmpc_interface_set_title (self, _ ("Stopped"));
-			xfmpc_interface_set_subtitle (self, PACKAGE_STRING);
-		} else {
-			if (!xfmpc_mpdclient_is_connected (self->priv->mpdclient)) {
-				xfmpc_interface_set_title (self, _ ("Not connected"));
-				xfmpc_interface_set_subtitle (self, PACKAGE_STRING);
-			}
-		}
-	}
-}
-
-
-static void xfmpc_interface_cb_song_changed (XfmpcInterface* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_interface_update_title (self);
-}
-
-
-static void xfmpc_interface_cb_pp_changed (XfmpcInterface* self, gboolean is_playing) {
-	g_return_if_fail (self != NULL);
-	xfmpc_interface_set_pp (self, is_playing);
-	xfmpc_interface_cb_song_changed (self);
-}
-
-
-static void xfmpc_interface_cb_time_changed (XfmpcInterface* self, gint time, gint total_time) {
-	g_return_if_fail (self != NULL);
-	xfmpc_interface_set_time (self, time, total_time);
-}
-
-
-static void xfmpc_interface_cb_volume_changed (XfmpcInterface* self, gint volume) {
-	g_return_if_fail (self != NULL);
-	xfmpc_interface_set_volume (self, volume);
-}
-
-
-static void xfmpc_interface_cb_playlist_changed (XfmpcInterface* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_interface_update_title (self);
-}
-
-
-static void xfmpc_interface_cb_stopped (XfmpcInterface* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_interface_set_pp (self, FALSE);
-	xfmpc_interface_update_title (self);
-}
-
-
-static void xfmpc_interface_cb_mpdclient_previous (XfmpcInterface* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_mpdclient_previous (self->priv->mpdclient);
-}
-
-
-static void xfmpc_interface_cb_mpdclient_next (XfmpcInterface* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_mpdclient_next (self->priv->mpdclient);
-}
-
-
-XfmpcInterface* xfmpc_interface_construct (GType object_type) {
-	XfmpcInterface * self;
-	self = g_object_newv (object_type, 0, NULL);
-	return self;
-}
-
-
-XfmpcInterface* xfmpc_interface_new (void) {
-	return xfmpc_interface_construct (XFMPC_TYPE_INTERFACE);
-}
-
-
-static void _xfmpc_interface_cb_mpdclient_previous_gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	xfmpc_interface_cb_mpdclient_previous (self);
-}
-
-
-static void _xfmpc_interface_pp_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	xfmpc_interface_pp_clicked (self);
-}
-
-
-static void _xfmpc_interface_cb_mpdclient_next_gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	xfmpc_interface_cb_mpdclient_next (self);
-}
-
-
-static void _xfmpc_interface_volume_changed_gtk_scale_button_value_changed (GtkScaleButton* _sender, double value, gpointer self) {
-	xfmpc_interface_volume_changed (self, value);
-}
-
-
-static gboolean _xfmpc_interface_cb_progress_box_release_event_gtk_widget_button_release_event (GtkWidget* _sender, const GdkEventButton* event, gpointer self) {
-	return xfmpc_interface_cb_progress_box_release_event (self, event);
-}
-
-
-static void _xfmpc_interface_cb_song_changed_xfmpc_mpdclient_song_changed (XfmpcMpdclient* _sender, gpointer self) {
-	xfmpc_interface_cb_song_changed (self);
-}
-
-
-static void _xfmpc_interface_cb_pp_changed_xfmpc_mpdclient_pp_changed (XfmpcMpdclient* _sender, gboolean is_playing, gpointer self) {
-	xfmpc_interface_cb_pp_changed (self, is_playing);
-}
-
-
-static void _xfmpc_interface_cb_time_changed_xfmpc_mpdclient_time_changed (XfmpcMpdclient* _sender, gint time, gint total_time, gpointer self) {
-	xfmpc_interface_cb_time_changed (self, time, total_time);
-}
-
-
-static void _xfmpc_interface_cb_volume_changed_xfmpc_mpdclient_volume_changed (XfmpcMpdclient* _sender, gint volume, gpointer self) {
-	xfmpc_interface_cb_volume_changed (self, volume);
-}
-
-
-static void _xfmpc_interface_cb_playlist_changed_xfmpc_mpdclient_playlist_changed (XfmpcMpdclient* _sender, gpointer self) {
-	xfmpc_interface_cb_playlist_changed (self);
-}
-
-
-static void _xfmpc_interface_cb_stopped_xfmpc_mpdclient_stopped (XfmpcMpdclient* _sender, gpointer self) {
-	xfmpc_interface_cb_stopped (self);
-}
-
-
-static GObject * xfmpc_interface_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
-	GObject * obj;
-	XfmpcInterfaceClass * klass;
-	GObjectClass * parent_class;
-	XfmpcInterface * self;
-	klass = XFMPC_INTERFACE_CLASS (g_type_class_peek (XFMPC_TYPE_INTERFACE));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
-	self = XFMPC_INTERFACE (obj);
-	{
-		GtkImage* image;
-		GtkButton* _tmp0_;
-		GtkImage* _tmp1_;
-		GtkButton* _tmp2_;
-		GtkImage* _tmp3_;
-		GtkButton* _tmp4_;
-		GtkVolumeButton* _tmp5_;
-		GtkAdjustment* _tmp6_;
-		GtkAdjustment* adjustment;
-		GtkEventBox* progress_box;
-		GtkProgressBar* _tmp7_;
-		PangoAttrList* attrs;
-		PangoAttribute* attr;
-		GtkLabel* _tmp8_;
-		PangoAttrList* _tmp9_;
-		GtkLabel* _tmp10_;
-		GtkHBox* box;
-		GtkVBox* vbox;
-		self->priv->mpdclient = xfmpc_mpdclient_get_default ();
-		self->priv->preferences = xfmpc_preferences_get_default ();
-		gtk_container_set_border_width ((GtkContainer*) self, (guint) 4);
-		image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_MEDIA_PREVIOUS, GTK_ICON_SIZE_BUTTON));
-		_tmp0_ = NULL;
-		self->priv->button_prev = (_tmp0_ = g_object_ref_sink ((GtkButton*) gtk_button_new ()), (self->priv->button_prev == NULL) ? NULL : (self->priv->button_prev = (g_object_unref (self->priv->button_prev), NULL)), _tmp0_);
-		gtk_button_set_relief (self->priv->button_prev, GTK_RELIEF_NONE);
-		gtk_container_add ((GtkContainer*) self->priv->button_prev, (GtkWidget*) image);
-		_tmp1_ = NULL;
-		image = (_tmp1_ = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_MEDIA_PLAY, GTK_ICON_SIZE_BUTTON)), (image == NULL) ? NULL : (image = (g_object_unref (image), NULL)), _tmp1_);
-		_tmp2_ = NULL;
-		self->priv->button_pp = (_tmp2_ = g_object_ref_sink ((GtkButton*) gtk_button_new ()), (self->priv->button_pp == NULL) ? NULL : (self->priv->button_pp = (g_object_unref (self->priv->button_pp), NULL)), _tmp2_);
-		gtk_button_set_relief (self->priv->button_pp, GTK_RELIEF_NONE);
-		gtk_container_add ((GtkContainer*) self->priv->button_pp, (GtkWidget*) image);
-		_tmp3_ = NULL;
-		image = (_tmp3_ = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_MEDIA_NEXT, GTK_ICON_SIZE_BUTTON)), (image == NULL) ? NULL : (image = (g_object_unref (image), NULL)), _tmp3_);
-		_tmp4_ = NULL;
-		self->priv->button_next = (_tmp4_ = g_object_ref_sink ((GtkButton*) gtk_button_new ()), (self->priv->button_next == NULL) ? NULL : (self->priv->button_next = (g_object_unref (self->priv->button_next), NULL)), _tmp4_);
-		gtk_button_set_relief (self->priv->button_next, GTK_RELIEF_NONE);
-		gtk_container_add ((GtkContainer*) self->priv->button_next, (GtkWidget*) image);
-		_tmp5_ = NULL;
-		self->priv->button_volume = (_tmp5_ = g_object_ref_sink ((GtkVolumeButton*) gtk_volume_button_new ()), (self->priv->button_volume == NULL) ? NULL : (self->priv->button_volume = (g_object_unref (self->priv->button_volume), NULL)), _tmp5_);
-		gtk_button_set_relief ((GtkButton*) self->priv->button_volume, GTK_RELIEF_NONE);
-		_tmp6_ = NULL;
-		adjustment = (_tmp6_ = gtk_scale_button_get_adjustment ((GtkScaleButton*) self->priv->button_volume), (_tmp6_ == NULL) ? NULL : g_object_ref (_tmp6_));
-		gtk_adjustment_set_upper (adjustment, gtk_adjustment_get_upper (adjustment) * ((double) 100));
-		gtk_adjustment_set_step_increment (adjustment, gtk_adjustment_get_step_increment (adjustment) * ((double) 100));
-		gtk_adjustment_set_page_increment (adjustment, gtk_adjustment_get_page_increment (adjustment) * ((double) 100));
-		progress_box = g_object_ref_sink ((GtkEventBox*) gtk_event_box_new ());
-		_tmp7_ = NULL;
-		self->priv->progress_bar = (_tmp7_ = g_object_ref_sink ((GtkProgressBar*) gtk_progress_bar_new ()), (self->priv->progress_bar == NULL) ? NULL : (self->priv->progress_bar = (g_object_unref (self->priv->progress_bar), NULL)), _tmp7_);
-		gtk_progress_bar_set_text (self->priv->progress_bar, "0:00 / 0:00");
-		gtk_progress_bar_set_fraction (self->priv->progress_bar, 1.0);
-		gtk_container_add ((GtkContainer*) progress_box, (GtkWidget*) self->priv->progress_bar);
-		/* Title */
-		attrs = pango_attr_list_new ();
-		attr = pango_attr_weight_new (PANGO_WEIGHT_BOLD);
-		attr->start_index = (guint) 0;
-		attr->end_index = (guint) (-1);
-		pango_attr_list_insert (attrs, attr);
-		attr = pango_attr_scale_new ((double) PANGO_SCALE_X_LARGE);
-		attr->start_index = (guint) 0;
-		attr->end_index = (guint) (-1);
-		pango_attr_list_insert (attrs, attr);
-		_tmp8_ = NULL;
-		self->priv->title = (_tmp8_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Not connected"))), (self->priv->title == NULL) ? NULL : (self->priv->title = (g_object_unref (self->priv->title), NULL)), _tmp8_);
-		gtk_label_set_attributes (self->priv->title, attrs);
-		gtk_label_set_selectable (self->priv->title, TRUE);
-		gtk_label_set_ellipsize (self->priv->title, PANGO_ELLIPSIZE_END);
-		gtk_misc_set_alignment ((GtkMisc*) self->priv->title, (float) 0, (float) 0.5);
-		/* Subtitle */
-		_tmp9_ = NULL;
-		attrs = (_tmp9_ = pango_attr_list_new (), (attrs == NULL) ? NULL : (attrs = (pango_attr_list_unref (attrs), NULL)), _tmp9_);
-		attr = pango_attr_scale_new ((double) PANGO_SCALE_SMALL);
-		attr->start_index = (guint) 0;
-		attr->end_index = (guint) (-1);
-		pango_attr_list_insert (attrs, attr);
-		_tmp10_ = NULL;
-		self->priv->subtitle = (_tmp10_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (PACKAGE_STRING)), (self->priv->subtitle == NULL) ? NULL : (self->priv->subtitle = (g_object_unref (self->priv->subtitle), NULL)), _tmp10_);
-		gtk_label_set_attributes (self->priv->subtitle, attrs);
-		gtk_label_set_selectable (self->priv->subtitle, TRUE);
-		gtk_label_set_ellipsize (self->priv->subtitle, PANGO_ELLIPSIZE_END);
-		gtk_misc_set_alignment ((GtkMisc*) self->priv->subtitle, (float) 0, (float) 0.5);
-		/* === Containers === */
-		box = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0));
-		gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) box, FALSE, FALSE, (guint) 0);
-		gtk_box_pack_start ((GtkBox*) box, (GtkWidget*) self->priv->button_prev, FALSE, FALSE, (guint) 0);
-		gtk_box_pack_start ((GtkBox*) box, (GtkWidget*) self->priv->button_pp, FALSE, FALSE, (guint) 0);
-		gtk_box_pack_start ((GtkBox*) box, (GtkWidget*) self->priv->button_next, FALSE, FALSE, (guint) 0);
-		gtk_box_pack_start ((GtkBox*) box, (GtkWidget*) progress_box, TRUE, TRUE, (guint) 4);
-		gtk_box_pack_start ((GtkBox*) box, (GtkWidget*) self->priv->button_volume, FALSE, FALSE, (guint) 0);
-		vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
-		gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) vbox, FALSE, TRUE, (guint) 0);
-		gtk_container_add ((GtkContainer*) vbox, (GtkWidget*) self->priv->title);
-		gtk_container_add ((GtkContainer*) vbox, (GtkWidget*) self->priv->subtitle);
-		/* === Signals === */
-		g_signal_connect_object (self->priv->button_prev, "clicked", (GCallback) _xfmpc_interface_cb_mpdclient_previous_gtk_button_clicked, self, 0);
-		g_signal_connect_object (self->priv->button_pp, "clicked", (GCallback) _xfmpc_interface_pp_clicked_gtk_button_clicked, self, 0);
-		g_signal_connect_object (self->priv->button_next, "clicked", (GCallback) _xfmpc_interface_cb_mpdclient_next_gtk_button_clicked, self, 0);
-		g_signal_connect_object ((GtkScaleButton*) self->priv->button_volume, "value-changed", (GCallback) _xfmpc_interface_volume_changed_gtk_scale_button_value_changed, self, 0);
-		g_signal_connect_object ((GtkWidget*) progress_box, "button-release-event", (GCallback) _xfmpc_interface_cb_progress_box_release_event_gtk_widget_button_release_event, self, 0);
-		g_signal_connect_object (self->priv->mpdclient, "song-changed", (GCallback) _xfmpc_interface_cb_song_changed_xfmpc_mpdclient_song_changed, self, 0);
-		g_signal_connect_object (self->priv->mpdclient, "pp-changed", (GCallback) _xfmpc_interface_cb_pp_changed_xfmpc_mpdclient_pp_changed, self, 0);
-		g_signal_connect_object (self->priv->mpdclient, "time-changed", (GCallback) _xfmpc_interface_cb_time_changed_xfmpc_mpdclient_time_changed, self, 0);
-		g_signal_connect_object (self->priv->mpdclient, "volume-changed", (GCallback) _xfmpc_interface_cb_volume_changed_xfmpc_mpdclient_volume_changed, self, 0);
-		g_signal_connect_object (self->priv->mpdclient, "playlist-changed", (GCallback) _xfmpc_interface_cb_playlist_changed_xfmpc_mpdclient_playlist_changed, self, 0);
-		g_signal_connect_object (self->priv->mpdclient, "stopped", (GCallback) _xfmpc_interface_cb_stopped_xfmpc_mpdclient_stopped, self, 0);
-		(image == NULL) ? NULL : (image = (g_object_unref (image), NULL));
-		(adjustment == NULL) ? NULL : (adjustment = (g_object_unref (adjustment), NULL));
-		(progress_box == NULL) ? NULL : (progress_box = (g_object_unref (progress_box), NULL));
-		(attrs == NULL) ? NULL : (attrs = (pango_attr_list_unref (attrs), NULL));
-		(box == NULL) ? NULL : (box = (g_object_unref (box), NULL));
-		(vbox == NULL) ? NULL : (vbox = (g_object_unref (vbox), NULL));
-	}
-	return obj;
-}
-
-
-static void xfmpc_interface_class_init (XfmpcInterfaceClass * klass) {
-	xfmpc_interface_parent_class = g_type_class_peek_parent (klass);
-	g_type_class_add_private (klass, sizeof (XfmpcInterfacePrivate));
-	G_OBJECT_CLASS (klass)->constructor = xfmpc_interface_constructor;
-	G_OBJECT_CLASS (klass)->finalize = xfmpc_interface_finalize;
-}
-
-
-static void xfmpc_interface_instance_init (XfmpcInterface * self) {
-	self->priv = XFMPC_INTERFACE_GET_PRIVATE (self);
-}
-
-
-static void xfmpc_interface_finalize (GObject* obj) {
-	XfmpcInterface * self;
-	self = XFMPC_INTERFACE (obj);
-	(self->priv->button_prev == NULL) ? NULL : (self->priv->button_prev = (g_object_unref (self->priv->button_prev), NULL));
-	(self->priv->button_pp == NULL) ? NULL : (self->priv->button_pp = (g_object_unref (self->priv->button_pp), NULL));
-	(self->priv->button_next == NULL) ? NULL : (self->priv->button_next = (g_object_unref (self->priv->button_next), NULL));
-	(self->priv->button_volume == NULL) ? NULL : (self->priv->button_volume = (g_object_unref (self->priv->button_volume), NULL));
-	(self->priv->progress_bar == NULL) ? NULL : (self->priv->progress_bar = (g_object_unref (self->priv->progress_bar), NULL));
-	(self->priv->title == NULL) ? NULL : (self->priv->title = (g_object_unref (self->priv->title), NULL));
-	(self->priv->subtitle == NULL) ? NULL : (self->priv->subtitle = (g_object_unref (self->priv->subtitle), NULL));
-	G_OBJECT_CLASS (xfmpc_interface_parent_class)->finalize (obj);
-}
-
-
-GType xfmpc_interface_get_type (void) {
-	static GType xfmpc_interface_type_id = 0;
-	if (xfmpc_interface_type_id == 0) {
-		static const GTypeInfo g_define_type_info = { sizeof (XfmpcInterfaceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) xfmpc_interface_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (XfmpcInterface), 0, (GInstanceInitFunc) xfmpc_interface_instance_init, NULL };
-		xfmpc_interface_type_id = g_type_register_static (GTK_TYPE_VBOX, "XfmpcInterface", &g_define_type_info, 0);
-	}
-	return xfmpc_interface_type_id;
-}
-
-
-
-
diff --git a/src/main-window.c b/src/main-window.c
deleted file mode 100644
index d8e6106..0000000
--- a/src/main-window.c
+++ /dev/null
@@ -1,604 +0,0 @@
-/*
- *  Copyright (c) 2009 Mike Massonnet <mmassonnet at xfce.org>
- *  Copyright (c) 2009 Vincent Legout <vincent at xfce.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include <mpdclient.h>
-#include <stdlib.h>
-#include <string.h>
-#include <gdk/gdk.h>
-#include <glib/gi18n-lib.h>
-#include <config.h>
-
-
-#define XFMPC_TYPE_MAIN_WINDOW (xfmpc_main_window_get_type ())
-#define XFMPC_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_MAIN_WINDOW, XfmpcMainWindow))
-#define XFMPC_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_MAIN_WINDOW, XfmpcMainWindowClass))
-#define XFMPC_IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_MAIN_WINDOW))
-#define XFMPC_IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_MAIN_WINDOW))
-#define XFMPC_MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_MAIN_WINDOW, XfmpcMainWindowClass))
-
-typedef struct _XfmpcMainWindow XfmpcMainWindow;
-typedef struct _XfmpcMainWindowClass XfmpcMainWindowClass;
-typedef struct _XfmpcMainWindowPrivate XfmpcMainWindowPrivate;
-
-#define XFMPC_TYPE_PREFERENCES (xfmpc_preferences_get_type ())
-#define XFMPC_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferences))
-#define XFMPC_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-#define XFMPC_IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-
-typedef struct _XfmpcPreferences XfmpcPreferences;
-typedef struct _XfmpcPreferencesClass XfmpcPreferencesClass;
-
-#define XFMPC_TYPE_INTERFACE (xfmpc_interface_get_type ())
-#define XFMPC_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_INTERFACE, XfmpcInterface))
-#define XFMPC_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_INTERFACE, XfmpcInterfaceClass))
-#define XFMPC_IS_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_INTERFACE))
-#define XFMPC_IS_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_INTERFACE))
-#define XFMPC_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_INTERFACE, XfmpcInterfaceClass))
-
-typedef struct _XfmpcInterface XfmpcInterface;
-typedef struct _XfmpcInterfaceClass XfmpcInterfaceClass;
-
-#define XFMPC_TYPE_EXTENDED_INTERFACE (xfmpc_extended_interface_get_type ())
-#define XFMPC_EXTENDED_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterface))
-#define XFMPC_EXTENDED_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterfaceClass))
-#define XFMPC_IS_EXTENDED_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_EXTENDED_INTERFACE))
-#define XFMPC_IS_EXTENDED_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_EXTENDED_INTERFACE))
-#define XFMPC_EXTENDED_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterfaceClass))
-
-typedef struct _XfmpcExtendedInterface XfmpcExtendedInterface;
-typedef struct _XfmpcExtendedInterfaceClass XfmpcExtendedInterfaceClass;
-
-#define XFMPC_TYPE_STATUSBAR (xfmpc_statusbar_get_type ())
-#define XFMPC_STATUSBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_STATUSBAR, XfmpcStatusbar))
-#define XFMPC_STATUSBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_STATUSBAR, XfmpcStatusbarClass))
-#define XFMPC_IS_STATUSBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_STATUSBAR))
-#define XFMPC_IS_STATUSBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_STATUSBAR))
-#define XFMPC_STATUSBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_STATUSBAR, XfmpcStatusbarClass))
-
-typedef struct _XfmpcStatusbar XfmpcStatusbar;
-typedef struct _XfmpcStatusbarClass XfmpcStatusbarClass;
-
-struct _XfmpcMainWindow {
-	GtkWindow parent_instance;
-	XfmpcMainWindowPrivate * priv;
-};
-
-struct _XfmpcMainWindowClass {
-	GtkWindowClass parent_class;
-};
-
-struct _XfmpcMainWindowPrivate {
-	XfmpcMpdclient* mpdclient;
-	XfmpcPreferences* preferences;
-	XfmpcInterface* interface;
-	XfmpcExtendedInterface* extended_interface;
-	GtkVBox* vbox;
-	GtkActionGroup* action_group;
-	GtkUIManager* ui_manager;
-	XfmpcStatusbar* statusbar;
-};
-
-
-static gpointer xfmpc_main_window_parent_class = NULL;
-
-GType xfmpc_main_window_get_type (void);
-GType xfmpc_preferences_get_type (void);
-GType xfmpc_interface_get_type (void);
-GType xfmpc_extended_interface_get_type (void);
-GType xfmpc_statusbar_get_type (void);
-#define XFMPC_MAIN_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), XFMPC_TYPE_MAIN_WINDOW, XfmpcMainWindowPrivate))
-enum  {
-	XFMPC_MAIN_WINDOW_DUMMY_PROPERTY
-};
-static void xfmpc_main_window_action_statusbar (XfmpcMainWindow* self, GtkAction* action);
-static void _xfmpc_main_window_action_statusbar_gtk_action_callback (GtkAction* action, gpointer self);
-static void xfmpc_main_window_action_close (XfmpcMainWindow* self);
-static void _xfmpc_main_window_action_close_gtk_action_callback (GtkAction* action, gpointer self);
-static void xfmpc_main_window_action_previous (XfmpcMainWindow* self);
-static void _xfmpc_main_window_action_previous_gtk_action_callback (GtkAction* action, gpointer self);
-static void xfmpc_main_window_action_pp (XfmpcMainWindow* self);
-static void _xfmpc_main_window_action_pp_gtk_action_callback (GtkAction* action, gpointer self);
-static void xfmpc_main_window_action_stop (XfmpcMainWindow* self);
-static void _xfmpc_main_window_action_stop_gtk_action_callback (GtkAction* action, gpointer self);
-static void xfmpc_main_window_action_next (XfmpcMainWindow* self);
-static void _xfmpc_main_window_action_next_gtk_action_callback (GtkAction* action, gpointer self);
-static void xfmpc_main_window_action_volume (XfmpcMainWindow* self);
-static void _xfmpc_main_window_action_volume_gtk_action_callback (GtkAction* action, gpointer self);
-#define XFMPC_MAIN_WINDOW_ui_string "\n<ui>\n  <accelerator action=\"quit\" />\n  <accelerator action=\"previous\" />\n  <accelerator action=\"pp\" />\n  <accelerator action=\"stop\" />\n  <accelerator action=\"next\" />\n  <accelerator action=\"volume\" />\n</ui>\n"
-void xfmpc_interface_reset (XfmpcInterface* self);
-void xfmpc_statusbar_set_text (XfmpcStatusbar* self, const char* value);
-void xfmpc_interface_update_title (XfmpcInterface* self);
-static gboolean xfmpc_main_window_refresh (XfmpcMainWindow* self);
-void xfmpc_preferences_set_last_window_state_sticky (XfmpcPreferences* self, gboolean value);
-static gboolean xfmpc_main_window_cb_window_state_event (XfmpcMainWindow* self, const GdkEventWindowState* event);
-static void xfmpc_main_window_close_window (XfmpcMainWindow* self);
-static gboolean xfmpc_main_window_cb_window_closed (XfmpcMainWindow* self, GdkEvent* event);
-void xfmpc_preferences_set_last_window_posx (XfmpcPreferences* self, gint value);
-void xfmpc_preferences_set_last_window_posy (XfmpcPreferences* self, gint value);
-void xfmpc_preferences_set_last_window_width (XfmpcPreferences* self, gint value);
-void xfmpc_preferences_set_last_window_height (XfmpcPreferences* self, gint value);
-void xfmpc_interface_pp_clicked (XfmpcInterface* self);
-void xfmpc_interface_popup_volume (XfmpcInterface* self);
-XfmpcStatusbar* xfmpc_statusbar_new (void);
-XfmpcStatusbar* xfmpc_statusbar_construct (GType object_type);
-static void xfmpc_main_window_update_statusbar (XfmpcMainWindow* self);
-static void xfmpc_main_window_cb_playlist_changed (XfmpcMainWindow* self);
-gboolean xfmpc_preferences_get_show_statusbar (XfmpcPreferences* self);
-static void xfmpc_main_window_cb_show_statusbar_changed (XfmpcMainWindow* self, GParamSpec* pspec);
-XfmpcMainWindow* xfmpc_main_window_new (void);
-XfmpcMainWindow* xfmpc_main_window_construct (GType object_type);
-XfmpcPreferences* xfmpc_preferences_get_default (void);
-static gboolean _xfmpc_main_window_cb_window_closed_gtk_widget_delete_event (GtkWidget* _sender, GdkEvent* event, gpointer self);
-static gboolean _xfmpc_main_window_cb_window_state_event_gtk_widget_window_state_event (GtkWidget* _sender, const GdkEventWindowState* event, gpointer self);
-gint xfmpc_preferences_get_last_window_posx (XfmpcPreferences* self);
-gint xfmpc_preferences_get_last_window_posy (XfmpcPreferences* self);
-gint xfmpc_preferences_get_last_window_width (XfmpcPreferences* self);
-gint xfmpc_preferences_get_last_window_height (XfmpcPreferences* self);
-gboolean xfmpc_preferences_get_last_window_state_sticky (XfmpcPreferences* self);
-XfmpcInterface* xfmpc_interface_new (void);
-XfmpcInterface* xfmpc_interface_construct (GType object_type);
-XfmpcExtendedInterface* xfmpc_extended_interface_new (void);
-XfmpcExtendedInterface* xfmpc_extended_interface_construct (GType object_type);
-static void _xfmpc_main_window_cb_playlist_changed_xfmpc_mpdclient_playlist_changed (XfmpcMpdclient* _sender, gpointer self);
-static void _xfmpc_main_window_cb_show_statusbar_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
-static gboolean _xfmpc_main_window_refresh_gsource_func (gpointer self);
-static GObject * xfmpc_main_window_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
-static void xfmpc_main_window_finalize (GObject* obj);
-
-static const GtkToggleActionEntry XFMPC_MAIN_WINDOW_toggle_action_entries[] = {{"view-statusbar", NULL, "", NULL, NULL, (GCallback) _xfmpc_main_window_action_statusbar_gtk_action_callback, FALSE}};
-static const GtkActionEntry XFMPC_MAIN_WINDOW_action_entries[] = {{"quit", NULL, "", "<control>q", NULL, (GCallback) _xfmpc_main_window_action_close_gtk_action_callback}, {"previous", NULL, "", "<control>b", NULL, (GCallback) _xfmpc_main_window_action_previous_gtk_action_callback}, {"pp", NULL, "", "<control>p", NULL, (GCallback) _xfmpc_main_window_action_pp_gtk_action_callback}, {"stop", NULL, "", "<control>s", NULL, (GCallback) _xfmpc_main_window_action_stop_gtk_action_callback}, {"next", NULL, "", "<control>f", NULL, (GCallback) _xfmpc_main_window_action_next_gtk_action_callback}, {"volume", NULL, "", "<control>v", NULL, (GCallback) _xfmpc_main_window_action_volume_gtk_action_callback}};
-
-
-static void _xfmpc_main_window_action_statusbar_gtk_action_callback (GtkAction* action, gpointer self) {
-	xfmpc_main_window_action_statusbar (self, action);
-}
-
-
-static void _xfmpc_main_window_action_close_gtk_action_callback (GtkAction* action, gpointer self) {
-	xfmpc_main_window_action_close (self);
-}
-
-
-static void _xfmpc_main_window_action_previous_gtk_action_callback (GtkAction* action, gpointer self) {
-	xfmpc_main_window_action_previous (self);
-}
-
-
-static void _xfmpc_main_window_action_pp_gtk_action_callback (GtkAction* action, gpointer self) {
-	xfmpc_main_window_action_pp (self);
-}
-
-
-static void _xfmpc_main_window_action_stop_gtk_action_callback (GtkAction* action, gpointer self) {
-	xfmpc_main_window_action_stop (self);
-}
-
-
-static void _xfmpc_main_window_action_next_gtk_action_callback (GtkAction* action, gpointer self) {
-	xfmpc_main_window_action_next (self);
-}
-
-
-static void _xfmpc_main_window_action_volume_gtk_action_callback (GtkAction* action, gpointer self) {
-	xfmpc_main_window_action_volume (self);
-}
-
-
-static gboolean xfmpc_main_window_refresh (XfmpcMainWindow* self) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	if (xfmpc_mpdclient_is_connected (self->priv->mpdclient)) {
-		xfmpc_mpdclient_update_status (self->priv->mpdclient);
-	} else {
-		xfmpc_interface_reset (self->priv->interface);
-		xfmpc_mpdclient_reload (self->priv->mpdclient);
-		if (self->priv->statusbar != NULL) {
-			xfmpc_statusbar_set_text (self->priv->statusbar, "");
-		}
-		xfmpc_mpdclient_connect (self->priv->mpdclient);
-		if (xfmpc_mpdclient_is_connected (self->priv->mpdclient)) {
-			xfmpc_interface_update_title (self->priv->interface);
-		}
-	}
-	result = TRUE;
-	return result;
-}
-
-
-static gboolean xfmpc_main_window_cb_window_state_event (XfmpcMainWindow* self, const GdkEventWindowState* event) {
-	gboolean result;
-	gboolean _tmp0_;
-	g_return_val_if_fail (self != NULL, FALSE);
-	if ((*event).type != GDK_WINDOW_STATE) {
-		result = FALSE;
-		return result;
-	}
-	_tmp0_ = FALSE;
-	if (((gboolean) (*event).changed_mask) & GDK_WINDOW_STATE_STICKY) {
-		gboolean _tmp1_;
-		_tmp0_ = (g_object_get ((GtkWidget*) self, "visible", &_tmp1_, NULL), _tmp1_);
-	} else {
-		_tmp0_ = FALSE;
-	}
-	/**
-	          * Hiding the top level window will unstick it too, and send a
-	          * window-state-event signal, so here we take the value only if
-	          * the window is visible
-	          **/
-	if (_tmp0_) {
-		gboolean sticky;
-		sticky = FALSE;
-		if ((((gboolean) (*event).new_window_state) & GDK_WINDOW_STATE_STICKY) == FALSE) {
-			sticky = FALSE;
-		} else {
-			sticky = TRUE;
-		}
-		xfmpc_preferences_set_last_window_state_sticky (self->priv->preferences, sticky);
-	}
-	result = FALSE;
-	return result;
-}
-
-
-static gboolean xfmpc_main_window_cb_window_closed (XfmpcMainWindow* self, GdkEvent* event) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	g_return_val_if_fail (event != NULL, FALSE);
-	xfmpc_main_window_close_window (self);
-	result = FALSE;
-	return result;
-}
-
-
-static void xfmpc_main_window_action_close (XfmpcMainWindow* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_main_window_close_window (self);
-}
-
-
-static void xfmpc_main_window_close_window (XfmpcMainWindow* self) {
-	gint posx;
-	gint posy;
-	gint width;
-	gint height;
-	g_return_if_fail (self != NULL);
-	posx = 0;
-	posy = 0;
-	width = 0;
-	height = 0;
-	gtk_window_get_position ((GtkWindow*) self, &posx, &posy);
-	gtk_window_get_size ((GtkWindow*) self, &width, &height);
-	xfmpc_preferences_set_last_window_posx (self->priv->preferences, posx);
-	xfmpc_preferences_set_last_window_posy (self->priv->preferences, posy);
-	xfmpc_preferences_set_last_window_width (self->priv->preferences, width);
-	xfmpc_preferences_set_last_window_height (self->priv->preferences, height);
-	gtk_main_quit ();
-}
-
-
-static void xfmpc_main_window_action_previous (XfmpcMainWindow* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_mpdclient_previous (self->priv->mpdclient);
-}
-
-
-static void xfmpc_main_window_action_pp (XfmpcMainWindow* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_interface_pp_clicked (self->priv->interface);
-}
-
-
-static void xfmpc_main_window_action_stop (XfmpcMainWindow* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_mpdclient_stop (self->priv->mpdclient);
-}
-
-
-static void xfmpc_main_window_action_next (XfmpcMainWindow* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_mpdclient_next (self->priv->mpdclient);
-}
-
-
-static void xfmpc_main_window_action_volume (XfmpcMainWindow* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_interface_popup_volume (self->priv->interface);
-}
-
-
-static void xfmpc_main_window_action_statusbar (XfmpcMainWindow* self, GtkAction* action) {
-	gboolean active;
-	gboolean _tmp0_;
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (action != NULL);
-	active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
-	_tmp0_ = FALSE;
-	if (!active) {
-		_tmp0_ = self->priv->statusbar != NULL;
-	} else {
-		_tmp0_ = FALSE;
-	}
-	if (_tmp0_) {
-		XfmpcStatusbar* _tmp1_;
-		gtk_object_destroy ((GtkObject*) self->priv->statusbar);
-		_tmp1_ = NULL;
-		self->priv->statusbar = (_tmp1_ = NULL, (self->priv->statusbar == NULL) ? NULL : (self->priv->statusbar = (g_object_unref (self->priv->statusbar), NULL)), _tmp1_);
-	} else {
-		gboolean _tmp2_;
-		_tmp2_ = FALSE;
-		if (active) {
-			_tmp2_ = self->priv->statusbar == NULL;
-		} else {
-			_tmp2_ = FALSE;
-		}
-		if (_tmp2_) {
-			XfmpcStatusbar* _tmp3_;
-			_tmp3_ = NULL;
-			self->priv->statusbar = (_tmp3_ = g_object_ref_sink (xfmpc_statusbar_new ()), (self->priv->statusbar == NULL) ? NULL : (self->priv->statusbar = (g_object_unref (self->priv->statusbar), NULL)), _tmp3_);
-			gtk_widget_show ((GtkWidget*) self->priv->statusbar);
-			gtk_box_pack_start ((GtkBox*) self->priv->vbox, (GtkWidget*) self->priv->statusbar, FALSE, FALSE, (guint) 0);
-		}
-	}
-}
-
-
-static void xfmpc_main_window_update_statusbar (XfmpcMainWindow* self) {
-	gint seconds;
-	gint length;
-	GString* text;
-	g_return_if_fail (self != NULL);
-	seconds = 0;
-	length = 0;
-	if (self->priv->statusbar == NULL) {
-		return;
-	}
-	if (!xfmpc_mpdclient_is_connected (self->priv->mpdclient)) {
-		return;
-	}
-	length = xfmpc_mpdclient_playlist_get_length (self->priv->mpdclient);
-	seconds = xfmpc_mpdclient_playlist_get_total_time (self->priv->mpdclient);
-	text = g_string_new ("");
-	if ((seconds / 3600) > 0) {
-		g_string_append_printf (text, _ ("%d songs, %d hours and %d minutes"), length, seconds / 3600, (seconds / 60) % 60);
-	} else {
-		g_string_append_printf (text, _ ("%d songs, %d minutes"), length, (seconds / 60) % 60);
-	}
-	xfmpc_statusbar_set_text (self->priv->statusbar, text->str);
-	(text == NULL) ? NULL : (text = (g_string_free (text, TRUE), NULL));
-}
-
-
-static void xfmpc_main_window_cb_playlist_changed (XfmpcMainWindow* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_main_window_update_statusbar (self);
-}
-
-
-static void xfmpc_main_window_cb_show_statusbar_changed (XfmpcMainWindow* self, GParamSpec* pspec) {
-	GtkAction* _tmp0_;
-	GtkAction* action;
-	gboolean active;
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (pspec != NULL);
-	_tmp0_ = NULL;
-	action = (_tmp0_ = gtk_action_group_get_action (self->priv->action_group, "view-statusbar"), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	active = xfmpc_preferences_get_show_statusbar (self->priv->preferences);
-	gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), active);
-	xfmpc_main_window_update_statusbar (self);
-	(action == NULL) ? NULL : (action = (g_object_unref (action), NULL));
-}
-
-
-XfmpcMainWindow* xfmpc_main_window_construct (GType object_type) {
-	XfmpcMainWindow * self;
-	self = g_object_newv (object_type, 0, NULL);
-	return self;
-}
-
-
-XfmpcMainWindow* xfmpc_main_window_new (void) {
-	return xfmpc_main_window_construct (XFMPC_TYPE_MAIN_WINDOW);
-}
-
-
-static gboolean _xfmpc_main_window_cb_window_closed_gtk_widget_delete_event (GtkWidget* _sender, GdkEvent* event, gpointer self) {
-	return xfmpc_main_window_cb_window_closed (self, event);
-}
-
-
-static gboolean _xfmpc_main_window_cb_window_state_event_gtk_widget_window_state_event (GtkWidget* _sender, const GdkEventWindowState* event, gpointer self) {
-	return xfmpc_main_window_cb_window_state_event (self, event);
-}
-
-
-static void _xfmpc_main_window_cb_playlist_changed_xfmpc_mpdclient_playlist_changed (XfmpcMpdclient* _sender, gpointer self) {
-	xfmpc_main_window_cb_playlist_changed (self);
-}
-
-
-static void _xfmpc_main_window_cb_show_statusbar_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
-	xfmpc_main_window_cb_show_statusbar_changed (self, pspec);
-}
-
-
-static gboolean _xfmpc_main_window_refresh_gsource_func (gpointer self) {
-	return xfmpc_main_window_refresh (self);
-}
-
-
-static GObject * xfmpc_main_window_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
-	GObject * obj;
-	XfmpcMainWindowClass * klass;
-	GObjectClass * parent_class;
-	XfmpcMainWindow * self;
-	GError * _inner_error_;
-	klass = XFMPC_MAIN_WINDOW_CLASS (g_type_class_peek (XFMPC_TYPE_MAIN_WINDOW));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
-	self = XFMPC_MAIN_WINDOW (obj);
-	_inner_error_ = NULL;
-	{
-		GtkVBox* _tmp0_;
-		gboolean _tmp1_;
-		gboolean _tmp2_;
-		XfmpcInterface* _tmp3_;
-		GtkHSeparator* separator;
-		XfmpcExtendedInterface* _tmp4_;
-		GtkUIManager* _tmp5_;
-		GtkActionGroup* _tmp6_;
-		GtkAccelGroup* _tmp7_;
-		GtkAccelGroup* accel_group;
-		self->priv->mpdclient = xfmpc_mpdclient_get_default ();
-		self->priv->preferences = xfmpc_preferences_get_default ();
-		/* Window */
-		gtk_window_set_default_icon_name ("xfmpc");
-		gtk_window_set_icon_name ((GtkWindow*) self, "stock_volume");
-		gtk_window_set_title ((GtkWindow*) self, PACKAGE_NAME);
-		gtk_window_set_default_size ((GtkWindow*) self, 330, 330);
-		g_signal_connect_object ((GtkWidget*) self, "delete-event", (GCallback) _xfmpc_main_window_cb_window_closed_gtk_widget_delete_event, self, 0);
-		g_signal_connect_object ((GtkWidget*) self, "window-state-event", (GCallback) _xfmpc_main_window_cb_window_state_event_gtk_widget_window_state_event, self, 0);
-		_tmp0_ = NULL;
-		self->priv->vbox = (_tmp0_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0)), (self->priv->vbox == NULL) ? NULL : (self->priv->vbox = (g_object_unref (self->priv->vbox), NULL)), _tmp0_);
-		gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->priv->vbox);
-		_tmp1_ = FALSE;
-		if (xfmpc_preferences_get_last_window_posx (self->priv->preferences) != (-1)) {
-			_tmp1_ = xfmpc_preferences_get_last_window_posy (self->priv->preferences) != (-1);
-		} else {
-			_tmp1_ = FALSE;
-		}
-		if (_tmp1_) {
-			gtk_window_move ((GtkWindow*) self, xfmpc_preferences_get_last_window_posx (self->priv->preferences), xfmpc_preferences_get_last_window_posy (self->priv->preferences));
-		}
-		_tmp2_ = FALSE;
-		if (xfmpc_preferences_get_last_window_width (self->priv->preferences) != (-1)) {
-			_tmp2_ = xfmpc_preferences_get_last_window_height (self->priv->preferences) != (-1);
-		} else {
-			_tmp2_ = FALSE;
-		}
-		if (_tmp2_) {
-			gtk_window_set_default_size ((GtkWindow*) self, xfmpc_preferences_get_last_window_width (self->priv->preferences), xfmpc_preferences_get_last_window_height (self->priv->preferences));
-		}
-		if (xfmpc_preferences_get_last_window_state_sticky (self->priv->preferences) == TRUE) {
-			gtk_window_stick ((GtkWindow*) self);
-		}
-		/* Interface */
-		_tmp3_ = NULL;
-		self->priv->interface = (_tmp3_ = g_object_ref_sink (xfmpc_interface_new ()), (self->priv->interface == NULL) ? NULL : (self->priv->interface = (g_object_unref (self->priv->interface), NULL)), _tmp3_);
-		gtk_box_pack_start ((GtkBox*) self->priv->vbox, (GtkWidget*) self->priv->interface, FALSE, FALSE, (guint) 4);
-		/* Separator */
-		separator = g_object_ref_sink ((GtkHSeparator*) gtk_hseparator_new ());
-		gtk_box_pack_start ((GtkBox*) self->priv->vbox, (GtkWidget*) separator, FALSE, FALSE, (guint) 0);
-		/* ExtendedInterface */
-		_tmp4_ = NULL;
-		self->priv->extended_interface = (_tmp4_ = g_object_ref_sink (xfmpc_extended_interface_new ()), (self->priv->extended_interface == NULL) ? NULL : (self->priv->extended_interface = (g_object_unref (self->priv->extended_interface), NULL)), _tmp4_);
-		gtk_box_pack_start ((GtkBox*) self->priv->vbox, (GtkWidget*) self->priv->extended_interface, TRUE, TRUE, (guint) 0);
-		/* Accelerators */
-		_tmp5_ = NULL;
-		self->priv->ui_manager = (_tmp5_ = gtk_ui_manager_new (), (self->priv->ui_manager == NULL) ? NULL : (self->priv->ui_manager = (g_object_unref (self->priv->ui_manager), NULL)), _tmp5_);
-		/* Action group */
-		_tmp6_ = NULL;
-		self->priv->action_group = (_tmp6_ = gtk_action_group_new ("XfmpcMainWindow"), (self->priv->action_group == NULL) ? NULL : (self->priv->action_group = (g_object_unref (self->priv->action_group), NULL)), _tmp6_);
-		gtk_action_group_add_actions (self->priv->action_group, XFMPC_MAIN_WINDOW_action_entries, G_N_ELEMENTS (XFMPC_MAIN_WINDOW_action_entries), self);
-		gtk_action_group_add_toggle_actions (self->priv->action_group, XFMPC_MAIN_WINDOW_toggle_action_entries, G_N_ELEMENTS (XFMPC_MAIN_WINDOW_toggle_action_entries), self);
-		gtk_ui_manager_insert_action_group (self->priv->ui_manager, self->priv->action_group, 0);
-		{
-			gtk_ui_manager_add_ui_from_string (self->priv->ui_manager, XFMPC_MAIN_WINDOW_ui_string, (gssize) (-1), &_inner_error_);
-			if (_inner_error_ != NULL) {
-				goto __catch0_g_error;
-				goto __finally0;
-			}
-		}
-		goto __finally0;
-		__catch0_g_error:
-		{
-			GError * e;
-			e = _inner_error_;
-			_inner_error_ = NULL;
-			{
-				g_warning (e->message);
-				(e == NULL) ? NULL : (e = (g_error_free (e), NULL));
-			}
-		}
-		__finally0:
-		if (_inner_error_ != NULL) {
-			(separator == NULL) ? NULL : (separator = (g_object_unref (separator), NULL));
-			g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message);
-			g_clear_error (&_inner_error_);
-		}
-		/* Accel group */
-		_tmp7_ = NULL;
-		accel_group = (_tmp7_ = gtk_ui_manager_get_accel_group (self->priv->ui_manager), (_tmp7_ == NULL) ? NULL : g_object_ref (_tmp7_));
-		gtk_window_add_accel_group ((GtkWindow*) self, accel_group);
-		/* show-statusbar action */
-		gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (gtk_action_group_get_action (self->priv->action_group, "view-statusbar")), xfmpc_preferences_get_show_statusbar (self->priv->preferences));
-		/* === Signals === */
-		g_signal_connect_object (self->priv->mpdclient, "playlist-changed", (GCallback) _xfmpc_main_window_cb_playlist_changed_xfmpc_mpdclient_playlist_changed, self, 0);
-		g_signal_connect_object ((GObject*) self->priv->preferences, "notify::show-statusbar", (GCallback) _xfmpc_main_window_cb_show_statusbar_changed_g_object_notify, self, 0);
-		/* === Timeout === */
-		g_timeout_add ((guint) 1000, _xfmpc_main_window_refresh_gsource_func, self);
-		(separator == NULL) ? NULL : (separator = (g_object_unref (separator), NULL));
-		(accel_group == NULL) ? NULL : (accel_group = (g_object_unref (accel_group), NULL));
-	}
-	return obj;
-}
-
-
-static void xfmpc_main_window_class_init (XfmpcMainWindowClass * klass) {
-	xfmpc_main_window_parent_class = g_type_class_peek_parent (klass);
-	g_type_class_add_private (klass, sizeof (XfmpcMainWindowPrivate));
-	G_OBJECT_CLASS (klass)->constructor = xfmpc_main_window_constructor;
-	G_OBJECT_CLASS (klass)->finalize = xfmpc_main_window_finalize;
-}
-
-
-static void xfmpc_main_window_instance_init (XfmpcMainWindow * self) {
-	self->priv = XFMPC_MAIN_WINDOW_GET_PRIVATE (self);
-}
-
-
-static void xfmpc_main_window_finalize (GObject* obj) {
-	XfmpcMainWindow * self;
-	self = XFMPC_MAIN_WINDOW (obj);
-	(self->priv->interface == NULL) ? NULL : (self->priv->interface = (g_object_unref (self->priv->interface), NULL));
-	(self->priv->extended_interface == NULL) ? NULL : (self->priv->extended_interface = (g_object_unref (self->priv->extended_interface), NULL));
-	(self->priv->vbox == NULL) ? NULL : (self->priv->vbox = (g_object_unref (self->priv->vbox), NULL));
-	(self->priv->action_group == NULL) ? NULL : (self->priv->action_group = (g_object_unref (self->priv->action_group), NULL));
-	(self->priv->ui_manager == NULL) ? NULL : (self->priv->ui_manager = (g_object_unref (self->priv->ui_manager), NULL));
-	(self->priv->statusbar == NULL) ? NULL : (self->priv->statusbar = (g_object_unref (self->priv->statusbar), NULL));
-	G_OBJECT_CLASS (xfmpc_main_window_parent_class)->finalize (obj);
-}
-
-
-GType xfmpc_main_window_get_type (void) {
-	static GType xfmpc_main_window_type_id = 0;
-	if (xfmpc_main_window_type_id == 0) {
-		static const GTypeInfo g_define_type_info = { sizeof (XfmpcMainWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) xfmpc_main_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (XfmpcMainWindow), 0, (GInstanceInitFunc) xfmpc_main_window_instance_init, NULL };
-		xfmpc_main_window_type_id = g_type_register_static (GTK_TYPE_WINDOW, "XfmpcMainWindow", &g_define_type_info, 0);
-	}
-	return xfmpc_main_window_type_id;
-}
-
-
-
-
diff --git a/src/main.c b/src/main.c
deleted file mode 100644
index 22bd45d..0000000
--- a/src/main.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- *  Copyright (c) 2009 Mike Massonnet <mmassonnet at xfce.org>
- *  Copyright (c) 2009 Vincent Legout <vincent at xfce.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include <glib.h>
-#include <glib-object.h>
-#include <stdlib.h>
-#include <string.h>
-#include <libxfce4util/libxfce4util.h>
-#include <config.h>
-#include <gtk/gtk.h>
-
-
-#define XFMPC_PREFERENCES_TYPE_SONG_FORMAT (xfmpc_preferences_song_format_get_type ())
-
-#define XFMPC_TYPE_MAIN_WINDOW (xfmpc_main_window_get_type ())
-#define XFMPC_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_MAIN_WINDOW, XfmpcMainWindow))
-#define XFMPC_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_MAIN_WINDOW, XfmpcMainWindowClass))
-#define XFMPC_IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_MAIN_WINDOW))
-#define XFMPC_IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_MAIN_WINDOW))
-#define XFMPC_MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_MAIN_WINDOW, XfmpcMainWindowClass))
-
-typedef struct _XfmpcMainWindow XfmpcMainWindow;
-typedef struct _XfmpcMainWindowClass XfmpcMainWindowClass;
-
-typedef enum  {
-	XFMPC_PREFERENCES_SONG_FORMAT_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ALBUM_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE_DATE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TRACK_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_CUSTOM_FORMAT
-} XfmpcPreferencesSongFormat;
-
-
-
-void xfmpc_transform_string_to_int (const GValue* src, GValue* dst);
-void xfmpc_transform_string_to_boolean (const GValue* src, GValue* dst);
-void xfmpc_transform_string_to_enum (const GValue* src, GValue* dst);
-GType xfmpc_preferences_song_format_get_type (void);
-XfmpcMainWindow* xfmpc_main_window_new (void);
-XfmpcMainWindow* xfmpc_main_window_construct (GType object_type);
-GType xfmpc_main_window_get_type (void);
-gint xfmpc_main (char** args, int args_length1);
-
-
-
-void xfmpc_transform_string_to_int (const GValue* src, GValue* dst) {
-	g_value_set_int (&(*dst), (gint) strtoul (g_value_get_string (&(*src)), NULL, 0));
-}
-
-
-void xfmpc_transform_string_to_boolean (const GValue* src, GValue* dst) {
-	g_value_set_boolean (&(*dst), g_utf8_collate (g_value_get_string (&(*src)), "FALSE") != 0);
-}
-
-
-void xfmpc_transform_string_to_enum (const GValue* src, GValue* dst) {
-	GEnumClass* klass;
-	gint i;
-	GEnumValue* enum_value;
-	klass = (GEnumClass*) g_type_class_ref (G_VALUE_TYPE (&(*dst)));
-	i = 0;
-	enum_value = NULL;
-	while (TRUE) {
-		char* _tmp1_;
-		char* _tmp0_;
-		gboolean _tmp2_;
-		if (!((enum_value = g_enum_get_value (klass, i)) != NULL)) {
-			break;
-		}
-		_tmp1_ = NULL;
-		_tmp0_ = NULL;
-		if ((_tmp2_ = strcmp (_tmp0_ = g_utf8_casefold (enum_value->value_name, -1), _tmp1_ = g_utf8_casefold (g_value_get_string (&(*src)), -1)) == 0, _tmp1_ = (g_free (_tmp1_), NULL), _tmp0_ = (g_free (_tmp0_), NULL), _tmp2_)) {
-			break;
-		}
-		i++;
-	}
-	g_value_set_enum (&(*dst), enum_value->value);
-	(klass == NULL) ? NULL : (klass = (g_type_class_unref (klass), NULL));
-}
-
-
-gint xfmpc_main (char** args, int args_length1) {
-	gint result;
-	XfmpcMainWindow* window;
-	xfce_textdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR, "UTF-8");
-	gtk_init (&args_length1, &args);
-	g_value_register_transform_func (G_TYPE_STRING, G_TYPE_INT, (GValueTransform) xfmpc_transform_string_to_int);
-	g_value_register_transform_func (G_TYPE_STRING, G_TYPE_BOOLEAN, (GValueTransform) xfmpc_transform_string_to_boolean);
-	g_value_register_transform_func (G_TYPE_STRING, XFMPC_PREFERENCES_TYPE_SONG_FORMAT, (GValueTransform) xfmpc_transform_string_to_enum);
-	window = g_object_ref_sink (xfmpc_main_window_new ());
-	gtk_widget_show_all ((GtkWidget*) window);
-	gtk_main ();
-	result = 0;
-	(window == NULL) ? NULL : (window = (g_object_unref (window), NULL));
-	return result;
-}
-
-
-int main (int argc, char ** argv) {
-	g_type_init ();
-	return xfmpc_main (argv, argc);
-}
-
-
-
-
diff --git a/src/playlist.c b/src/playlist.c
deleted file mode 100644
index 28aed64..0000000
--- a/src/playlist.c
+++ /dev/null
@@ -1,971 +0,0 @@
-/*
- *  Copyright (c) 2009 Mike Massonnet <mmassonnet at xfce.org>
- *  Copyright (c) 2009 Vincent Legout <vincent at xfce.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include <mpdclient.h>
-#include <stdlib.h>
-#include <string.h>
-#include <libxfcegui4/libxfcegui4.h>
-#include <gdk/gdk.h>
-#include <pango/pango.h>
-#include <float.h>
-#include <math.h>
-#include <glib/gi18n-lib.h>
-
-
-#define XFMPC_TYPE_PLAYLIST (xfmpc_playlist_get_type ())
-#define XFMPC_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PLAYLIST, XfmpcPlaylist))
-#define XFMPC_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PLAYLIST, XfmpcPlaylistClass))
-#define XFMPC_IS_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PLAYLIST))
-#define XFMPC_IS_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PLAYLIST))
-#define XFMPC_PLAYLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PLAYLIST, XfmpcPlaylistClass))
-
-typedef struct _XfmpcPlaylist XfmpcPlaylist;
-typedef struct _XfmpcPlaylistClass XfmpcPlaylistClass;
-typedef struct _XfmpcPlaylistPrivate XfmpcPlaylistPrivate;
-
-#define XFMPC_TYPE_PREFERENCES (xfmpc_preferences_get_type ())
-#define XFMPC_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferences))
-#define XFMPC_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-#define XFMPC_IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-
-typedef struct _XfmpcPreferences XfmpcPreferences;
-typedef struct _XfmpcPreferencesClass XfmpcPreferencesClass;
-
-#define XFMPC_PLAYLIST_TYPE_COLUMNS (xfmpc_playlist_columns_get_type ())
-
-#define XFMPC_TYPE_DBBROWSER (xfmpc_dbbrowser_get_type ())
-#define XFMPC_DBBROWSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowser))
-#define XFMPC_DBBROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowserClass))
-#define XFMPC_IS_DBBROWSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_DBBROWSER))
-#define XFMPC_IS_DBBROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_DBBROWSER))
-#define XFMPC_DBBROWSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowserClass))
-
-typedef struct _XfmpcDbbrowser XfmpcDbbrowser;
-typedef struct _XfmpcDbbrowserClass XfmpcDbbrowserClass;
-
-#define XFMPC_TYPE_EXTENDED_INTERFACE (xfmpc_extended_interface_get_type ())
-#define XFMPC_EXTENDED_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterface))
-#define XFMPC_EXTENDED_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterfaceClass))
-#define XFMPC_IS_EXTENDED_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_EXTENDED_INTERFACE))
-#define XFMPC_IS_EXTENDED_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_EXTENDED_INTERFACE))
-#define XFMPC_EXTENDED_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterfaceClass))
-
-typedef struct _XfmpcExtendedInterface XfmpcExtendedInterface;
-typedef struct _XfmpcExtendedInterfaceClass XfmpcExtendedInterfaceClass;
-
-#define XFMPC_EXTENDED_INTERFACE_TYPE_EXTENDED_INTERFACE_WIDGET (xfmpc_extended_interface_extended_interface_widget_get_type ())
-
-#define XFMPC_TYPE_SONG_DIALOG (xfmpc_song_dialog_get_type ())
-#define XFMPC_SONG_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_SONG_DIALOG, XfmpcSongDialog))
-#define XFMPC_SONG_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_SONG_DIALOG, XfmpcSongDialogClass))
-#define XFMPC_IS_SONG_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_SONG_DIALOG))
-#define XFMPC_IS_SONG_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_SONG_DIALOG))
-#define XFMPC_SONG_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_SONG_DIALOG, XfmpcSongDialogClass))
-
-typedef struct _XfmpcSongDialog XfmpcSongDialog;
-typedef struct _XfmpcSongDialogClass XfmpcSongDialogClass;
-
-struct _XfmpcPlaylist {
-	GtkVBox parent_instance;
-	XfmpcPlaylistPrivate * priv;
-};
-
-struct _XfmpcPlaylistClass {
-	GtkVBoxClass parent_class;
-};
-
-struct _XfmpcPlaylistPrivate {
-	XfmpcMpdclient* mpdclient;
-	XfmpcPreferences* preferences;
-	GtkListStore* store;
-	GtkTreeModelFilter* filter;
-	GtkTreeView* treeview;
-	GtkMenu* menu;
-	GtkImageMenuItem* mi_browse;
-	GtkImageMenuItem* mi_information;
-	gint current;
-	gboolean autocenter;
-};
-
-typedef enum  {
-	XFMPC_PLAYLIST_COLUMNS_COLUMN_ID,
-	XFMPC_PLAYLIST_COLUMNS_COLUMN_FILENAME,
-	XFMPC_PLAYLIST_COLUMNS_COLUMN_POSITION,
-	XFMPC_PLAYLIST_COLUMNS_COLUMN_SONG,
-	XFMPC_PLAYLIST_COLUMNS_COLUMN_LENGTH,
-	XFMPC_PLAYLIST_COLUMNS_COLUMN_WEIGHT,
-	XFMPC_PLAYLIST_COLUMNS_N_COLUMNS
-} XfmpcPlaylistColumns;
-
-typedef enum  {
-	XFMPC_EXTENDED_INTERFACE_EXTENDED_INTERFACE_WIDGET_PLAYLIST,
-	XFMPC_EXTENDED_INTERFACE_EXTENDED_INTERFACE_WIDGET_DBBROWSER
-} XfmpcExtendedInterfaceExtendedInterfaceWidget;
-
-
-static GtkEntry* xfmpc_playlist_filter_entry;
-static GtkEntry* xfmpc_playlist_filter_entry = NULL;
-static gpointer xfmpc_playlist_parent_class = NULL;
-
-GType xfmpc_playlist_get_type (void);
-GType xfmpc_preferences_get_type (void);
-#define XFMPC_PLAYLIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), XFMPC_TYPE_PLAYLIST, XfmpcPlaylistPrivate))
-enum  {
-	XFMPC_PLAYLIST_DUMMY_PROPERTY
-};
-static GType xfmpc_playlist_columns_get_type (void);
-static gboolean xfmpc_playlist_visible_func_filter_tree (GtkTreeModel* model, GtkTreeIter* iter);
-GType xfmpc_dbbrowser_get_type (void);
-GType xfmpc_extended_interface_get_type (void);
-static void _g_list_free_gtk_tree_path_free (GList* self);
-void xfmpc_dbbrowser_set_wdir (XfmpcDbbrowser* self, const char* dir);
-void xfmpc_dbbrowser_reload (XfmpcDbbrowser* self);
-GType xfmpc_extended_interface_extended_interface_widget_get_type (void);
-void xfmpc_extended_interface_set_active (XfmpcExtendedInterface* self, XfmpcExtendedInterfaceExtendedInterfaceWidget active_widget);
-static void xfmpc_playlist_cb_browse_selection (XfmpcPlaylist* self);
-XfmpcSongDialog* xfmpc_song_dialog_new (gint song_id);
-XfmpcSongDialog* xfmpc_song_dialog_construct (GType object_type, gint song_id);
-GType xfmpc_song_dialog_get_type (void);
-static void xfmpc_playlist_cb_info_selection (XfmpcPlaylist* self);
-static void xfmpc_playlist_menu_popup (XfmpcPlaylist* self);
-static gboolean xfmpc_playlist_cb_popup_menu (XfmpcPlaylist* self);
-void xfmpc_playlist_refresh_current_song (XfmpcPlaylist* self);
-static void xfmpc_playlist_cb_pp_changed (XfmpcPlaylist* self, gboolean is_playing);
-static void xfmpc_playlist_cb_song_changed (XfmpcPlaylist* self);
-void xfmpc_playlist_append (XfmpcPlaylist* self, gint id, gint pos, const char* filename, const char* song, const char* length);
-static void xfmpc_playlist_cb_playlist_changed (XfmpcPlaylist* self);
-static void xfmpc_playlist_cb_row_activated (XfmpcPlaylist* self, const GtkTreePath* path, GtkTreeViewColumn* column);
-void xfmpc_playlist_delete_selection (XfmpcPlaylist* self);
-static gboolean xfmpc_playlist_cb_key_released (XfmpcPlaylist* self, const GdkEventKey* event);
-static gboolean xfmpc_playlist_cb_button_released (XfmpcPlaylist* self, const GdkEventButton* event);
-void xfmpc_playlist_select_row (XfmpcPlaylist* self, gint i);
-static void xfmpc_playlist_cb_filter_entry_activated (XfmpcPlaylist* self);
-static gboolean xfmpc_playlist_cb_filter_entry_key_released (XfmpcPlaylist* self, const GdkEventKey* event);
-static void xfmpc_playlist_cb_filter_entry_changed (XfmpcPlaylist* self);
-gboolean xfmpc_playlist_has_filename (XfmpcPlaylist* self, const char* filename, gboolean is_dir);
-XfmpcPlaylist* xfmpc_playlist_new (void);
-XfmpcPlaylist* xfmpc_playlist_construct (GType object_type);
-XfmpcPreferences* xfmpc_preferences_get_default (void);
-gboolean xfmpc_preferences_get_playlist_autocenter (XfmpcPreferences* self);
-static void _xfmpc_playlist_delete_selection_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
-static void _xfmpc_playlist_cb_browse_selection_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
-static void _xfmpc_playlist_cb_info_selection_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
-static void _xfmpc_playlist_cb_pp_changed_xfmpc_mpdclient_pp_changed (XfmpcMpdclient* _sender, gboolean is_playing, gpointer self);
-static void _xfmpc_playlist_cb_song_changed_xfmpc_mpdclient_song_changed (XfmpcMpdclient* _sender, gpointer self);
-static void _xfmpc_playlist_cb_playlist_changed_xfmpc_mpdclient_playlist_changed (XfmpcMpdclient* _sender, gpointer self);
-static void _xfmpc_playlist_cb_row_activated_gtk_tree_view_row_activated (GtkTreeView* _sender, const GtkTreePath* path, GtkTreeViewColumn* column, gpointer self);
-static gboolean _xfmpc_playlist_cb_key_released_gtk_widget_key_release_event (GtkWidget* _sender, const GdkEventKey* event, gpointer self);
-static gboolean _xfmpc_playlist_cb_button_released_gtk_widget_button_press_event (GtkWidget* _sender, const GdkEventButton* event, gpointer self);
-static gboolean _xfmpc_playlist_cb_popup_menu_gtk_widget_popup_menu (GtkWidget* _sender, gpointer self);
-static void _xfmpc_playlist_cb_filter_entry_activated_gtk_entry_activate (GtkEntry* _sender, gpointer self);
-static gboolean _xfmpc_playlist_cb_filter_entry_key_released_gtk_widget_key_release_event (GtkWidget* _sender, const GdkEventKey* event, gpointer self);
-static void _xfmpc_playlist_cb_filter_entry_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self);
-static void _xfmpc_playlist_cb_playlist_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
-static GObject * xfmpc_playlist_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
-static void xfmpc_playlist_finalize (GObject* obj);
-static int _vala_strcmp0 (const char * str1, const char * str2);
-
-
-
-
-static GType xfmpc_playlist_columns_get_type (void) {
-	static GType xfmpc_playlist_columns_type_id = 0;
-	if (G_UNLIKELY (xfmpc_playlist_columns_type_id == 0)) {
-		static const GEnumValue values[] = {{XFMPC_PLAYLIST_COLUMNS_COLUMN_ID, "XFMPC_PLAYLIST_COLUMNS_COLUMN_ID", "column-id"}, {XFMPC_PLAYLIST_COLUMNS_COLUMN_FILENAME, "XFMPC_PLAYLIST_COLUMNS_COLUMN_FILENAME", "column-filename"}, {XFMPC_PLAYLIST_COLUMNS_COLUMN_POSITION, "XFMPC_PLAYLIST_COLUMNS_COLUMN_POSITION", "column-position"}, {XFMPC_PLAYLIST_COLUMNS_COLUMN_SONG, "XFMPC_PLAYLIST_COLUMNS_COLUMN_SONG", "column-song"}, {XFMPC_PLAYLIST_COLUMNS_COLUMN_LENGTH, "XFMPC_PLAYLIST_COLUMNS_COLUMN_LENGTH", "column-length"}, {XFMPC_PLAYLIST_COLUMNS_COLUMN_WEIGHT, "XFMPC_PLAYLIST_COLUMNS_COLUMN_WEIGHT", "column-weight"}, {XFMPC_PLAYLIST_COLUMNS_N_COLUMNS, "XFMPC_PLAYLIST_COLUMNS_N_COLUMNS", "n-columns"}, {0, NULL, NULL}};
-		xfmpc_playlist_columns_type_id = g_enum_register_static ("XfmpcPlaylistColumns", values);
-	}
-	return xfmpc_playlist_columns_type_id;
-}
-
-
-static gboolean xfmpc_playlist_visible_func_filter_tree (GtkTreeModel* model, GtkTreeIter* iter) {
-	gboolean result;
-	char* song;
-	char* search;
-	gboolean _result_;
-	char* _tmp1_;
-	const char* _tmp0_;
-	char* _tmp2_;
-	g_return_val_if_fail (model != NULL, FALSE);
-	song = g_strdup ("");
-	search = g_strdup ("");
-	_result_ = TRUE;
-	gtk_tree_model_get (model, &(*iter), XFMPC_PLAYLIST_COLUMNS_COLUMN_SONG, &song, -1, -1);
-	if (_vala_strcmp0 (song, "") == 0) {
-		result = TRUE;
-		song = (g_free (song), NULL);
-		search = (g_free (search), NULL);
-		return result;
-	}
-	_tmp1_ = NULL;
-	_tmp0_ = NULL;
-	search = (_tmp1_ = (_tmp0_ = gtk_entry_get_text (xfmpc_playlist_filter_entry), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), search = (g_free (search), NULL), _tmp1_);
-	_tmp2_ = NULL;
-	search = (_tmp2_ = g_utf8_casefold (search, (gssize) (-1)), search = (g_free (search), NULL), _tmp2_);
-	if (_vala_strcmp0 (search, "") != 0) {
-		char* _tmp3_;
-		_tmp3_ = NULL;
-		song = (_tmp3_ = g_utf8_casefold (song, (gssize) (-1)), song = (g_free (song), NULL), _tmp3_);
-		if (strstr (song, search) == NULL) {
-			_result_ = FALSE;
-		}
-	}
-	result = _result_;
-	song = (g_free (song), NULL);
-	search = (g_free (search), NULL);
-	return result;
-}
-
-
-static void _g_list_free_gtk_tree_path_free (GList* self) {
-	g_list_foreach (self, (GFunc) gtk_tree_path_free, NULL);
-	g_list_free (self);
-}
-
-
-/*
- * Signal callbacks
- */
-static void xfmpc_playlist_cb_browse_selection (XfmpcPlaylist* self) {
-	XfmpcDbbrowser* dbbrowser;
-	XfmpcExtendedInterface* extended_interface;
-	GtkTreeSelection* _tmp0_;
-	GtkTreeSelection* selection;
-	GtkTreeModel* _tmp1_;
-	GtkTreeModel* model;
-	GtkTreeModel* _tmp5_;
-	GtkTreeModel* _tmp4_;
-	GList* _tmp3_;
-	GtkTreeModel* _tmp2_;
-	GList* list;
-	GtkTreeIter iter = {0};
-	const GtkTreePath* _tmp6_;
-	GtkTreePath* path;
-	g_return_if_fail (self != NULL);
-	dbbrowser = NULL;
-	extended_interface = NULL;
-	dbbrowser = XFMPC_DBBROWSER (g_object_get_data ((GObject*) self, "XfmpcDbbrowser"));
-	extended_interface = XFMPC_EXTENDED_INTERFACE (g_object_get_data ((GObject*) self, "XfmpcExtendedInterface"));
-	_tmp0_ = NULL;
-	selection = (_tmp0_ = gtk_tree_view_get_selection (self->priv->treeview), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	if (gtk_tree_selection_count_selected_rows (selection) > 1) {
-		(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-		return;
-	}
-	_tmp1_ = NULL;
-	model = (_tmp1_ = (GtkTreeModel*) self->priv->store, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_));
-	_tmp5_ = NULL;
-	_tmp4_ = NULL;
-	_tmp3_ = NULL;
-	_tmp2_ = NULL;
-	list = (_tmp3_ = gtk_tree_selection_get_selected_rows (selection, &_tmp2_), model = (_tmp4_ = (_tmp5_ = _tmp2_, (_tmp5_ == NULL) ? NULL : g_object_ref (_tmp5_)), (model == NULL) ? NULL : (model = (g_object_unref (model), NULL)), _tmp4_), _tmp3_);
-	if (g_list_length (list) == 0) {
-		(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-		(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-		(list == NULL) ? NULL : (list = (_g_list_free_gtk_tree_path_free (list), NULL));
-		return;
-	}
-	_tmp6_ = NULL;
-	path = (_tmp6_ = (const GtkTreePath*) g_list_nth_data (list, (guint) 0), (_tmp6_ == NULL) ? NULL : gtk_tree_path_copy (_tmp6_));
-	if (gtk_tree_model_get_iter ((GtkTreeModel*) self->priv->store, &iter, path)) {
-		char* filename;
-		char* dir;
-		char* _tmp7_;
-		filename = g_strdup ("");
-		dir = NULL;
-		gtk_tree_model_get ((GtkTreeModel*) self->priv->store, &iter, XFMPC_PLAYLIST_COLUMNS_COLUMN_FILENAME, &filename, -1, -1);
-		_tmp7_ = NULL;
-		dir = (_tmp7_ = g_path_get_dirname (filename), dir = (g_free (dir), NULL), _tmp7_);
-		xfmpc_dbbrowser_set_wdir (dbbrowser, dir);
-		xfmpc_dbbrowser_reload (dbbrowser);
-		xfmpc_extended_interface_set_active (extended_interface, XFMPC_EXTENDED_INTERFACE_EXTENDED_INTERFACE_WIDGET_DBBROWSER);
-		filename = (g_free (filename), NULL);
-		dir = (g_free (dir), NULL);
-	}
-	(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-	(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-	(list == NULL) ? NULL : (list = (_g_list_free_gtk_tree_path_free (list), NULL));
-	(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-}
-
-
-static void xfmpc_playlist_cb_info_selection (XfmpcPlaylist* self) {
-	GtkTreeIter iter = {0};
-	gint id;
-	GtkTreeSelection* _tmp0_;
-	GtkTreeSelection* selection;
-	GtkTreeModel* _tmp1_;
-	GtkTreeModel* model;
-	GtkTreeModel* _tmp5_;
-	GtkTreeModel* _tmp4_;
-	GList* _tmp3_;
-	GtkTreeModel* _tmp2_;
-	GList* list;
-	const GtkTreePath* _tmp6_;
-	GtkTreePath* path;
-	g_return_if_fail (self != NULL);
-	id = 0;
-	_tmp0_ = NULL;
-	selection = (_tmp0_ = gtk_tree_view_get_selection (self->priv->treeview), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	if (gtk_tree_selection_count_selected_rows (selection) > 1) {
-		(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-		return;
-	}
-	_tmp1_ = NULL;
-	model = (_tmp1_ = (GtkTreeModel*) self->priv->store, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_));
-	_tmp5_ = NULL;
-	_tmp4_ = NULL;
-	_tmp3_ = NULL;
-	_tmp2_ = NULL;
-	list = (_tmp3_ = gtk_tree_selection_get_selected_rows (selection, &_tmp2_), model = (_tmp4_ = (_tmp5_ = _tmp2_, (_tmp5_ == NULL) ? NULL : g_object_ref (_tmp5_)), (model == NULL) ? NULL : (model = (g_object_unref (model), NULL)), _tmp4_), _tmp3_);
-	if (g_list_length (list) == 0) {
-		(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-		(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-		(list == NULL) ? NULL : (list = (_g_list_free_gtk_tree_path_free (list), NULL));
-		return;
-	}
-	_tmp6_ = NULL;
-	path = (_tmp6_ = (const GtkTreePath*) g_list_nth_data (list, (guint) 0), (_tmp6_ == NULL) ? NULL : gtk_tree_path_copy (_tmp6_));
-	if (gtk_tree_model_get_iter ((GtkTreeModel*) self->priv->store, &iter, path)) {
-		XfmpcSongDialog* dialog;
-		gtk_tree_model_get ((GtkTreeModel*) self->priv->store, &iter, XFMPC_PLAYLIST_COLUMNS_COLUMN_ID, &id, -1, -1);
-		dialog = g_object_ref_sink (xfmpc_song_dialog_new (id));
-		gtk_widget_show_all ((GtkWidget*) dialog);
-		(dialog == NULL) ? NULL : (dialog = (g_object_unref (dialog), NULL));
-	}
-	(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-	(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-	(list == NULL) ? NULL : (list = (_g_list_free_gtk_tree_path_free (list), NULL));
-	(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-}
-
-
-static gboolean xfmpc_playlist_cb_popup_menu (XfmpcPlaylist* self) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	xfmpc_playlist_menu_popup (self);
-	result = TRUE;
-	return result;
-}
-
-
-static void xfmpc_playlist_cb_pp_changed (XfmpcPlaylist* self, gboolean is_playing) {
-	g_return_if_fail (self != NULL);
-	/* This callback is needed cause there is an unknown state of the current
-	 * song when MPD is stopped and you run the client. When the client then
-	 * starts to play, the song-changed signal is not send and the current song
-	 * is kept on the first entry of te playlist. On another hand it also
-	 * refocus the current song in the playlist between play/pause which can be
-	 * nice ;-) */
-	xfmpc_playlist_refresh_current_song (self);
-}
-
-
-static void xfmpc_playlist_cb_song_changed (XfmpcPlaylist* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_playlist_refresh_current_song (self);
-}
-
-
-static void xfmpc_playlist_cb_playlist_changed (XfmpcPlaylist* self) {
-	char* filename;
-	char* song;
-	char* length;
-	gint id;
-	gint pos;
-	g_return_if_fail (self != NULL);
-	filename = NULL;
-	song = NULL;
-	length = NULL;
-	id = 0;
-	pos = 0;
-	self->priv->current = xfmpc_mpdclient_get_id (self->priv->mpdclient);
-	gtk_list_store_clear (self->priv->store);
-	while (TRUE) {
-		if (!xfmpc_mpdclient_playlist_read (self->priv->mpdclient, &id, &pos, &filename, &song, &length)) {
-			break;
-		}
-		xfmpc_playlist_append (self, id, pos, filename, song, length);
-	}
-	xfmpc_playlist_refresh_current_song (self);
-	filename = (g_free (filename), NULL);
-	song = (g_free (song), NULL);
-	length = (g_free (length), NULL);
-}
-
-
-static void xfmpc_playlist_cb_row_activated (XfmpcPlaylist* self, const GtkTreePath* path, GtkTreeViewColumn* column) {
-	GtkTreeIter iter = {0};
-	const GtkTreePath* _tmp0_;
-	GtkTreePath* new_path;
-	gint id;
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (path != NULL);
-	g_return_if_fail (column != NULL);
-	_tmp0_ = NULL;
-	new_path = (_tmp0_ = path, (_tmp0_ == NULL) ? NULL : gtk_tree_path_copy (_tmp0_));
-	id = 0;
-	if (!gtk_tree_model_get_iter ((GtkTreeModel*) self->priv->filter, &iter, new_path)) {
-		(new_path == NULL) ? NULL : (new_path = (gtk_tree_path_free (new_path), NULL));
-		return;
-	}
-	gtk_tree_model_get ((GtkTreeModel*) self->priv->filter, &iter, XFMPC_PLAYLIST_COLUMNS_COLUMN_ID, &id, -1, -1);
-	xfmpc_mpdclient_set_id (self->priv->mpdclient, id);
-	(new_path == NULL) ? NULL : (new_path = (gtk_tree_path_free (new_path), NULL));
-}
-
-
-static gboolean xfmpc_playlist_cb_key_released (XfmpcPlaylist* self, const GdkEventKey* event) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	if ((*event).type != GDK_KEY_RELEASE) {
-		result = FALSE;
-		return result;
-	}
-	/* Suppr key */
-	switch ((*event).keyval) {
-		case 0xffff:
-		{
-			xfmpc_playlist_delete_selection (self);
-			break;
-		}
-		default:
-		{
-			result = FALSE;
-			return result;
-		}
-	}
-	result = TRUE;
-	return result;
-}
-
-
-static gboolean xfmpc_playlist_cb_button_released (XfmpcPlaylist* self, const GdkEventButton* event) {
-	gboolean result;
-	GtkTreePath* path;
-	GtkTreeSelection* selection;
-	gboolean _tmp0_;
-	GtkTreeSelection* _tmp2_;
-	GtkTreeSelection* _tmp1_;
-	gboolean sensitive;
-	GtkTreePath* _tmp5_;
-	gboolean _tmp4_;
-	GtkTreePath* _tmp3_;
-	g_return_val_if_fail (self != NULL, FALSE);
-	path = NULL;
-	selection = NULL;
-	_tmp0_ = FALSE;
-	if ((*event).type != GDK_BUTTON_PRESS) {
-		_tmp0_ = TRUE;
-	} else {
-		_tmp0_ = (*event).button != 3;
-	}
-	if (_tmp0_) {
-		result = FALSE;
-		(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-		(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-		return result;
-	}
-	_tmp2_ = NULL;
-	_tmp1_ = NULL;
-	selection = (_tmp2_ = (_tmp1_ = gtk_tree_view_get_selection (self->priv->treeview), (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL)), _tmp2_);
-	if (gtk_tree_selection_count_selected_rows (selection) < 1) {
-		result = TRUE;
-		(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-		(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-		return result;
-	}
-	sensitive = gtk_tree_selection_count_selected_rows (selection) == 1;
-	gtk_widget_set_sensitive ((GtkWidget*) self->priv->mi_browse, sensitive);
-	gtk_widget_set_sensitive ((GtkWidget*) self->priv->mi_information, sensitive);
-	_tmp5_ = NULL;
-	_tmp3_ = NULL;
-	if ((_tmp4_ = gtk_tree_view_get_path_at_pos (self->priv->treeview, (gint) (*event).x, (gint) (*event).y, &_tmp3_, NULL, NULL, NULL), path = (_tmp5_ = _tmp3_, (path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL)), _tmp5_), _tmp4_)) {
-		if (!gtk_tree_selection_path_is_selected (selection, path)) {
-			gtk_tree_selection_unselect_all (selection);
-			gtk_tree_selection_select_path (selection, path);
-		}
-	}
-	xfmpc_playlist_menu_popup (self);
-	result = TRUE;
-	(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-	(selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL));
-	return result;
-}
-
-
-static void xfmpc_playlist_menu_popup (XfmpcPlaylist* self) {
-	g_return_if_fail (self != NULL);
-	gtk_menu_popup (self->priv->menu, NULL, NULL, NULL, NULL, (guint) 0, gtk_get_current_event_time ());
-}
-
-
-static void xfmpc_playlist_cb_filter_entry_activated (XfmpcPlaylist* self) {
-	GtkTreeModel* _tmp0_;
-	GtkTreeModel* model;
-	GtkTreeModel* _tmp4_;
-	GtkTreeModel* _tmp3_;
-	GList* _tmp2_;
-	GtkTreeModel* _tmp1_;
-	GList* list;
-	const GtkTreePath* _tmp5_;
-	GtkTreePath* path;
-	g_return_if_fail (self != NULL);
-	_tmp0_ = NULL;
-	model = (_tmp0_ = (GtkTreeModel*) self->priv->filter, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	_tmp4_ = NULL;
-	_tmp3_ = NULL;
-	_tmp2_ = NULL;
-	_tmp1_ = NULL;
-	list = (_tmp2_ = gtk_tree_selection_get_selected_rows (gtk_tree_view_get_selection (self->priv->treeview), &_tmp1_), model = (_tmp3_ = (_tmp4_ = _tmp1_, (_tmp4_ == NULL) ? NULL : g_object_ref (_tmp4_)), (model == NULL) ? NULL : (model = (g_object_unref (model), NULL)), _tmp3_), _tmp2_);
-	_tmp5_ = NULL;
-	path = (_tmp5_ = (const GtkTreePath*) g_list_nth_data (list, (guint) 0), (_tmp5_ == NULL) ? NULL : gtk_tree_path_copy (_tmp5_));
-	if (g_list_length (list) > 0) {
-		gtk_tree_view_row_activated (self->priv->treeview, path, gtk_tree_view_get_column (self->priv->treeview, 0));
-		gtk_entry_set_text (xfmpc_playlist_filter_entry, "");
-		xfmpc_playlist_select_row (self, self->priv->current);
-		gtk_widget_grab_focus ((GtkWidget*) self->priv->treeview);
-	}
-	(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-	(list == NULL) ? NULL : (list = (_g_list_free_gtk_tree_path_free (list), NULL));
-	(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-}
-
-
-static gboolean xfmpc_playlist_cb_filter_entry_key_released (XfmpcPlaylist* self, const GdkEventKey* event) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	if ((*event).type != GDK_KEY_RELEASE) {
-		result = FALSE;
-		return result;
-	}
-	/* Escape */
-	if ((*event).keyval == 0xff1b) {
-		gtk_entry_set_text (xfmpc_playlist_filter_entry, "");
-		xfmpc_playlist_select_row (self, self->priv->current);
-		gtk_widget_grab_focus ((GtkWidget*) self->priv->treeview);
-	} else {
-		if (_vala_strcmp0 (gtk_entry_get_text (xfmpc_playlist_filter_entry), "") != 0) {
-			xfmpc_playlist_select_row (self, 0);
-		} else {
-			xfmpc_playlist_select_row (self, self->priv->current);
-		}
-	}
-	result = TRUE;
-	return result;
-}
-
-
-static void xfmpc_playlist_cb_filter_entry_changed (XfmpcPlaylist* self) {
-	g_return_if_fail (self != NULL);
-	gtk_tree_model_filter_refilter (self->priv->filter);
-}
-
-
-/*
- * Public
- */
-void xfmpc_playlist_append (XfmpcPlaylist* self, gint id, gint pos, const char* filename, const char* song, const char* length) {
-	GtkTreeIter iter = {0};
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (filename != NULL);
-	g_return_if_fail (song != NULL);
-	g_return_if_fail (length != NULL);
-	gtk_list_store_append (self->priv->store, &iter);
-	gtk_list_store_set (self->priv->store, &iter, XFMPC_PLAYLIST_COLUMNS_COLUMN_ID, id, XFMPC_PLAYLIST_COLUMNS_COLUMN_FILENAME, filename, XFMPC_PLAYLIST_COLUMNS_COLUMN_POSITION, pos + 1, XFMPC_PLAYLIST_COLUMNS_COLUMN_SONG, song, XFMPC_PLAYLIST_COLUMNS_COLUMN_LENGTH, length, XFMPC_PLAYLIST_COLUMNS_COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL, -1, -1);
-}
-
-
-void xfmpc_playlist_refresh_current_song (XfmpcPlaylist* self) {
-	GtkTreeIter iter = {0};
-	GtkTreePath* path;
-	GtkTreePath* _tmp0_;
-	GtkTreePath* _tmp1_;
-	gboolean _tmp2_;
-	g_return_if_fail (self != NULL);
-	path = NULL;
-	if (self->priv->current < 0) {
-		self->priv->current = 0;
-	}
-	_tmp0_ = NULL;
-	path = (_tmp0_ = gtk_tree_path_new_from_indices (self->priv->current, -1, -1), (path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL)), _tmp0_);
-	if (gtk_tree_model_get_iter ((GtkTreeModel*) self->priv->store, &iter, path)) {
-		gtk_list_store_set (self->priv->store, &iter, XFMPC_PLAYLIST_COLUMNS_COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL, -1, -1);
-	}
-	self->priv->current = xfmpc_mpdclient_get_pos (self->priv->mpdclient);
-	_tmp1_ = NULL;
-	path = (_tmp1_ = gtk_tree_path_new_from_indices (self->priv->current, -1, -1), (path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL)), _tmp1_);
-	if (gtk_tree_model_get_iter ((GtkTreeModel*) self->priv->store, &iter, path)) {
-		gtk_list_store_set (self->priv->store, &iter, XFMPC_PLAYLIST_COLUMNS_COLUMN_WEIGHT, PANGO_WEIGHT_BOLD, -1, -1);
-	}
-	_tmp2_ = FALSE;
-	if (_vala_strcmp0 (gtk_entry_get_text (xfmpc_playlist_filter_entry), "") == 0) {
-		_tmp2_ = self->priv->autocenter;
-	} else {
-		_tmp2_ = FALSE;
-	}
-	if (_tmp2_) {
-		xfmpc_playlist_select_row (self, self->priv->current);
-	}
-	(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-}
-
-
-void xfmpc_playlist_select_row (XfmpcPlaylist* self, gint i) {
-	GtkTreePath* path;
-	g_return_if_fail (self != NULL);
-	if (self->priv->current < 0) {
-		return;
-	}
-	if (gtk_tree_model_iter_n_children ((GtkTreeModel*) self->priv->filter, NULL) == 0) {
-		return;
-	}
-	path = gtk_tree_path_new_from_indices (i, -1, -1);
-	gtk_tree_view_set_cursor (self->priv->treeview, path, NULL, FALSE);
-	gtk_tree_view_scroll_to_cell (self->priv->treeview, path, NULL, TRUE, (float) 0.42, (float) 0);
-	(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-}
-
-
-void xfmpc_playlist_delete_selection (XfmpcPlaylist* self) {
-	gint id;
-	GtkTreeIter iter = {0};
-	GtkTreeModel* _tmp0_;
-	GtkTreeModel* model;
-	GtkTreeModel* _tmp4_;
-	GtkTreeModel* _tmp3_;
-	GList* _tmp2_;
-	GtkTreeModel* _tmp1_;
-	GList* list;
-	g_return_if_fail (self != NULL);
-	id = 0;
-	_tmp0_ = NULL;
-	model = (_tmp0_ = (GtkTreeModel*) self->priv->store, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	_tmp4_ = NULL;
-	_tmp3_ = NULL;
-	_tmp2_ = NULL;
-	_tmp1_ = NULL;
-	list = (_tmp2_ = gtk_tree_selection_get_selected_rows (gtk_tree_view_get_selection (self->priv->treeview), &_tmp1_), model = (_tmp3_ = (_tmp4_ = _tmp1_, (_tmp4_ == NULL) ? NULL : g_object_ref (_tmp4_)), (model == NULL) ? NULL : (model = (g_object_unref (model), NULL)), _tmp3_), _tmp2_);
-	{
-		GList* path_collection;
-		GList* path_it;
-		path_collection = list;
-		for (path_it = path_collection; path_it != NULL; path_it = path_it->next) {
-			const GtkTreePath* _tmp5_;
-			GtkTreePath* path;
-			_tmp5_ = NULL;
-			path = (_tmp5_ = (const GtkTreePath*) path_it->data, (_tmp5_ == NULL) ? NULL : gtk_tree_path_copy (_tmp5_));
-			{
-				if (gtk_tree_model_get_iter ((GtkTreeModel*) self->priv->store, &iter, path)) {
-					gtk_tree_model_get ((GtkTreeModel*) self->priv->store, &iter, XFMPC_PLAYLIST_COLUMNS_COLUMN_ID, &id, -1, -1);
-					xfmpc_mpdclient_queue_remove_id (self->priv->mpdclient, id);
-				}
-				(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-			}
-		}
-	}
-	xfmpc_mpdclient_queue_commit (self->priv->mpdclient);
-	(model == NULL) ? NULL : (model = (g_object_unref (model), NULL));
-	(list == NULL) ? NULL : (list = (_g_list_free_gtk_tree_path_free (list), NULL));
-}
-
-
-gboolean xfmpc_playlist_has_filename (XfmpcPlaylist* self, const char* filename, gboolean is_dir) {
-	gboolean result;
-	GtkTreeIter iter = {0};
-	GtkTreePath* path;
-	char* name;
-	GtkTreePath* _tmp0_;
-	g_return_val_if_fail (self != NULL, FALSE);
-	g_return_val_if_fail (filename != NULL, FALSE);
-	path = NULL;
-	name = g_strdup ("");
-	_tmp0_ = NULL;
-	path = (_tmp0_ = gtk_tree_path_new_from_indices (0, -1, -1), (path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL)), _tmp0_);
-	while (TRUE) {
-		if (!gtk_tree_model_get_iter ((GtkTreeModel*) self->priv->store, &iter, path)) {
-			break;
-		}
-		gtk_tree_model_get ((GtkTreeModel*) self->priv->store, &iter, XFMPC_PLAYLIST_COLUMNS_COLUMN_FILENAME, &name, -1, -1);
-		if (is_dir) {
-			if (g_str_has_prefix (name, filename)) {
-				result = TRUE;
-				(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-				name = (g_free (name), NULL);
-				return result;
-			}
-		} else {
-			if (_vala_strcmp0 (name, filename) == 0) {
-				result = TRUE;
-				(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-				name = (g_free (name), NULL);
-				return result;
-			}
-		}
-		gtk_tree_path_next (path);
-	}
-	result = FALSE;
-	(path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL));
-	name = (g_free (name), NULL);
-	return result;
-}
-
-
-XfmpcPlaylist* xfmpc_playlist_construct (GType object_type) {
-	XfmpcPlaylist * self;
-	self = g_object_newv (object_type, 0, NULL);
-	return self;
-}
-
-
-XfmpcPlaylist* xfmpc_playlist_new (void) {
-	return xfmpc_playlist_construct (XFMPC_TYPE_PLAYLIST);
-}
-
-
-static void _xfmpc_playlist_delete_selection_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
-	xfmpc_playlist_delete_selection (self);
-}
-
-
-static void _xfmpc_playlist_cb_browse_selection_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
-	xfmpc_playlist_cb_browse_selection (self);
-}
-
-
-static void _xfmpc_playlist_cb_info_selection_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
-	xfmpc_playlist_cb_info_selection (self);
-}
-
-
-static void _xfmpc_playlist_cb_pp_changed_xfmpc_mpdclient_pp_changed (XfmpcMpdclient* _sender, gboolean is_playing, gpointer self) {
-	xfmpc_playlist_cb_pp_changed (self, is_playing);
-}
-
-
-static void _xfmpc_playlist_cb_song_changed_xfmpc_mpdclient_song_changed (XfmpcMpdclient* _sender, gpointer self) {
-	xfmpc_playlist_cb_song_changed (self);
-}
-
-
-static void _xfmpc_playlist_cb_playlist_changed_xfmpc_mpdclient_playlist_changed (XfmpcMpdclient* _sender, gpointer self) {
-	xfmpc_playlist_cb_playlist_changed (self);
-}
-
-
-static void _xfmpc_playlist_cb_row_activated_gtk_tree_view_row_activated (GtkTreeView* _sender, const GtkTreePath* path, GtkTreeViewColumn* column, gpointer self) {
-	xfmpc_playlist_cb_row_activated (self, path, column);
-}
-
-
-static gboolean _xfmpc_playlist_cb_key_released_gtk_widget_key_release_event (GtkWidget* _sender, const GdkEventKey* event, gpointer self) {
-	return xfmpc_playlist_cb_key_released (self, event);
-}
-
-
-static gboolean _xfmpc_playlist_cb_button_released_gtk_widget_button_press_event (GtkWidget* _sender, const GdkEventButton* event, gpointer self) {
-	return xfmpc_playlist_cb_button_released (self, event);
-}
-
-
-static gboolean _xfmpc_playlist_cb_popup_menu_gtk_widget_popup_menu (GtkWidget* _sender, gpointer self) {
-	return xfmpc_playlist_cb_popup_menu (self);
-}
-
-
-static void _xfmpc_playlist_cb_filter_entry_activated_gtk_entry_activate (GtkEntry* _sender, gpointer self) {
-	xfmpc_playlist_cb_filter_entry_activated (self);
-}
-
-
-static gboolean _xfmpc_playlist_cb_filter_entry_key_released_gtk_widget_key_release_event (GtkWidget* _sender, const GdkEventKey* event, gpointer self) {
-	return xfmpc_playlist_cb_filter_entry_key_released (self, event);
-}
-
-
-static void _xfmpc_playlist_cb_filter_entry_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self) {
-	xfmpc_playlist_cb_filter_entry_changed (self);
-}
-
-
-static void _xfmpc_playlist_cb_playlist_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
-	xfmpc_playlist_cb_playlist_changed (self);
-}
-
-
-static GObject * xfmpc_playlist_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
-	GObject * obj;
-	XfmpcPlaylistClass * klass;
-	GObjectClass * parent_class;
-	XfmpcPlaylist * self;
-	klass = XFMPC_PLAYLIST_CLASS (g_type_class_peek (XFMPC_TYPE_PLAYLIST));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
-	self = XFMPC_PLAYLIST (obj);
-	{
-		GtkListStore* _tmp0_;
-		GtkTreeModelFilter* _tmp1_;
-		GtkTreeView* _tmp2_;
-		GtkCellRendererText* cell;
-		GtkCellRendererText* _tmp3_;
-		GtkTreeViewColumn* column;
-		GtkCellRendererText* _tmp4_;
-		GtkAdjustment* _tmp6_;
-		GtkAdjustment* _tmp5_;
-		GtkScrolledWindow* _tmp7_;
-		GtkScrolledWindow* scrolled;
-		GtkMenu* _tmp8_;
-		GtkImageMenuItem* mi;
-		GtkImageMenuItem* _tmp9_;
-		GtkImage* image;
-		GtkImageMenuItem* _tmp10_;
-		GtkEntry* _tmp11_;
-		self->priv->mpdclient = xfmpc_mpdclient_get_default ();
-		self->priv->preferences = xfmpc_preferences_get_default ();
-		self->priv->autocenter = xfmpc_preferences_get_playlist_autocenter (self->priv->preferences);
-		_tmp0_ = NULL;
-		self->priv->store = (_tmp0_ = gtk_list_store_new ((gint) XFMPC_PLAYLIST_COLUMNS_N_COLUMNS, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, NULL), (self->priv->store == NULL) ? NULL : (self->priv->store = (g_object_unref (self->priv->store), NULL)), _tmp0_);
-		_tmp1_ = NULL;
-		self->priv->filter = (_tmp1_ = (GtkTreeModelFilter*) gtk_tree_model_filter_new ((GtkTreeModel*) self->priv->store, NULL), (self->priv->filter == NULL) ? NULL : (self->priv->filter = (g_object_unref (self->priv->filter), NULL)), _tmp1_);
-		gtk_tree_model_filter_set_visible_func (self->priv->filter, (GtkTreeModelFilterVisibleFunc) xfmpc_playlist_visible_func_filter_tree, NULL, NULL);
-		_tmp2_ = NULL;
-		self->priv->treeview = (_tmp2_ = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new ()), (self->priv->treeview == NULL) ? NULL : (self->priv->treeview = (g_object_unref (self->priv->treeview), NULL)), _tmp2_);
-		gtk_tree_selection_set_mode (gtk_tree_view_get_selection (self->priv->treeview), GTK_SELECTION_MULTIPLE);
-		gtk_tree_view_set_rubber_banding (self->priv->treeview, TRUE);
-		gtk_tree_view_set_enable_search (self->priv->treeview, FALSE);
-		gtk_tree_view_set_headers_visible (self->priv->treeview, FALSE);
-		gtk_tree_view_set_rules_hint (self->priv->treeview, TRUE);
-		gtk_tree_view_set_model (self->priv->treeview, (GtkTreeModel*) self->priv->filter);
-		cell = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
-		g_object_set ((GtkCellRenderer*) cell, "xalign", (float) 1, NULL);
-		gtk_tree_view_insert_column_with_attributes (self->priv->treeview, -1, "Length", (GtkCellRenderer*) cell, "text", XFMPC_PLAYLIST_COLUMNS_COLUMN_POSITION, "weight", XFMPC_PLAYLIST_COLUMNS_COLUMN_WEIGHT, NULL, NULL);
-		_tmp3_ = NULL;
-		cell = (_tmp3_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ()), (cell == NULL) ? NULL : (cell = (g_object_unref (cell), NULL)), _tmp3_);
-		g_object_set (cell, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
-		column = g_object_ref_sink (gtk_tree_view_column_new_with_attributes ("Song", (GtkCellRenderer*) cell, "text", XFMPC_PLAYLIST_COLUMNS_COLUMN_SONG, "weight", XFMPC_PLAYLIST_COLUMNS_COLUMN_WEIGHT, NULL, NULL));
-		gtk_tree_view_column_set_expand (column, TRUE);
-		gtk_tree_view_append_column (self->priv->treeview, column);
-		_tmp4_ = NULL;
-		cell = (_tmp4_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ()), (cell == NULL) ? NULL : (cell = (g_object_unref (cell), NULL)), _tmp4_);
-		g_object_set ((GtkCellRenderer*) cell, "xalign", (float) 1, NULL);
-		gtk_tree_view_insert_column_with_attributes (self->priv->treeview, -1, "Length", (GtkCellRenderer*) cell, "text", XFMPC_PLAYLIST_COLUMNS_COLUMN_LENGTH, "weight", XFMPC_PLAYLIST_COLUMNS_COLUMN_WEIGHT, NULL, NULL);
-		_tmp6_ = NULL;
-		_tmp5_ = NULL;
-		_tmp7_ = NULL;
-		scrolled = (_tmp7_ = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (_tmp5_ = g_object_ref_sink ((GtkAdjustment*) gtk_adjustment_new ((double) 0, (double) 0, (double) 0, (double) 0, (double) 0, (double) 0)), _tmp6_ = g_object_ref_sink ((GtkAdjustment*) gtk_adjustment_new ((double) 0, (double) 0, (double) 0, (double) 0, (double) 0, (double) 0)))), (_tmp6_ == NULL) ? NULL : (_tmp6_ = (g_object_unref (_tmp6_), NULL)), (_tmp5_ == NULL) ? NULL : (_tmp5_ = (g_object_unref (_tmp5_), NULL)), _tmp7_);
-		gtk_scrolled_window_set_policy (scrolled, GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
-		_tmp8_ = NULL;
-		self->priv->menu = (_tmp8_ = g_object_ref_sink ((GtkMenu*) gtk_menu_new ()), (self->priv->menu == NULL) ? NULL : (self->priv->menu = (g_object_unref (self->priv->menu), NULL)), _tmp8_);
-		mi = g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_REMOVE, NULL));
-		gtk_menu_shell_append ((GtkMenuShell*) self->priv->menu, (GtkWidget*) ((GtkMenuItem*) mi));
-		g_signal_connect_object ((GtkMenuItem*) mi, "activate", (GCallback) _xfmpc_playlist_delete_selection_gtk_menu_item_activate, self, 0);
-		_tmp9_ = NULL;
-		self->priv->mi_browse = (_tmp9_ = g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_with_mnemonic (_ ("Browse"))), (self->priv->mi_browse == NULL) ? NULL : (self->priv->mi_browse = (g_object_unref (self->priv->mi_browse), NULL)), _tmp9_);
-		image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU));
-		gtk_image_menu_item_set_image (self->priv->mi_browse, (GtkWidget*) image);
-		gtk_menu_shell_append ((GtkMenuShell*) self->priv->menu, (GtkWidget*) ((GtkMenuItem*) self->priv->mi_browse));
-		g_signal_connect_object ((GtkMenuItem*) self->priv->mi_browse, "activate", (GCallback) _xfmpc_playlist_cb_browse_selection_gtk_menu_item_activate, self, 0);
-		_tmp10_ = NULL;
-		self->priv->mi_information = (_tmp10_ = g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_INFO, NULL)), (self->priv->mi_information == NULL) ? NULL : (self->priv->mi_information = (g_object_unref (self->priv->mi_information), NULL)), _tmp10_);
-		gtk_menu_shell_append ((GtkMenuShell*) self->priv->menu, (GtkWidget*) ((GtkMenuItem*) self->priv->mi_information));
-		g_signal_connect_object ((GtkMenuItem*) self->priv->mi_information, "activate", (GCallback) _xfmpc_playlist_cb_info_selection_gtk_menu_item_activate, self, 0);
-		gtk_widget_show_all ((GtkWidget*) self->priv->menu);
-		_tmp11_ = NULL;
-		xfmpc_playlist_filter_entry = (_tmp11_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), (xfmpc_playlist_filter_entry == NULL) ? NULL : (xfmpc_playlist_filter_entry = (g_object_unref (xfmpc_playlist_filter_entry), NULL)), _tmp11_);
-		gtk_container_add ((GtkContainer*) scrolled, (GtkWidget*) self->priv->treeview);
-		gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) scrolled, TRUE, TRUE, (guint) 0);
-		gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) xfmpc_playlist_filter_entry, FALSE, FALSE, (guint) 0);
-		/* Signals */
-		g_signal_connect_object (self->priv->mpdclient, "pp-changed", (GCallback) _xfmpc_playlist_cb_pp_changed_xfmpc_mpdclient_pp_changed, self, 0);
-		g_signal_connect_object (self->priv->mpdclient, "song-changed", (GCallback) _xfmpc_playlist_cb_song_changed_xfmpc_mpdclient_song_changed, self, 0);
-		g_signal_connect_object (self->priv->mpdclient, "playlist-changed", (GCallback) _xfmpc_playlist_cb_playlist_changed_xfmpc_mpdclient_playlist_changed, self, 0);
-		g_signal_connect_object (self->priv->treeview, "row-activated", (GCallback) _xfmpc_playlist_cb_row_activated_gtk_tree_view_row_activated, self, 0);
-		g_signal_connect_object ((GtkWidget*) self->priv->treeview, "key-release-event", (GCallback) _xfmpc_playlist_cb_key_released_gtk_widget_key_release_event, self, 0);
-		g_signal_connect_object ((GtkWidget*) self->priv->treeview, "button-press-event", (GCallback) _xfmpc_playlist_cb_button_released_gtk_widget_button_press_event, self, 0);
-		g_signal_connect_object ((GtkWidget*) self->priv->treeview, "popup-menu", (GCallback) _xfmpc_playlist_cb_popup_menu_gtk_widget_popup_menu, self, 0);
-		g_signal_connect_object (xfmpc_playlist_filter_entry, "activate", (GCallback) _xfmpc_playlist_cb_filter_entry_activated_gtk_entry_activate, self, 0);
-		g_signal_connect_object ((GtkWidget*) xfmpc_playlist_filter_entry, "key-release-event", (GCallback) _xfmpc_playlist_cb_filter_entry_key_released_gtk_widget_key_release_event, self, 0);
-		g_signal_connect_object ((GtkEditable*) xfmpc_playlist_filter_entry, "changed", (GCallback) _xfmpc_playlist_cb_filter_entry_changed_gtk_editable_changed, self, 0);
-		g_signal_connect_object ((GObject*) self->priv->preferences, "notify::song-format", (GCallback) _xfmpc_playlist_cb_playlist_changed_g_object_notify, self, 0);
-		g_signal_connect_object ((GObject*) self->priv->preferences, "notify::song-format-custom", (GCallback) _xfmpc_playlist_cb_playlist_changed_g_object_notify, self, 0);
-		(cell == NULL) ? NULL : (cell = (g_object_unref (cell), NULL));
-		(column == NULL) ? NULL : (column = (g_object_unref (column), NULL));
-		(scrolled == NULL) ? NULL : (scrolled = (g_object_unref (scrolled), NULL));
-		(mi == NULL) ? NULL : (mi = (g_object_unref (mi), NULL));
-		(image == NULL) ? NULL : (image = (g_object_unref (image), NULL));
-	}
-	return obj;
-}
-
-
-static void xfmpc_playlist_class_init (XfmpcPlaylistClass * klass) {
-	xfmpc_playlist_parent_class = g_type_class_peek_parent (klass);
-	g_type_class_add_private (klass, sizeof (XfmpcPlaylistPrivate));
-	G_OBJECT_CLASS (klass)->constructor = xfmpc_playlist_constructor;
-	G_OBJECT_CLASS (klass)->finalize = xfmpc_playlist_finalize;
-}
-
-
-static void xfmpc_playlist_instance_init (XfmpcPlaylist * self) {
-	self->priv = XFMPC_PLAYLIST_GET_PRIVATE (self);
-	self->priv->current = 0;
-}
-
-
-static void xfmpc_playlist_finalize (GObject* obj) {
-	XfmpcPlaylist * self;
-	self = XFMPC_PLAYLIST (obj);
-	(self->priv->store == NULL) ? NULL : (self->priv->store = (g_object_unref (self->priv->store), NULL));
-	(self->priv->filter == NULL) ? NULL : (self->priv->filter = (g_object_unref (self->priv->filter), NULL));
-	(self->priv->treeview == NULL) ? NULL : (self->priv->treeview = (g_object_unref (self->priv->treeview), NULL));
-	(self->priv->menu == NULL) ? NULL : (self->priv->menu = (g_object_unref (self->priv->menu), NULL));
-	(self->priv->mi_browse == NULL) ? NULL : (self->priv->mi_browse = (g_object_unref (self->priv->mi_browse), NULL));
-	(self->priv->mi_information == NULL) ? NULL : (self->priv->mi_information = (g_object_unref (self->priv->mi_information), NULL));
-	G_OBJECT_CLASS (xfmpc_playlist_parent_class)->finalize (obj);
-}
-
-
-GType xfmpc_playlist_get_type (void) {
-	static GType xfmpc_playlist_type_id = 0;
-	if (xfmpc_playlist_type_id == 0) {
-		static const GTypeInfo g_define_type_info = { sizeof (XfmpcPlaylistClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) xfmpc_playlist_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (XfmpcPlaylist), 0, (GInstanceInitFunc) xfmpc_playlist_instance_init, NULL };
-		xfmpc_playlist_type_id = g_type_register_static (GTK_TYPE_VBOX, "XfmpcPlaylist", &g_define_type_info, 0);
-	}
-	return xfmpc_playlist_type_id;
-}
-
-
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
-
diff --git a/src/preferences-dialog.c b/src/preferences-dialog.c
deleted file mode 100644
index f30f48d..0000000
--- a/src/preferences-dialog.c
+++ /dev/null
@@ -1,569 +0,0 @@
-/*
- *  Copyright (c) 2009 Mike Massonnet <mmassonnet at xfce.org>
- *  Copyright (c) 2009 Vincent Legout <vincent at xfce.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include <glib.h>
-#include <glib-object.h>
-#include <libxfcegui4/libxfcegui4.h>
-#include <gtk/gtk.h>
-#include <mpdclient.h>
-#include <stdlib.h>
-#include <string.h>
-#include <glib/gi18n-lib.h>
-#include <float.h>
-#include <math.h>
-#include <pango/pango.h>
-
-
-#define XFMPC_TYPE_PREFERENCES_DIALOG (xfmpc_preferences_dialog_get_type ())
-#define XFMPC_PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PREFERENCES_DIALOG, XfmpcPreferencesDialog))
-#define XFMPC_PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PREFERENCES_DIALOG, XfmpcPreferencesDialogClass))
-#define XFMPC_IS_PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PREFERENCES_DIALOG))
-#define XFMPC_IS_PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PREFERENCES_DIALOG))
-#define XFMPC_PREFERENCES_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PREFERENCES_DIALOG, XfmpcPreferencesDialogClass))
-
-typedef struct _XfmpcPreferencesDialog XfmpcPreferencesDialog;
-typedef struct _XfmpcPreferencesDialogClass XfmpcPreferencesDialogClass;
-typedef struct _XfmpcPreferencesDialogPrivate XfmpcPreferencesDialogPrivate;
-
-#define XFMPC_TYPE_PREFERENCES (xfmpc_preferences_get_type ())
-#define XFMPC_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferences))
-#define XFMPC_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-#define XFMPC_IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-
-typedef struct _XfmpcPreferences XfmpcPreferences;
-typedef struct _XfmpcPreferencesClass XfmpcPreferencesClass;
-
-#define XFMPC_PREFERENCES_TYPE_SONG_FORMAT (xfmpc_preferences_song_format_get_type ())
-
-struct _XfmpcPreferencesDialog {
-	XfceTitledDialog parent_instance;
-	XfmpcPreferencesDialogPrivate * priv;
-};
-
-struct _XfmpcPreferencesDialogClass {
-	XfceTitledDialogClass parent_class;
-};
-
-struct _XfmpcPreferencesDialogPrivate {
-	XfmpcPreferences* preferences;
-	GtkCheckButton* entry_use_defaults;
-	GtkEntry* entry_host;
-	GtkEntry* entry_passwd;
-	GtkSpinButton* entry_port;
-	GtkCheckButton* show_statusbar;
-	GtkComboBox* combo_format;
-	GtkEntry* entry_custom;
-	guint format_timeout;
-	GtkVBox* mpd_vbox;
-};
-
-typedef enum  {
-	XFMPC_PREFERENCES_SONG_FORMAT_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ALBUM_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE_DATE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TRACK_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_CUSTOM_FORMAT
-} XfmpcPreferencesSongFormat;
-
-
-static gpointer xfmpc_preferences_dialog_parent_class = NULL;
-
-GType xfmpc_preferences_dialog_get_type (void);
-GType xfmpc_preferences_get_type (void);
-#define XFMPC_PREFERENCES_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), XFMPC_TYPE_PREFERENCES_DIALOG, XfmpcPreferencesDialogPrivate))
-enum  {
-	XFMPC_PREFERENCES_DIALOG_DUMMY_PROPERTY
-};
-static void xfmpc_preferences_dialog_cb_response (XfmpcPreferencesDialog* self, gint response);
-static void xfmpc_preferences_dialog_cb_use_defaults_toggled (XfmpcPreferencesDialog* self);
-void xfmpc_preferences_set_mpd_hostname (XfmpcPreferences* self, const char* value);
-void xfmpc_preferences_set_mpd_port (XfmpcPreferences* self, gint value);
-void xfmpc_preferences_set_mpd_password (XfmpcPreferences* self, const char* value);
-void xfmpc_preferences_set_mpd_use_defaults (XfmpcPreferences* self, gboolean value);
-static void xfmpc_preferences_dialog_cb_update_mpd (XfmpcPreferencesDialog* self, GtkButton* source);
-void xfmpc_preferences_set_show_statusbar (XfmpcPreferences* self, gboolean value);
-static void xfmpc_preferences_dialog_cb_show_statusbar_toggled (XfmpcPreferencesDialog* self);
-GType xfmpc_preferences_song_format_get_type (void);
-void xfmpc_preferences_set_song_format (XfmpcPreferences* self, XfmpcPreferencesSongFormat value);
-static void xfmpc_preferences_dialog_cb_combo_format_changed (XfmpcPreferencesDialog* self, GtkComboBox* source);
-static gboolean xfmpc_preferences_dialog_timeout_format (XfmpcPreferencesDialog* self);
-static gboolean _xfmpc_preferences_dialog_timeout_format_gsource_func (gpointer self);
-static void xfmpc_preferences_dialog_cb_entry_custom_changed (XfmpcPreferencesDialog* self);
-void xfmpc_preferences_set_song_format_custom (XfmpcPreferences* self, const char* value);
-XfmpcPreferencesDialog* xfmpc_preferences_dialog_new (void);
-XfmpcPreferencesDialog* xfmpc_preferences_dialog_construct (GType object_type);
-XfmpcPreferences* xfmpc_preferences_get_default (void);
-gboolean xfmpc_preferences_get_mpd_use_defaults (XfmpcPreferences* self);
-static void _xfmpc_preferences_dialog_cb_use_defaults_toggled_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self);
-const char* xfmpc_preferences_get_mpd_hostname (XfmpcPreferences* self);
-gint xfmpc_preferences_get_mpd_port (XfmpcPreferences* self);
-const char* xfmpc_preferences_get_mpd_password (XfmpcPreferences* self);
-static void _xfmpc_preferences_dialog_cb_update_mpd_gtk_button_clicked (GtkButton* _sender, gpointer self);
-gboolean xfmpc_preferences_get_show_statusbar (XfmpcPreferences* self);
-static void _xfmpc_preferences_dialog_cb_show_statusbar_toggled_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self);
-XfmpcPreferencesSongFormat xfmpc_preferences_get_song_format (XfmpcPreferences* self);
-const char* xfmpc_preferences_get_song_format_custom (XfmpcPreferences* self);
-static void _xfmpc_preferences_dialog_cb_combo_format_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
-static void _xfmpc_preferences_dialog_cb_entry_custom_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self);
-static void _xfmpc_preferences_dialog_cb_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
-static GObject * xfmpc_preferences_dialog_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
-static void xfmpc_preferences_dialog_finalize (GObject* obj);
-
-
-
-/*
- * Signal callbacks
- */
-static void xfmpc_preferences_dialog_cb_response (XfmpcPreferencesDialog* self, gint response) {
-	g_return_if_fail (self != NULL);
-	switch (response) {
-		case GTK_RESPONSE_CLOSE:
-		{
-			gtk_object_destroy ((GtkObject*) self);
-			break;
-		}
-	}
-}
-
-
-static void xfmpc_preferences_dialog_cb_use_defaults_toggled (XfmpcPreferencesDialog* self) {
-	g_return_if_fail (self != NULL);
-	gtk_widget_set_sensitive ((GtkWidget*) self->priv->mpd_vbox, !gtk_toggle_button_get_active ((GtkToggleButton*) self->priv->entry_use_defaults));
-}
-
-
-static void xfmpc_preferences_dialog_cb_update_mpd (XfmpcPreferencesDialog* self, GtkButton* source) {
-	XfmpcMpdclient* mpdclient;
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (source != NULL);
-	mpdclient = xfmpc_mpdclient_get_default ();
-	xfmpc_preferences_set_mpd_hostname (self->priv->preferences, gtk_entry_get_text (self->priv->entry_host));
-	xfmpc_preferences_set_mpd_port (self->priv->preferences, gtk_spin_button_get_value_as_int (self->priv->entry_port));
-	xfmpc_preferences_set_mpd_password (self->priv->preferences, gtk_entry_get_text (self->priv->entry_passwd));
-	xfmpc_preferences_set_mpd_use_defaults (self->priv->preferences, gtk_toggle_button_get_active ((GtkToggleButton*) self->priv->entry_use_defaults));
-	xfmpc_mpdclient_disconnect (mpdclient);
-	xfmpc_mpdclient_connect (mpdclient);
-}
-
-
-static void xfmpc_preferences_dialog_cb_show_statusbar_toggled (XfmpcPreferencesDialog* self) {
-	g_return_if_fail (self != NULL);
-	xfmpc_preferences_set_show_statusbar (self->priv->preferences, gtk_toggle_button_get_active ((GtkToggleButton*) self->priv->show_statusbar));
-}
-
-
-static void xfmpc_preferences_dialog_cb_combo_format_changed (XfmpcPreferencesDialog* self, GtkComboBox* source) {
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (source != NULL);
-	switch (gtk_combo_box_get_active (self->priv->combo_format)) {
-		case 0:
-		{
-			xfmpc_preferences_set_song_format (self->priv->preferences, XFMPC_PREFERENCES_SONG_FORMAT_TITLE);
-			break;
-		}
-		case 1:
-		{
-			xfmpc_preferences_set_song_format (self->priv->preferences, XFMPC_PREFERENCES_SONG_FORMAT_ALBUM_TITLE);
-			break;
-		}
-		case 2:
-		{
-			xfmpc_preferences_set_song_format (self->priv->preferences, XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE);
-			break;
-		}
-		case 3:
-		{
-			xfmpc_preferences_set_song_format (self->priv->preferences, XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE_DATE);
-			break;
-		}
-		case 4:
-		{
-			xfmpc_preferences_set_song_format (self->priv->preferences, XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TITLE);
-			break;
-		}
-		case 5:
-		{
-			xfmpc_preferences_set_song_format (self->priv->preferences, XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TRACK_TITLE);
-			break;
-		}
-		case 6:
-		{
-			xfmpc_preferences_set_song_format (self->priv->preferences, XFMPC_PREFERENCES_SONG_FORMAT_CUSTOM_FORMAT);
-			break;
-		}
-		default:
-		{
-			xfmpc_preferences_set_song_format (self->priv->preferences, XFMPC_PREFERENCES_SONG_FORMAT_TITLE);
-			break;
-		}
-	}
-	gtk_widget_set_sensitive ((GtkWidget*) self->priv->entry_custom, gtk_combo_box_get_active (self->priv->combo_format) == 6);
-}
-
-
-static gboolean _xfmpc_preferences_dialog_timeout_format_gsource_func (gpointer self) {
-	return xfmpc_preferences_dialog_timeout_format (self);
-}
-
-
-static void xfmpc_preferences_dialog_cb_entry_custom_changed (XfmpcPreferencesDialog* self) {
-	g_return_if_fail (self != NULL);
-	if (self->priv->format_timeout > 0) {
-		g_source_remove (self->priv->format_timeout);
-	}
-	self->priv->format_timeout = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 1, _xfmpc_preferences_dialog_timeout_format_gsource_func, g_object_ref (self), g_object_unref);
-}
-
-
-static gboolean xfmpc_preferences_dialog_timeout_format (XfmpcPreferencesDialog* self) {
-	gboolean result;
-	const char* _tmp0_;
-	char* custom_format;
-	g_return_val_if_fail (self != NULL, FALSE);
-	_tmp0_ = NULL;
-	custom_format = (_tmp0_ = gtk_entry_get_text (self->priv->entry_custom), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_));
-	xfmpc_preferences_set_song_format_custom (self->priv->preferences, custom_format);
-	result = FALSE;
-	custom_format = (g_free (custom_format), NULL);
-	return result;
-}
-
-
-XfmpcPreferencesDialog* xfmpc_preferences_dialog_construct (GType object_type) {
-	XfmpcPreferencesDialog * self;
-	self = g_object_newv (object_type, 0, NULL);
-	return self;
-}
-
-
-XfmpcPreferencesDialog* xfmpc_preferences_dialog_new (void) {
-	return xfmpc_preferences_dialog_construct (XFMPC_TYPE_PREFERENCES_DIALOG);
-}
-
-
-static void _xfmpc_preferences_dialog_cb_use_defaults_toggled_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self) {
-	xfmpc_preferences_dialog_cb_use_defaults_toggled (self);
-}
-
-
-static void _xfmpc_preferences_dialog_cb_update_mpd_gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	xfmpc_preferences_dialog_cb_update_mpd (self, _sender);
-}
-
-
-static void _xfmpc_preferences_dialog_cb_show_statusbar_toggled_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self) {
-	xfmpc_preferences_dialog_cb_show_statusbar_toggled (self);
-}
-
-
-static void _xfmpc_preferences_dialog_cb_combo_format_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
-	xfmpc_preferences_dialog_cb_combo_format_changed (self, _sender);
-}
-
-
-static void _xfmpc_preferences_dialog_cb_entry_custom_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self) {
-	xfmpc_preferences_dialog_cb_entry_custom_changed (self);
-}
-
-
-static void _xfmpc_preferences_dialog_cb_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
-	xfmpc_preferences_dialog_cb_response (self, response_id);
-}
-
-
-static GObject * xfmpc_preferences_dialog_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
-	GObject * obj;
-	XfmpcPreferencesDialogClass * klass;
-	GObjectClass * parent_class;
-	XfmpcPreferencesDialog * self;
-	klass = XFMPC_PREFERENCES_DIALOG_CLASS (g_type_class_peek (XFMPC_TYPE_PREFERENCES_DIALOG));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
-	self = XFMPC_PREFERENCES_DIALOG (obj);
-	{
-		GtkNotebook* notebook;
-		GtkVBox* vbox;
-		GtkLabel* label;
-		GtkVBox* vbox2;
-		GtkWidget* _tmp0_;
-		GtkWidget* frame;
-		GtkCheckButton* _tmp1_;
-		GtkVBox* _tmp2_;
-		GtkHBox* hbox;
-		GtkLabel* _tmp3_;
-		GtkEntry* _tmp4_;
-		GtkLabel* _tmp5_;
-		GtkSpinButton* _tmp6_;
-		GtkHBox* _tmp7_;
-		GtkLabel* _tmp8_;
-		GtkEntry* _tmp9_;
-		GtkButton* button;
-		GtkVBox* _tmp10_;
-		GtkLabel* _tmp11_;
-		GtkVBox* _tmp12_;
-		GtkWidget* _tmp14_;
-		GtkWidget* _tmp13_;
-		GtkCheckButton* _tmp15_;
-		GtkVBox* _tmp16_;
-		GtkWidget* _tmp18_;
-		GtkWidget* _tmp17_;
-		GtkHBox* _tmp19_;
-		GtkLabel* _tmp20_;
-		GtkComboBox* _tmp21_;
-		GtkHBox* _tmp22_;
-		GtkLabel* _tmp23_;
-		GtkEntry* _tmp24_;
-		GtkLabel* _tmp25_;
-		GtkTable* table;
-		PangoAttrList* attrs;
-		GtkLabel* _tmp26_;
-		GtkLabel* _tmp27_;
-		GtkLabel* _tmp28_;
-		GtkLabel* _tmp29_;
-		GtkLabel* _tmp30_;
-		GtkLabel* _tmp31_;
-		GtkLabel* _tmp32_;
-		GtkLabel* _tmp33_;
-		gtk_dialog_set_has_separator ((GtkDialog*) self, TRUE);
-		gtk_window_set_skip_taskbar_hint ((GtkWindow*) self, TRUE);
-		gtk_window_set_icon_name ((GtkWindow*) self, "stock_volume");
-		gtk_window_set_resizable ((GtkWindow*) self, FALSE);
-		gtk_window_set_title ((GtkWindow*) self, "Xfmpc Preferences");
-		self->priv->preferences = xfmpc_preferences_get_default ();
-		notebook = g_object_ref_sink ((GtkNotebook*) gtk_notebook_new ());
-		gtk_container_set_border_width ((GtkContainer*) notebook, (guint) 6);
-		gtk_box_pack_start ((GtkBox*) ((GtkDialog*) self)->vbox, (GtkWidget*) notebook, TRUE, TRUE, (guint) 0);
-		/* Mpd Settings */
-		vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6));
-		gtk_container_set_border_width ((GtkContainer*) vbox, (guint) 6);
-		label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("MPD")));
-		gtk_notebook_append_page (notebook, (GtkWidget*) vbox, (GtkWidget*) label);
-		vbox2 = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6));
-		_tmp0_ = NULL;
-		frame = (_tmp0_ = xfce_create_framebox_with_content (_ ("Connection"), (GtkWidget*) vbox2), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-		gtk_box_pack_start ((GtkBox*) vbox, frame, FALSE, FALSE, (guint) 0);
-		_tmp1_ = NULL;
-		self->priv->entry_use_defaults = (_tmp1_ = g_object_ref_sink ((GtkCheckButton*) gtk_check_button_new_with_mnemonic (_ ("Use _default system settings"))), (self->priv->entry_use_defaults == NULL) ? NULL : (self->priv->entry_use_defaults = (g_object_unref (self->priv->entry_use_defaults), NULL)), _tmp1_);
-		gtk_widget_set_tooltip_text ((GtkWidget*) self->priv->entry_use_defaults, _ ("If checked, Xfmpc will try to read the environment variables MPD_HOST and MPD_PORT otherwise it will use localhost"));
-		gtk_toggle_button_set_active ((GtkToggleButton*) self->priv->entry_use_defaults, xfmpc_preferences_get_mpd_use_defaults (self->priv->preferences));
-		gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) self->priv->entry_use_defaults, FALSE, FALSE, (guint) 0);
-		_tmp2_ = NULL;
-		self->priv->mpd_vbox = (_tmp2_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6)), (self->priv->mpd_vbox == NULL) ? NULL : (self->priv->mpd_vbox = (g_object_unref (self->priv->mpd_vbox), NULL)), _tmp2_);
-		gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) self->priv->mpd_vbox, FALSE, FALSE, (guint) 0);
-		g_signal_connect_object ((GtkToggleButton*) self->priv->entry_use_defaults, "toggled", (GCallback) _xfmpc_preferences_dialog_cb_use_defaults_toggled_gtk_toggle_button_toggled, self, 0);
-		gtk_widget_set_sensitive ((GtkWidget*) self->priv->mpd_vbox, !gtk_toggle_button_get_active ((GtkToggleButton*) self->priv->entry_use_defaults));
-		hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 2));
-		gtk_box_pack_start ((GtkBox*) self->priv->mpd_vbox, (GtkWidget*) hbox, FALSE, FALSE, (guint) 0);
-		_tmp3_ = NULL;
-		label = (_tmp3_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Hostname:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp3_);
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 0);
-		_tmp4_ = NULL;
-		self->priv->entry_host = (_tmp4_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), (self->priv->entry_host == NULL) ? NULL : (self->priv->entry_host = (g_object_unref (self->priv->entry_host), NULL)), _tmp4_);
-		gtk_entry_set_width_chars (self->priv->entry_host, 15);
-		gtk_entry_set_text (self->priv->entry_host, xfmpc_preferences_get_mpd_hostname (self->priv->preferences));
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->entry_host, TRUE, TRUE, (guint) 0);
-		_tmp5_ = NULL;
-		label = (_tmp5_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Port:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp5_);
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 0);
-		_tmp6_ = NULL;
-		self->priv->entry_port = (_tmp6_ = g_object_ref_sink ((GtkSpinButton*) gtk_spin_button_new_with_range ((double) 0, (double) 65536, (double) 1)), (self->priv->entry_port == NULL) ? NULL : (self->priv->entry_port = (g_object_unref (self->priv->entry_port), NULL)), _tmp6_);
-		gtk_spin_button_set_digits (self->priv->entry_port, (guint) 0);
-		gtk_spin_button_set_value (self->priv->entry_port, (double) xfmpc_preferences_get_mpd_port (self->priv->preferences));
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->entry_port, TRUE, TRUE, (guint) 0);
-		_tmp7_ = NULL;
-		hbox = (_tmp7_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 2)), (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)), _tmp7_);
-		gtk_box_pack_start ((GtkBox*) self->priv->mpd_vbox, (GtkWidget*) hbox, FALSE, FALSE, (guint) 0);
-		_tmp8_ = NULL;
-		label = (_tmp8_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Password:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp8_);
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 0);
-		_tmp9_ = NULL;
-		self->priv->entry_passwd = (_tmp9_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), (self->priv->entry_passwd == NULL) ? NULL : (self->priv->entry_passwd = (g_object_unref (self->priv->entry_passwd), NULL)), _tmp9_);
-		gtk_entry_set_visibility (self->priv->entry_passwd, FALSE);
-		if (xfmpc_preferences_get_mpd_password (self->priv->preferences) != NULL) {
-			gtk_entry_set_text (self->priv->entry_passwd, xfmpc_preferences_get_mpd_password (self->priv->preferences));
-		}
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->entry_passwd, TRUE, TRUE, (guint) 0);
-		button = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_APPLY));
-		g_signal_connect_object (button, "clicked", (GCallback) _xfmpc_preferences_dialog_cb_update_mpd_gtk_button_clicked, self, 0);
-		gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) button, TRUE, TRUE, (guint) 0);
-		/* Display */
-		_tmp10_ = NULL;
-		vbox = (_tmp10_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6)), (vbox == NULL) ? NULL : (vbox = (g_object_unref (vbox), NULL)), _tmp10_);
-		gtk_container_set_border_width ((GtkContainer*) vbox, (guint) 6);
-		_tmp11_ = NULL;
-		label = (_tmp11_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Appearance"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp11_);
-		gtk_notebook_append_page (notebook, (GtkWidget*) vbox, (GtkWidget*) label);
-		_tmp12_ = NULL;
-		vbox2 = (_tmp12_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6)), (vbox2 == NULL) ? NULL : (vbox2 = (g_object_unref (vbox2), NULL)), _tmp12_);
-		_tmp14_ = NULL;
-		_tmp13_ = NULL;
-		frame = (_tmp14_ = (_tmp13_ = xfce_create_framebox_with_content (_ ("Statusbar"), (GtkWidget*) vbox2), (_tmp13_ == NULL) ? NULL : g_object_ref (_tmp13_)), (frame == NULL) ? NULL : (frame = (g_object_unref (frame), NULL)), _tmp14_);
-		gtk_box_pack_start ((GtkBox*) vbox, frame, FALSE, FALSE, (guint) 0);
-		_tmp15_ = NULL;
-		self->priv->show_statusbar = (_tmp15_ = g_object_ref_sink ((GtkCheckButton*) gtk_check_button_new_with_mnemonic (_ ("Show _stastusbar"))), (self->priv->show_statusbar == NULL) ? NULL : (self->priv->show_statusbar = (g_object_unref (self->priv->show_statusbar), NULL)), _tmp15_);
-		gtk_toggle_button_set_active ((GtkToggleButton*) self->priv->show_statusbar, xfmpc_preferences_get_show_statusbar (self->priv->preferences));
-		g_signal_connect_object ((GtkToggleButton*) self->priv->show_statusbar, "toggled", (GCallback) _xfmpc_preferences_dialog_cb_show_statusbar_toggled_gtk_toggle_button_toggled, self, 0);
-		gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) self->priv->show_statusbar, FALSE, FALSE, (guint) 0);
-		_tmp16_ = NULL;
-		vbox2 = (_tmp16_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6)), (vbox2 == NULL) ? NULL : (vbox2 = (g_object_unref (vbox2), NULL)), _tmp16_);
-		_tmp18_ = NULL;
-		_tmp17_ = NULL;
-		frame = (_tmp18_ = (_tmp17_ = xfce_create_framebox_with_content (_ ("Song Format"), (GtkWidget*) vbox2), (_tmp17_ == NULL) ? NULL : g_object_ref (_tmp17_)), (frame == NULL) ? NULL : (frame = (g_object_unref (frame), NULL)), _tmp18_);
-		gtk_box_pack_start ((GtkBox*) vbox, frame, FALSE, FALSE, (guint) 0);
-		_tmp19_ = NULL;
-		hbox = (_tmp19_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 2)), (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)), _tmp19_);
-		_tmp20_ = NULL;
-		label = (_tmp20_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Song Format:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp20_);
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 0);
-		_tmp21_ = NULL;
-		self->priv->combo_format = (_tmp21_ = g_object_ref_sink ((GtkComboBox*) gtk_combo_box_new_text ()), (self->priv->combo_format == NULL) ? NULL : (self->priv->combo_format = (g_object_unref (self->priv->combo_format), NULL)), _tmp21_);
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->combo_format, TRUE, TRUE, (guint) 0);
-		gtk_combo_box_append_text (self->priv->combo_format, _ ("Title"));
-		gtk_combo_box_append_text (self->priv->combo_format, _ ("Album - Title"));
-		gtk_combo_box_append_text (self->priv->combo_format, _ ("Artist - Title"));
-		gtk_combo_box_append_text (self->priv->combo_format, _ ("Artist - Title (Date)"));
-		gtk_combo_box_append_text (self->priv->combo_format, _ ("Artist - Album - Title"));
-		gtk_combo_box_append_text (self->priv->combo_format, _ ("Artist - Album - Track. Title"));
-		gtk_combo_box_append_text (self->priv->combo_format, _ ("Custom..."));
-		gtk_combo_box_set_active (self->priv->combo_format, (gint) xfmpc_preferences_get_song_format (self->priv->preferences));
-		gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) hbox, TRUE, TRUE, (guint) 0);
-		_tmp22_ = NULL;
-		hbox = (_tmp22_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 2)), (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)), _tmp22_);
-		_tmp23_ = NULL;
-		label = (_tmp23_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Custom format:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp23_);
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 0);
-		_tmp24_ = NULL;
-		self->priv->entry_custom = (_tmp24_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), (self->priv->entry_custom == NULL) ? NULL : (self->priv->entry_custom = (g_object_unref (self->priv->entry_custom), NULL)), _tmp24_);
-		gtk_entry_set_width_chars (self->priv->entry_custom, 15);
-		gtk_entry_set_max_length (self->priv->entry_custom, 30);
-		gtk_entry_set_text (self->priv->entry_custom, xfmpc_preferences_get_song_format_custom (self->priv->preferences));
-		gtk_widget_set_sensitive ((GtkWidget*) self->priv->entry_custom, gtk_combo_box_get_active (self->priv->combo_format) == 6);
-		gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->entry_custom, TRUE, TRUE, (guint) 0);
-		g_signal_connect_object (self->priv->combo_format, "changed", (GCallback) _xfmpc_preferences_dialog_cb_combo_format_changed_gtk_combo_box_changed, self, 0);
-		g_signal_connect_object ((GtkEditable*) self->priv->entry_custom, "changed", (GCallback) _xfmpc_preferences_dialog_cb_entry_custom_changed_gtk_editable_changed, self, 0);
-		gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) hbox, TRUE, TRUE, (guint) 0);
-		_tmp25_ = NULL;
-		label = (_tmp25_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Available parameters:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp25_);
-		gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) label, TRUE, TRUE, (guint) 0);
-		table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) 4, (guint) 6, TRUE));
-		attrs = pango_attr_list_new ();
-		pango_attr_list_insert (attrs, pango_attr_scale_new ((double) PANGO_SCALE_SMALL));
-		_tmp26_ = NULL;
-		label = (_tmp26_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("%a: Artist"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp26_);
-		gtk_label_set_attributes (label, attrs);
-		gtk_misc_set_alignment ((GtkMisc*) label, (float) 0, (float) 0.5);
-		gtk_table_attach_defaults (table, (GtkWidget*) label, (guint) 1, (guint) 3, (guint) 0, (guint) 1);
-		_tmp27_ = NULL;
-		label = (_tmp27_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("%A: Album"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp27_);
-		gtk_label_set_attributes (label, attrs);
-		gtk_misc_set_alignment ((GtkMisc*) label, (float) 0, (float) 0.5);
-		gtk_table_attach_defaults (table, (GtkWidget*) label, (guint) 4, (guint) 6, (guint) 0, (guint) 1);
-		_tmp28_ = NULL;
-		label = (_tmp28_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("%d: Date"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp28_);
-		gtk_label_set_attributes (label, attrs);
-		gtk_misc_set_alignment ((GtkMisc*) label, (float) 0, (float) 0.5);
-		gtk_table_attach_defaults (table, (GtkWidget*) label, (guint) 1, (guint) 3, (guint) 1, (guint) 2);
-		_tmp29_ = NULL;
-		label = (_tmp29_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("%D: Disc"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp29_);
-		gtk_label_set_attributes (label, attrs);
-		gtk_misc_set_alignment ((GtkMisc*) label, (float) 0, (float) 0.5);
-		gtk_table_attach_defaults (table, (GtkWidget*) label, (guint) 4, (guint) 6, (guint) 1, (guint) 2);
-		_tmp30_ = NULL;
-		label = (_tmp30_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("%f: File"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp30_);
-		gtk_label_set_attributes (label, attrs);
-		gtk_misc_set_alignment ((GtkMisc*) label, (float) 0, (float) 0.5);
-		gtk_table_attach_defaults (table, (GtkWidget*) label, (guint) 1, (guint) 3, (guint) 2, (guint) 3);
-		_tmp31_ = NULL;
-		label = (_tmp31_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("%g: Genre"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp31_);
-		gtk_label_set_attributes (label, attrs);
-		gtk_misc_set_alignment ((GtkMisc*) label, (float) 0, (float) 0.5);
-		gtk_table_attach_defaults (table, (GtkWidget*) label, (guint) 4, (guint) 6, (guint) 2, (guint) 3);
-		_tmp32_ = NULL;
-		label = (_tmp32_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("%t: Title"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp32_);
-		gtk_label_set_attributes (label, attrs);
-		gtk_misc_set_alignment ((GtkMisc*) label, (float) 0, (float) 0.5);
-		gtk_table_attach_defaults (table, (GtkWidget*) label, (guint) 1, (guint) 3, (guint) 3, (guint) 4);
-		_tmp33_ = NULL;
-		label = (_tmp33_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("%T: Track"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp33_);
-		gtk_label_set_attributes (label, attrs);
-		gtk_misc_set_alignment ((GtkMisc*) label, (float) 0, (float) 0.5);
-		gtk_table_attach_defaults (table, (GtkWidget*) label, (guint) 4, (guint) 6, (guint) 3, (guint) 4);
-		gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) table, TRUE, TRUE, (guint) 0);
-		gtk_dialog_add_button ((GtkDialog*) self, GTK_STOCK_CLOSE, (gint) GTK_RESPONSE_CLOSE);
-		gtk_widget_show_all ((GtkWidget*) self);
-		/* Signals */
-		g_signal_connect_object ((GtkDialog*) self, "response", (GCallback) _xfmpc_preferences_dialog_cb_response_gtk_dialog_response, self, 0);
-		(notebook == NULL) ? NULL : (notebook = (g_object_unref (notebook), NULL));
-		(vbox == NULL) ? NULL : (vbox = (g_object_unref (vbox), NULL));
-		(label == NULL) ? NULL : (label = (g_object_unref (label), NULL));
-		(vbox2 == NULL) ? NULL : (vbox2 = (g_object_unref (vbox2), NULL));
-		(frame == NULL) ? NULL : (frame = (g_object_unref (frame), NULL));
-		(hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL));
-		(button == NULL) ? NULL : (button = (g_object_unref (button), NULL));
-		(table == NULL) ? NULL : (table = (g_object_unref (table), NULL));
-		(attrs == NULL) ? NULL : (attrs = (pango_attr_list_unref (attrs), NULL));
-	}
-	return obj;
-}
-
-
-static void xfmpc_preferences_dialog_class_init (XfmpcPreferencesDialogClass * klass) {
-	xfmpc_preferences_dialog_parent_class = g_type_class_peek_parent (klass);
-	g_type_class_add_private (klass, sizeof (XfmpcPreferencesDialogPrivate));
-	G_OBJECT_CLASS (klass)->constructor = xfmpc_preferences_dialog_constructor;
-	G_OBJECT_CLASS (klass)->finalize = xfmpc_preferences_dialog_finalize;
-}
-
-
-static void xfmpc_preferences_dialog_instance_init (XfmpcPreferencesDialog * self) {
-	self->priv = XFMPC_PREFERENCES_DIALOG_GET_PRIVATE (self);
-}
-
-
-static void xfmpc_preferences_dialog_finalize (GObject* obj) {
-	XfmpcPreferencesDialog * self;
-	self = XFMPC_PREFERENCES_DIALOG (obj);
-	(self->priv->entry_use_defaults == NULL) ? NULL : (self->priv->entry_use_defaults = (g_object_unref (self->priv->entry_use_defaults), NULL));
-	(self->priv->entry_host == NULL) ? NULL : (self->priv->entry_host = (g_object_unref (self->priv->entry_host), NULL));
-	(self->priv->entry_passwd == NULL) ? NULL : (self->priv->entry_passwd = (g_object_unref (self->priv->entry_passwd), NULL));
-	(self->priv->entry_port == NULL) ? NULL : (self->priv->entry_port = (g_object_unref (self->priv->entry_port), NULL));
-	(self->priv->show_statusbar == NULL) ? NULL : (self->priv->show_statusbar = (g_object_unref (self->priv->show_statusbar), NULL));
-	(self->priv->combo_format == NULL) ? NULL : (self->priv->combo_format = (g_object_unref (self->priv->combo_format), NULL));
-	(self->priv->entry_custom == NULL) ? NULL : (self->priv->entry_custom = (g_object_unref (self->priv->entry_custom), NULL));
-	(self->priv->mpd_vbox == NULL) ? NULL : (self->priv->mpd_vbox = (g_object_unref (self->priv->mpd_vbox), NULL));
-	G_OBJECT_CLASS (xfmpc_preferences_dialog_parent_class)->finalize (obj);
-}
-
-
-GType xfmpc_preferences_dialog_get_type (void) {
-	static GType xfmpc_preferences_dialog_type_id = 0;
-	if (xfmpc_preferences_dialog_type_id == 0) {
-		static const GTypeInfo g_define_type_info = { sizeof (XfmpcPreferencesDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) xfmpc_preferences_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (XfmpcPreferencesDialog), 0, (GInstanceInitFunc) xfmpc_preferences_dialog_instance_init, NULL };
-		xfmpc_preferences_dialog_type_id = g_type_register_static (XFCE_TYPE_TITLED_DIALOG, "XfmpcPreferencesDialog", &g_define_type_info, 0);
-	}
-	return xfmpc_preferences_dialog_type_id;
-}
-
-
-
-
diff --git a/src/preferences.c b/src/preferences.c
deleted file mode 100644
index 0bd364d..0000000
--- a/src/preferences.c
+++ /dev/null
@@ -1,734 +0,0 @@
-/*
- *  Copyright (c) 2009 Mike Massonnet <mmassonnet at xfce.org>
- *  Copyright (c) 2009 Vincent Legout <vincent at xfce.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include <glib.h>
-#include <glib-object.h>
-#include <stdlib.h>
-#include <string.h>
-#include <libxfce4util/libxfce4util.h>
-
-
-#define XFMPC_TYPE_PREFERENCES (xfmpc_preferences_get_type ())
-#define XFMPC_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferences))
-#define XFMPC_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-#define XFMPC_IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-
-typedef struct _XfmpcPreferences XfmpcPreferences;
-typedef struct _XfmpcPreferencesClass XfmpcPreferencesClass;
-typedef struct _XfmpcPreferencesPrivate XfmpcPreferencesPrivate;
-
-#define XFMPC_PREFERENCES_TYPE_SONG_FORMAT (xfmpc_preferences_song_format_get_type ())
-
-struct _XfmpcPreferences {
-	GObject parent_instance;
-	XfmpcPreferencesPrivate * priv;
-};
-
-struct _XfmpcPreferencesClass {
-	GObjectClass parent_class;
-};
-
-typedef enum  {
-	XFMPC_PREFERENCES_SONG_FORMAT_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ALBUM_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE_DATE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TRACK_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_CUSTOM_FORMAT
-} XfmpcPreferencesSongFormat;
-
-struct _XfmpcPreferencesPrivate {
-	gint _last_window_posx;
-	gint _last_window_posy;
-	gint _last_window_width;
-	gint _last_window_height;
-	gboolean _last_window_state_sticky;
-	gboolean _playlist_autocenter;
-	char* _dbbrowser_last_path;
-	char* _mpd_hostname;
-	gint _mpd_port;
-	char* _mpd_password;
-	gboolean _mpd_use_defaults;
-	gboolean _show_statusbar;
-	XfmpcPreferencesSongFormat _song_format;
-	char* _song_format_custom;
-};
-
-
-static XfmpcPreferences* xfmpc_preferences_preferences;
-static XfmpcPreferences* xfmpc_preferences_preferences = NULL;
-static gpointer xfmpc_preferences_parent_class = NULL;
-
-GType xfmpc_preferences_get_type (void);
-GType xfmpc_preferences_song_format_get_type (void);
-#define XFMPC_PREFERENCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesPrivate))
-enum  {
-	XFMPC_PREFERENCES_DUMMY_PROPERTY,
-	XFMPC_PREFERENCES_LAST_WINDOW_POSX,
-	XFMPC_PREFERENCES_LAST_WINDOW_POSY,
-	XFMPC_PREFERENCES_LAST_WINDOW_WIDTH,
-	XFMPC_PREFERENCES_LAST_WINDOW_HEIGHT,
-	XFMPC_PREFERENCES_LAST_WINDOW_STATE_STICKY,
-	XFMPC_PREFERENCES_PLAYLIST_AUTOCENTER,
-	XFMPC_PREFERENCES_DBBROWSER_LAST_PATH,
-	XFMPC_PREFERENCES_MPD_HOSTNAME,
-	XFMPC_PREFERENCES_MPD_PORT,
-	XFMPC_PREFERENCES_MPD_PASSWORD,
-	XFMPC_PREFERENCES_MPD_USE_DEFAULTS,
-	XFMPC_PREFERENCES_SHOW_STATUSBAR,
-	XFMPC_PREFERENCES_SONG_FORMAT,
-	XFMPC_PREFERENCES_SONG_FORMAT_CUSTOM
-};
-static void xfmpc_preferences_load (XfmpcPreferences* self);
-XfmpcPreferences* xfmpc_preferences_new (void);
-XfmpcPreferences* xfmpc_preferences_construct (GType object_type);
-XfmpcPreferences* xfmpc_preferences_get_default (void);
-static void xfmpc_preferences_store (XfmpcPreferences* self);
-gint xfmpc_preferences_get_last_window_posx (XfmpcPreferences* self);
-void xfmpc_preferences_set_last_window_posx (XfmpcPreferences* self, gint value);
-gint xfmpc_preferences_get_last_window_posy (XfmpcPreferences* self);
-void xfmpc_preferences_set_last_window_posy (XfmpcPreferences* self, gint value);
-gint xfmpc_preferences_get_last_window_width (XfmpcPreferences* self);
-void xfmpc_preferences_set_last_window_width (XfmpcPreferences* self, gint value);
-gint xfmpc_preferences_get_last_window_height (XfmpcPreferences* self);
-void xfmpc_preferences_set_last_window_height (XfmpcPreferences* self, gint value);
-gboolean xfmpc_preferences_get_last_window_state_sticky (XfmpcPreferences* self);
-void xfmpc_preferences_set_last_window_state_sticky (XfmpcPreferences* self, gboolean value);
-gboolean xfmpc_preferences_get_playlist_autocenter (XfmpcPreferences* self);
-void xfmpc_preferences_set_playlist_autocenter (XfmpcPreferences* self, gboolean value);
-const char* xfmpc_preferences_get_dbbrowser_last_path (XfmpcPreferences* self);
-void xfmpc_preferences_set_dbbrowser_last_path (XfmpcPreferences* self, const char* value);
-const char* xfmpc_preferences_get_mpd_hostname (XfmpcPreferences* self);
-void xfmpc_preferences_set_mpd_hostname (XfmpcPreferences* self, const char* value);
-gint xfmpc_preferences_get_mpd_port (XfmpcPreferences* self);
-void xfmpc_preferences_set_mpd_port (XfmpcPreferences* self, gint value);
-const char* xfmpc_preferences_get_mpd_password (XfmpcPreferences* self);
-void xfmpc_preferences_set_mpd_password (XfmpcPreferences* self, const char* value);
-gboolean xfmpc_preferences_get_mpd_use_defaults (XfmpcPreferences* self);
-void xfmpc_preferences_set_mpd_use_defaults (XfmpcPreferences* self, gboolean value);
-gboolean xfmpc_preferences_get_show_statusbar (XfmpcPreferences* self);
-void xfmpc_preferences_set_show_statusbar (XfmpcPreferences* self, gboolean value);
-XfmpcPreferencesSongFormat xfmpc_preferences_get_song_format (XfmpcPreferences* self);
-void xfmpc_preferences_set_song_format (XfmpcPreferences* self, XfmpcPreferencesSongFormat value);
-const char* xfmpc_preferences_get_song_format_custom (XfmpcPreferences* self);
-void xfmpc_preferences_set_song_format_custom (XfmpcPreferences* self, const char* value);
-static GObject * xfmpc_preferences_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
-static void xfmpc_preferences_finalize (GObject* obj);
-static void xfmpc_preferences_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-static void xfmpc_preferences_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
-static int _vala_strcmp0 (const char * str1, const char * str2);
-
-
-
-
-GType xfmpc_preferences_song_format_get_type (void) {
-	static GType xfmpc_preferences_song_format_type_id = 0;
-	if (G_UNLIKELY (xfmpc_preferences_song_format_type_id == 0)) {
-		static const GEnumValue values[] = {{XFMPC_PREFERENCES_SONG_FORMAT_TITLE, "XFMPC_PREFERENCES_SONG_FORMAT_TITLE", "title"}, {XFMPC_PREFERENCES_SONG_FORMAT_ALBUM_TITLE, "XFMPC_PREFERENCES_SONG_FORMAT_ALBUM_TITLE", "album-title"}, {XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE, "XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE", "artist-title"}, {XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE_DATE, "XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE_DATE", "artist-title-date"}, {XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TITLE, "XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TITLE", "artist-album-title"}, {XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TRACK_TITLE, "XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TRACK_TITLE", "artist-album-track-title"}, {XFMPC_PREFERENCES_SONG_FORMAT_CUSTOM_FORMAT, "XFMPC_PREFERENCES_SONG_FORMAT_CUSTOM_FORMAT", "custom-format"}, {0, NULL, NULL}};
-		xfmpc_preferences_song_format_type_id = g_enum_register_static ("XfmpcPreferencesSongFormat", values);
-	}
-	return xfmpc_preferences_song_format_type_id;
-}
-
-
-XfmpcPreferences* xfmpc_preferences_construct (GType object_type) {
-	XfmpcPreferences * self;
-	self = g_object_newv (object_type, 0, NULL);
-	xfmpc_preferences_load (self);
-	return self;
-}
-
-
-XfmpcPreferences* xfmpc_preferences_new (void) {
-	return xfmpc_preferences_construct (XFMPC_TYPE_PREFERENCES);
-}
-
-
-XfmpcPreferences* xfmpc_preferences_get_default (void) {
-	XfmpcPreferences* result;
-	if (xfmpc_preferences_preferences == NULL) {
-		XfmpcPreferences* _tmp0_;
-		_tmp0_ = NULL;
-		xfmpc_preferences_preferences = (_tmp0_ = xfmpc_preferences_new (), (xfmpc_preferences_preferences == NULL) ? NULL : (xfmpc_preferences_preferences = (g_object_unref (xfmpc_preferences_preferences), NULL)), _tmp0_);
-		g_object_add_weak_pointer ((GObject*) xfmpc_preferences_preferences, &xfmpc_preferences_preferences);
-	} else {
-		g_object_ref ((GObject*) xfmpc_preferences_preferences);
-	}
-	result = xfmpc_preferences_preferences;
-	return result;
-}
-
-
-static void xfmpc_preferences_load (XfmpcPreferences* self) {
-	XfceRc* rc;
-	char* entry;
-	GValue _tmp0_ = {0};
-	GValue src;
-	g_return_if_fail (self != NULL);
-	rc = xfce_rc_config_open (XFCE_RESOURCE_CONFIG, "xfce4/xfmpcrc", FALSE);
-	if (rc == NULL) {
-		g_warning ("preferences.vala:146: Failed to load the preferences");
-		(rc == NULL) ? NULL : (rc = (xfce_rc_close (rc), NULL));
-		return;
-	}
-	g_object_freeze_notify ((GObject*) self);
-	xfce_rc_set_group (rc, "Configuration");
-	entry = NULL;
-	src = (g_value_init (&_tmp0_, G_TYPE_STRING), _tmp0_);
-	{
-		gint _tmp1_;
-		GParamSpec** spec_collection;
-		int spec_collection_length1;
-		int spec_it;
-		spec_collection = g_object_class_list_properties ((GObjectClass*) g_type_class_peek (G_TYPE_FROM_INSTANCE ((GObject*) self)), &_tmp1_);
-		spec_collection_length1 = _tmp1_;
-		for (spec_it = 0; spec_it < _tmp1_; spec_it = spec_it + 1) {
-			GParamSpec* _tmp4_;
-			GParamSpec* spec;
-			_tmp4_ = NULL;
-			spec = (_tmp4_ = spec_collection[spec_it], (_tmp4_ == NULL) ? NULL : g_param_spec_ref (_tmp4_));
-			{
-				char* _tmp3_;
-				const char* _tmp2_;
-				_tmp3_ = NULL;
-				_tmp2_ = NULL;
-				entry = (_tmp3_ = (_tmp2_ = xfce_rc_read_entry (rc, g_param_spec_get_nick (spec), ""), (_tmp2_ == NULL) ? NULL : g_strdup (_tmp2_)), entry = (g_free (entry), NULL), _tmp3_);
-				if (_vala_strcmp0 (entry, "") == 0) {
-					(spec == NULL) ? NULL : (spec = (g_param_spec_unref (spec), NULL));
-					continue;
-				}
-				g_value_set_static_string (&src, entry);
-				g_object_set_property ((GObject*) self, spec->name, &src);
-				(spec == NULL) ? NULL : (spec = (g_param_spec_unref (spec), NULL));
-			}
-		}
-	}
-	g_object_thaw_notify ((GObject*) self);
-	(rc == NULL) ? NULL : (rc = (xfce_rc_close (rc), NULL));
-	entry = (g_free (entry), NULL);
-	G_IS_VALUE (&src) ? (g_value_unset (&src), NULL) : NULL;
-}
-
-
-static void xfmpc_preferences_store (XfmpcPreferences* self) {
-	XfceRc* rc;
-	char* entry;
-	GValue _tmp0_ = {0};
-	GValue dst;
-	g_return_if_fail (self != NULL);
-	rc = xfce_rc_config_open (XFCE_RESOURCE_CONFIG, "xfce4/xfmpcrc", FALSE);
-	if (rc == NULL) {
-		g_warning ("preferences.vala:174: Failed to save the preferences");
-		(rc == NULL) ? NULL : (rc = (xfce_rc_close (rc), NULL));
-		return;
-	}
-	xfce_rc_set_group (rc, "Configuration");
-	entry = NULL;
-	dst = (g_value_init (&_tmp0_, G_TYPE_STRING), _tmp0_);
-	{
-		gint _tmp1_;
-		GParamSpec** spec_collection;
-		int spec_collection_length1;
-		int spec_it;
-		spec_collection = g_object_class_list_properties ((GObjectClass*) g_type_class_peek (G_TYPE_FROM_INSTANCE ((GObject*) self)), &_tmp1_);
-		spec_collection_length1 = _tmp1_;
-		for (spec_it = 0; spec_it < _tmp1_; spec_it = spec_it + 1) {
-			GParamSpec* _tmp5_;
-			GParamSpec* spec;
-			_tmp5_ = NULL;
-			spec = (_tmp5_ = spec_collection[spec_it], (_tmp5_ == NULL) ? NULL : g_param_spec_ref (_tmp5_));
-			{
-				char* _tmp4_;
-				const char* _tmp3_;
-				if (spec->value_type == G_TYPE_STRING) {
-					g_object_get_property ((GObject*) self, spec->name, &dst);
-				} else {
-					GValue _tmp2_ = {0};
-					GValue src;
-					src = (g_value_init (&_tmp2_, spec->value_type), _tmp2_);
-					g_object_get_property ((GObject*) self, spec->name, &src);
-					g_value_transform (&src, &dst);
-					G_IS_VALUE (&src) ? (g_value_unset (&src), NULL) : NULL;
-				}
-				_tmp4_ = NULL;
-				_tmp3_ = NULL;
-				entry = (_tmp4_ = (_tmp3_ = g_value_get_string (&dst), (_tmp3_ == NULL) ? NULL : g_strdup (_tmp3_)), entry = (g_free (entry), NULL), _tmp4_);
-				if (entry != NULL) {
-					xfce_rc_write_entry (rc, g_param_spec_get_nick (spec), entry);
-				}
-				(spec == NULL) ? NULL : (spec = (g_param_spec_unref (spec), NULL));
-			}
-		}
-	}
-	(rc == NULL) ? NULL : (rc = (xfce_rc_close (rc), NULL));
-	entry = (g_free (entry), NULL);
-	G_IS_VALUE (&dst) ? (g_value_unset (&dst), NULL) : NULL;
-}
-
-
-gint xfmpc_preferences_get_last_window_posx (XfmpcPreferences* self) {
-	gint result;
-	g_return_val_if_fail (self != NULL, 0);
-	result = self->priv->_last_window_posx;
-	return result;
-}
-
-
-void xfmpc_preferences_set_last_window_posx (XfmpcPreferences* self, gint value) {
-	g_return_if_fail (self != NULL);
-	self->priv->_last_window_posx = value;
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "last-window-posx");
-}
-
-
-gint xfmpc_preferences_get_last_window_posy (XfmpcPreferences* self) {
-	gint result;
-	g_return_val_if_fail (self != NULL, 0);
-	result = self->priv->_last_window_posy;
-	return result;
-}
-
-
-void xfmpc_preferences_set_last_window_posy (XfmpcPreferences* self, gint value) {
-	g_return_if_fail (self != NULL);
-	self->priv->_last_window_posy = value;
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "last-window-posy");
-}
-
-
-gint xfmpc_preferences_get_last_window_width (XfmpcPreferences* self) {
-	gint result;
-	g_return_val_if_fail (self != NULL, 0);
-	result = self->priv->_last_window_width;
-	return result;
-}
-
-
-void xfmpc_preferences_set_last_window_width (XfmpcPreferences* self, gint value) {
-	g_return_if_fail (self != NULL);
-	self->priv->_last_window_width = value;
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "last-window-width");
-}
-
-
-gint xfmpc_preferences_get_last_window_height (XfmpcPreferences* self) {
-	gint result;
-	g_return_val_if_fail (self != NULL, 0);
-	result = self->priv->_last_window_height;
-	return result;
-}
-
-
-void xfmpc_preferences_set_last_window_height (XfmpcPreferences* self, gint value) {
-	g_return_if_fail (self != NULL);
-	self->priv->_last_window_height = value;
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "last-window-height");
-}
-
-
-gboolean xfmpc_preferences_get_last_window_state_sticky (XfmpcPreferences* self) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	result = self->priv->_last_window_state_sticky;
-	return result;
-}
-
-
-void xfmpc_preferences_set_last_window_state_sticky (XfmpcPreferences* self, gboolean value) {
-	g_return_if_fail (self != NULL);
-	self->priv->_last_window_state_sticky = value;
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "last-window-state-sticky");
-}
-
-
-gboolean xfmpc_preferences_get_playlist_autocenter (XfmpcPreferences* self) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	result = self->priv->_playlist_autocenter;
-	return result;
-}
-
-
-void xfmpc_preferences_set_playlist_autocenter (XfmpcPreferences* self, gboolean value) {
-	g_return_if_fail (self != NULL);
-	self->priv->_playlist_autocenter = value;
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "playlist-autocenter");
-}
-
-
-const char* xfmpc_preferences_get_dbbrowser_last_path (XfmpcPreferences* self) {
-	const char* result;
-	g_return_val_if_fail (self != NULL, NULL);
-	result = self->priv->_dbbrowser_last_path;
-	return result;
-}
-
-
-void xfmpc_preferences_set_dbbrowser_last_path (XfmpcPreferences* self, const char* value) {
-	char* _tmp1_;
-	const char* _tmp0_;
-	g_return_if_fail (self != NULL);
-	_tmp1_ = NULL;
-	_tmp0_ = NULL;
-	self->priv->_dbbrowser_last_path = (_tmp1_ = (_tmp0_ = value, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->_dbbrowser_last_path = (g_free (self->priv->_dbbrowser_last_path), NULL), _tmp1_);
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "dbbrowser-last-path");
-}
-
-
-const char* xfmpc_preferences_get_mpd_hostname (XfmpcPreferences* self) {
-	const char* result;
-	g_return_val_if_fail (self != NULL, NULL);
-	result = self->priv->_mpd_hostname;
-	return result;
-}
-
-
-void xfmpc_preferences_set_mpd_hostname (XfmpcPreferences* self, const char* value) {
-	char* _tmp1_;
-	const char* _tmp0_;
-	g_return_if_fail (self != NULL);
-	_tmp1_ = NULL;
-	_tmp0_ = NULL;
-	self->priv->_mpd_hostname = (_tmp1_ = (_tmp0_ = value, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->_mpd_hostname = (g_free (self->priv->_mpd_hostname), NULL), _tmp1_);
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "mpd-hostname");
-}
-
-
-gint xfmpc_preferences_get_mpd_port (XfmpcPreferences* self) {
-	gint result;
-	g_return_val_if_fail (self != NULL, 0);
-	result = self->priv->_mpd_port;
-	return result;
-}
-
-
-void xfmpc_preferences_set_mpd_port (XfmpcPreferences* self, gint value) {
-	g_return_if_fail (self != NULL);
-	self->priv->_mpd_port = value;
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "mpd-port");
-}
-
-
-const char* xfmpc_preferences_get_mpd_password (XfmpcPreferences* self) {
-	const char* result;
-	g_return_val_if_fail (self != NULL, NULL);
-	result = self->priv->_mpd_password;
-	return result;
-}
-
-
-void xfmpc_preferences_set_mpd_password (XfmpcPreferences* self, const char* value) {
-	char* _tmp1_;
-	const char* _tmp0_;
-	g_return_if_fail (self != NULL);
-	_tmp1_ = NULL;
-	_tmp0_ = NULL;
-	self->priv->_mpd_password = (_tmp1_ = (_tmp0_ = value, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->_mpd_password = (g_free (self->priv->_mpd_password), NULL), _tmp1_);
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "mpd-password");
-}
-
-
-gboolean xfmpc_preferences_get_mpd_use_defaults (XfmpcPreferences* self) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	result = self->priv->_mpd_use_defaults;
-	return result;
-}
-
-
-void xfmpc_preferences_set_mpd_use_defaults (XfmpcPreferences* self, gboolean value) {
-	g_return_if_fail (self != NULL);
-	self->priv->_mpd_use_defaults = value;
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "mpd-use-defaults");
-}
-
-
-gboolean xfmpc_preferences_get_show_statusbar (XfmpcPreferences* self) {
-	gboolean result;
-	g_return_val_if_fail (self != NULL, FALSE);
-	result = self->priv->_show_statusbar;
-	return result;
-}
-
-
-void xfmpc_preferences_set_show_statusbar (XfmpcPreferences* self, gboolean value) {
-	g_return_if_fail (self != NULL);
-	self->priv->_show_statusbar = value;
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "show-statusbar");
-}
-
-
-XfmpcPreferencesSongFormat xfmpc_preferences_get_song_format (XfmpcPreferences* self) {
-	XfmpcPreferencesSongFormat result;
-	g_return_val_if_fail (self != NULL, 0);
-	result = self->priv->_song_format;
-	return result;
-}
-
-
-void xfmpc_preferences_set_song_format (XfmpcPreferences* self, XfmpcPreferencesSongFormat value) {
-	g_return_if_fail (self != NULL);
-	self->priv->_song_format = value;
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "song-format");
-}
-
-
-const char* xfmpc_preferences_get_song_format_custom (XfmpcPreferences* self) {
-	const char* result;
-	g_return_val_if_fail (self != NULL, NULL);
-	result = self->priv->_song_format_custom;
-	return result;
-}
-
-
-void xfmpc_preferences_set_song_format_custom (XfmpcPreferences* self, const char* value) {
-	char* _tmp1_;
-	const char* _tmp0_;
-	g_return_if_fail (self != NULL);
-	_tmp1_ = NULL;
-	_tmp0_ = NULL;
-	self->priv->_song_format_custom = (_tmp1_ = (_tmp0_ = value, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->_song_format_custom = (g_free (self->priv->_song_format_custom), NULL), _tmp1_);
-	xfmpc_preferences_store (self);
-	g_object_notify ((GObject *) self, "song-format-custom");
-}
-
-
-static GObject * xfmpc_preferences_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
-	GObject * obj;
-	XfmpcPreferencesClass * klass;
-	GObjectClass * parent_class;
-	XfmpcPreferences * self;
-	klass = XFMPC_PREFERENCES_CLASS (g_type_class_peek (XFMPC_TYPE_PREFERENCES));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
-	self = XFMPC_PREFERENCES (obj);
-	{
-		char* _tmp0_;
-		char* _tmp1_;
-		char* _tmp2_;
-		char* _tmp3_;
-		self->priv->_last_window_posx = 200;
-		self->priv->_last_window_posy = 100;
-		self->priv->_last_window_width = 330;
-		self->priv->_last_window_height = 330;
-		self->priv->_last_window_state_sticky = TRUE;
-		self->priv->_playlist_autocenter = TRUE;
-		_tmp0_ = NULL;
-		self->priv->_dbbrowser_last_path = (_tmp0_ = g_strdup (""), self->priv->_dbbrowser_last_path = (g_free (self->priv->_dbbrowser_last_path), NULL), _tmp0_);
-		_tmp1_ = NULL;
-		self->priv->_mpd_hostname = (_tmp1_ = g_strdup ("localhost"), self->priv->_mpd_hostname = (g_free (self->priv->_mpd_hostname), NULL), _tmp1_);
-		self->priv->_mpd_port = 6600;
-		_tmp2_ = NULL;
-		self->priv->_mpd_password = (_tmp2_ = g_strdup (""), self->priv->_mpd_password = (g_free (self->priv->_mpd_password), NULL), _tmp2_);
-		self->priv->_mpd_use_defaults = TRUE;
-		self->priv->_show_statusbar = TRUE;
-		self->priv->_song_format = XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE;
-		_tmp3_ = NULL;
-		self->priv->_song_format_custom = (_tmp3_ = g_strdup ("%a - %t"), self->priv->_song_format_custom = (g_free (self->priv->_song_format_custom), NULL), _tmp3_);
-	}
-	return obj;
-}
-
-
-static void xfmpc_preferences_class_init (XfmpcPreferencesClass * klass) {
-	xfmpc_preferences_parent_class = g_type_class_peek_parent (klass);
-	g_type_class_add_private (klass, sizeof (XfmpcPreferencesPrivate));
-	G_OBJECT_CLASS (klass)->get_property = xfmpc_preferences_get_property;
-	G_OBJECT_CLASS (klass)->set_property = xfmpc_preferences_set_property;
-	G_OBJECT_CLASS (klass)->constructor = xfmpc_preferences_constructor;
-	G_OBJECT_CLASS (klass)->finalize = xfmpc_preferences_finalize;
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_LAST_WINDOW_POSX, g_param_spec_int ("last-window-posx", "last-window-posx", "last-window-posx", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_LAST_WINDOW_POSY, g_param_spec_int ("last-window-posy", "last-window-posy", "last-window-posy", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_LAST_WINDOW_WIDTH, g_param_spec_int ("last-window-width", "last-window-width", "last-window-width", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_LAST_WINDOW_HEIGHT, g_param_spec_int ("last-window-height", "last-window-height", "last-window-height", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_LAST_WINDOW_STATE_STICKY, g_param_spec_boolean ("last-window-state-sticky", "last-window-state-sticky", "last-window-state-sticky", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_PLAYLIST_AUTOCENTER, g_param_spec_boolean ("playlist-autocenter", "playlist-autocenter", "playlist-autocenter", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_DBBROWSER_LAST_PATH, g_param_spec_string ("dbbrowser-last-path", "dbbrowser-last-path", "dbbrowser-last-path", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_MPD_HOSTNAME, g_param_spec_string ("mpd-hostname", "mpd-hostname", "mpd-hostname", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_MPD_PORT, g_param_spec_int ("mpd-port", "mpd-port", "mpd-port", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_MPD_PASSWORD, g_param_spec_string ("mpd-password", "mpd-password", "mpd-password", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_MPD_USE_DEFAULTS, g_param_spec_boolean ("mpd-use-defaults", "mpd-use-defaults", "mpd-use-defaults", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_SHOW_STATUSBAR, g_param_spec_boolean ("show-statusbar", "show-statusbar", "show-statusbar", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_SONG_FORMAT, g_param_spec_enum ("song-format", "song-format", "song-format", XFMPC_PREFERENCES_TYPE_SONG_FORMAT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_PREFERENCES_SONG_FORMAT_CUSTOM, g_param_spec_string ("song-format-custom", "song-format-custom", "song-format-custom", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-}
-
-
-static void xfmpc_preferences_instance_init (XfmpcPreferences * self) {
-	self->priv = XFMPC_PREFERENCES_GET_PRIVATE (self);
-}
-
-
-static void xfmpc_preferences_finalize (GObject* obj) {
-	XfmpcPreferences * self;
-	self = XFMPC_PREFERENCES (obj);
-	self->priv->_dbbrowser_last_path = (g_free (self->priv->_dbbrowser_last_path), NULL);
-	self->priv->_mpd_hostname = (g_free (self->priv->_mpd_hostname), NULL);
-	self->priv->_mpd_password = (g_free (self->priv->_mpd_password), NULL);
-	self->priv->_song_format_custom = (g_free (self->priv->_song_format_custom), NULL);
-	G_OBJECT_CLASS (xfmpc_preferences_parent_class)->finalize (obj);
-}
-
-
-GType xfmpc_preferences_get_type (void) {
-	static GType xfmpc_preferences_type_id = 0;
-	if (xfmpc_preferences_type_id == 0) {
-		static const GTypeInfo g_define_type_info = { sizeof (XfmpcPreferencesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) xfmpc_preferences_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (XfmpcPreferences), 0, (GInstanceInitFunc) xfmpc_preferences_instance_init, NULL };
-		xfmpc_preferences_type_id = g_type_register_static (G_TYPE_OBJECT, "XfmpcPreferences", &g_define_type_info, 0);
-	}
-	return xfmpc_preferences_type_id;
-}
-
-
-static void xfmpc_preferences_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
-	XfmpcPreferences * self;
-	gpointer boxed;
-	self = XFMPC_PREFERENCES (object);
-	switch (property_id) {
-		case XFMPC_PREFERENCES_LAST_WINDOW_POSX:
-		g_value_set_int (value, xfmpc_preferences_get_last_window_posx (self));
-		break;
-		case XFMPC_PREFERENCES_LAST_WINDOW_POSY:
-		g_value_set_int (value, xfmpc_preferences_get_last_window_posy (self));
-		break;
-		case XFMPC_PREFERENCES_LAST_WINDOW_WIDTH:
-		g_value_set_int (value, xfmpc_preferences_get_last_window_width (self));
-		break;
-		case XFMPC_PREFERENCES_LAST_WINDOW_HEIGHT:
-		g_value_set_int (value, xfmpc_preferences_get_last_window_height (self));
-		break;
-		case XFMPC_PREFERENCES_LAST_WINDOW_STATE_STICKY:
-		g_value_set_boolean (value, xfmpc_preferences_get_last_window_state_sticky (self));
-		break;
-		case XFMPC_PREFERENCES_PLAYLIST_AUTOCENTER:
-		g_value_set_boolean (value, xfmpc_preferences_get_playlist_autocenter (self));
-		break;
-		case XFMPC_PREFERENCES_DBBROWSER_LAST_PATH:
-		g_value_set_string (value, xfmpc_preferences_get_dbbrowser_last_path (self));
-		break;
-		case XFMPC_PREFERENCES_MPD_HOSTNAME:
-		g_value_set_string (value, xfmpc_preferences_get_mpd_hostname (self));
-		break;
-		case XFMPC_PREFERENCES_MPD_PORT:
-		g_value_set_int (value, xfmpc_preferences_get_mpd_port (self));
-		break;
-		case XFMPC_PREFERENCES_MPD_PASSWORD:
-		g_value_set_string (value, xfmpc_preferences_get_mpd_password (self));
-		break;
-		case XFMPC_PREFERENCES_MPD_USE_DEFAULTS:
-		g_value_set_boolean (value, xfmpc_preferences_get_mpd_use_defaults (self));
-		break;
-		case XFMPC_PREFERENCES_SHOW_STATUSBAR:
-		g_value_set_boolean (value, xfmpc_preferences_get_show_statusbar (self));
-		break;
-		case XFMPC_PREFERENCES_SONG_FORMAT:
-		g_value_set_enum (value, xfmpc_preferences_get_song_format (self));
-		break;
-		case XFMPC_PREFERENCES_SONG_FORMAT_CUSTOM:
-		g_value_set_string (value, xfmpc_preferences_get_song_format_custom (self));
-		break;
-		default:
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-		break;
-	}
-}
-
-
-static void xfmpc_preferences_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
-	XfmpcPreferences * self;
-	self = XFMPC_PREFERENCES (object);
-	switch (property_id) {
-		case XFMPC_PREFERENCES_LAST_WINDOW_POSX:
-		xfmpc_preferences_set_last_window_posx (self, g_value_get_int (value));
-		break;
-		case XFMPC_PREFERENCES_LAST_WINDOW_POSY:
-		xfmpc_preferences_set_last_window_posy (self, g_value_get_int (value));
-		break;
-		case XFMPC_PREFERENCES_LAST_WINDOW_WIDTH:
-		xfmpc_preferences_set_last_window_width (self, g_value_get_int (value));
-		break;
-		case XFMPC_PREFERENCES_LAST_WINDOW_HEIGHT:
-		xfmpc_preferences_set_last_window_height (self, g_value_get_int (value));
-		break;
-		case XFMPC_PREFERENCES_LAST_WINDOW_STATE_STICKY:
-		xfmpc_preferences_set_last_window_state_sticky (self, g_value_get_boolean (value));
-		break;
-		case XFMPC_PREFERENCES_PLAYLIST_AUTOCENTER:
-		xfmpc_preferences_set_playlist_autocenter (self, g_value_get_boolean (value));
-		break;
-		case XFMPC_PREFERENCES_DBBROWSER_LAST_PATH:
-		xfmpc_preferences_set_dbbrowser_last_path (self, g_value_get_string (value));
-		break;
-		case XFMPC_PREFERENCES_MPD_HOSTNAME:
-		xfmpc_preferences_set_mpd_hostname (self, g_value_get_string (value));
-		break;
-		case XFMPC_PREFERENCES_MPD_PORT:
-		xfmpc_preferences_set_mpd_port (self, g_value_get_int (value));
-		break;
-		case XFMPC_PREFERENCES_MPD_PASSWORD:
-		xfmpc_preferences_set_mpd_password (self, g_value_get_string (value));
-		break;
-		case XFMPC_PREFERENCES_MPD_USE_DEFAULTS:
-		xfmpc_preferences_set_mpd_use_defaults (self, g_value_get_boolean (value));
-		break;
-		case XFMPC_PREFERENCES_SHOW_STATUSBAR:
-		xfmpc_preferences_set_show_statusbar (self, g_value_get_boolean (value));
-		break;
-		case XFMPC_PREFERENCES_SONG_FORMAT:
-		xfmpc_preferences_set_song_format (self, g_value_get_enum (value));
-		break;
-		case XFMPC_PREFERENCES_SONG_FORMAT_CUSTOM:
-		xfmpc_preferences_set_song_format_custom (self, g_value_get_string (value));
-		break;
-		default:
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-		break;
-	}
-}
-
-
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
-
diff --git a/src/song-dialog.c b/src/song-dialog.c
deleted file mode 100644
index 6e77758..0000000
--- a/src/song-dialog.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- *  Copyright (c) 2009 Mike Massonnet <mmassonnet at xfce.org>
- *  Copyright (c) 2009 Vincent Legout <vincent at xfce.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include <glib.h>
-#include <glib-object.h>
-#include <libxfcegui4/libxfcegui4.h>
-#include <mpdclient.h>
-#include <gtk/gtk.h>
-#include <pango/pango.h>
-#include <glib/gi18n-lib.h>
-
-
-#define XFMPC_TYPE_SONG_DIALOG (xfmpc_song_dialog_get_type ())
-#define XFMPC_SONG_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_SONG_DIALOG, XfmpcSongDialog))
-#define XFMPC_SONG_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_SONG_DIALOG, XfmpcSongDialogClass))
-#define XFMPC_IS_SONG_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_SONG_DIALOG))
-#define XFMPC_IS_SONG_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_SONG_DIALOG))
-#define XFMPC_SONG_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_SONG_DIALOG, XfmpcSongDialogClass))
-
-typedef struct _XfmpcSongDialog XfmpcSongDialog;
-typedef struct _XfmpcSongDialogClass XfmpcSongDialogClass;
-typedef struct _XfmpcSongDialogPrivate XfmpcSongDialogPrivate;
-
-struct _XfmpcSongDialog {
-	XfceTitledDialog parent_instance;
-	XfmpcSongDialogPrivate * priv;
-};
-
-struct _XfmpcSongDialogClass {
-	XfceTitledDialogClass parent_class;
-};
-
-struct _XfmpcSongDialogPrivate {
-	XfmpcMpdclient* mpdclient;
-	XfmpcSongInfo* song;
-};
-
-
-static gpointer xfmpc_song_dialog_parent_class = NULL;
-
-GType xfmpc_song_dialog_get_type (void);
-#define XFMPC_SONG_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), XFMPC_TYPE_SONG_DIALOG, XfmpcSongDialogPrivate))
-enum  {
-	XFMPC_SONG_DIALOG_DUMMY_PROPERTY
-};
-static void xfmpc_song_dialog_cb_response (XfmpcSongDialog* self, gint response);
-static void _xfmpc_song_dialog_cb_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
-XfmpcSongDialog* xfmpc_song_dialog_new (gint song_id);
-XfmpcSongDialog* xfmpc_song_dialog_construct (GType object_type, gint song_id);
-static void xfmpc_song_dialog_finalize (GObject* obj);
-
-
-
-static void _xfmpc_song_dialog_cb_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
-	xfmpc_song_dialog_cb_response (self, response_id);
-}
-
-
-XfmpcSongDialog* xfmpc_song_dialog_construct (GType object_type, gint song_id) {
-	XfmpcSongDialog * self;
-	GtkVBox* vbox2;
-	GtkWidget* _tmp0_;
-	GtkWidget* frame;
-	PangoAttrList* attrs;
-	GtkHBox* hbox;
-	GtkLabel* label;
-	GtkLabel* _tmp2_;
-	char* _tmp1_;
-	GtkHBox* _tmp3_;
-	GtkLabel* _tmp4_;
-	GtkLabel* _tmp5_;
-	GtkHBox* _tmp6_;
-	GtkLabel* _tmp7_;
-	GtkLabel* _tmp8_;
-	GtkHBox* _tmp9_;
-	GtkLabel* _tmp10_;
-	GtkLabel* _tmp11_;
-	GtkHBox* _tmp12_;
-	GtkLabel* _tmp13_;
-	GtkLabel* _tmp14_;
-	GtkLabel* _tmp15_;
-	GtkLabel* _tmp16_;
-	GtkHBox* _tmp17_;
-	GtkLabel* _tmp18_;
-	GtkLabel* _tmp19_;
-	self = g_object_newv (object_type, 0, NULL);
-	gtk_dialog_set_has_separator ((GtkDialog*) self, TRUE);
-	gtk_window_set_skip_taskbar_hint ((GtkWindow*) self, TRUE);
-	gtk_window_set_icon_name ((GtkWindow*) self, "stock_volume");
-	gtk_window_set_resizable ((GtkWindow*) self, FALSE);
-	self->priv->mpdclient = xfmpc_mpdclient_get_default ();
-	self->priv->song = xfmpc_mpdclient_get_song_info (self->priv->mpdclient, song_id);
-	gtk_window_set_title ((GtkWindow*) self, self->priv->song->title);
-	gtk_box_set_spacing ((GtkBox*) ((GtkDialog*) self)->vbox, 0);
-	vbox2 = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
-	_tmp0_ = NULL;
-	frame = (_tmp0_ = xfce_create_framebox_with_content ("", (GtkWidget*) vbox2), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
-	attrs = pango_attr_list_new ();
-	pango_attr_list_insert (attrs, pango_attr_weight_new (PANGO_WEIGHT_BOLD));
-	hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0));
-	label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("File")));
-	gtk_label_set_attributes (label, attrs);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	_tmp2_ = NULL;
-	_tmp1_ = NULL;
-	label = (_tmp2_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp1_ = g_path_get_basename (self->priv->song->filename))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp2_);
-	_tmp1_ = (g_free (_tmp1_), NULL);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) hbox, FALSE, FALSE, (guint) 6);
-	_tmp3_ = NULL;
-	hbox = (_tmp3_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0)), (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)), _tmp3_);
-	_tmp4_ = NULL;
-	label = (_tmp4_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Artist"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp4_);
-	gtk_label_set_attributes (label, attrs);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	_tmp5_ = NULL;
-	label = (_tmp5_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (self->priv->song->artist)), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp5_);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) hbox, FALSE, FALSE, (guint) 6);
-	_tmp6_ = NULL;
-	hbox = (_tmp6_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0)), (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)), _tmp6_);
-	_tmp7_ = NULL;
-	label = (_tmp7_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Title"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp7_);
-	gtk_label_set_attributes (label, attrs);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	_tmp8_ = NULL;
-	label = (_tmp8_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (self->priv->song->title)), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp8_);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) hbox, FALSE, FALSE, (guint) 6);
-	_tmp9_ = NULL;
-	hbox = (_tmp9_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0)), (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)), _tmp9_);
-	_tmp10_ = NULL;
-	label = (_tmp10_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Album"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp10_);
-	gtk_label_set_attributes (label, attrs);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	_tmp11_ = NULL;
-	label = (_tmp11_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (self->priv->song->album)), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp11_);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) hbox, FALSE, FALSE, (guint) 6);
-	_tmp12_ = NULL;
-	hbox = (_tmp12_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0)), (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)), _tmp12_);
-	_tmp13_ = NULL;
-	label = (_tmp13_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Date"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp13_);
-	gtk_label_set_attributes (label, attrs);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	_tmp14_ = NULL;
-	label = (_tmp14_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (self->priv->song->date)), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp14_);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	_tmp15_ = NULL;
-	label = (_tmp15_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Track"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp15_);
-	gtk_label_set_attributes (label, attrs);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 15);
-	_tmp16_ = NULL;
-	label = (_tmp16_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (self->priv->song->track)), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp16_);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) hbox, FALSE, FALSE, (guint) 6);
-	_tmp17_ = NULL;
-	hbox = (_tmp17_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0)), (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)), _tmp17_);
-	_tmp18_ = NULL;
-	label = (_tmp18_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Genre"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp18_);
-	gtk_label_set_attributes (label, attrs);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	_tmp19_ = NULL;
-	label = (_tmp19_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (self->priv->song->genre)), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp19_);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 5);
-	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) hbox, FALSE, FALSE, (guint) 6);
-	gtk_box_pack_start ((GtkBox*) ((GtkDialog*) self)->vbox, frame, TRUE, TRUE, (guint) 0);
-	gtk_dialog_add_button ((GtkDialog*) self, GTK_STOCK_CLOSE, (gint) GTK_RESPONSE_CLOSE);
-	gtk_widget_show_all ((GtkWidget*) self);
-	g_signal_connect_object ((GtkDialog*) self, "response", (GCallback) _xfmpc_song_dialog_cb_response_gtk_dialog_response, self, 0);
-	(vbox2 == NULL) ? NULL : (vbox2 = (g_object_unref (vbox2), NULL));
-	(frame == NULL) ? NULL : (frame = (g_object_unref (frame), NULL));
-	(attrs == NULL) ? NULL : (attrs = (pango_attr_list_unref (attrs), NULL));
-	(hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL));
-	(label == NULL) ? NULL : (label = (g_object_unref (label), NULL));
-	return self;
-}
-
-
-XfmpcSongDialog* xfmpc_song_dialog_new (gint song_id) {
-	return xfmpc_song_dialog_construct (XFMPC_TYPE_SONG_DIALOG, song_id);
-}
-
-
-/*
- * Signal callbacks
- */
-static void xfmpc_song_dialog_cb_response (XfmpcSongDialog* self, gint response) {
-	g_return_if_fail (self != NULL);
-	switch (response) {
-		case GTK_RESPONSE_CLOSE:
-		{
-			gtk_object_destroy ((GtkObject*) self);
-			break;
-		}
-	}
-}
-
-
-static void xfmpc_song_dialog_class_init (XfmpcSongDialogClass * klass) {
-	xfmpc_song_dialog_parent_class = g_type_class_peek_parent (klass);
-	g_type_class_add_private (klass, sizeof (XfmpcSongDialogPrivate));
-	G_OBJECT_CLASS (klass)->finalize = xfmpc_song_dialog_finalize;
-}
-
-
-static void xfmpc_song_dialog_instance_init (XfmpcSongDialog * self) {
-	self->priv = XFMPC_SONG_DIALOG_GET_PRIVATE (self);
-}
-
-
-static void xfmpc_song_dialog_finalize (GObject* obj) {
-	XfmpcSongDialog * self;
-	self = XFMPC_SONG_DIALOG (obj);
-	G_OBJECT_CLASS (xfmpc_song_dialog_parent_class)->finalize (obj);
-}
-
-
-GType xfmpc_song_dialog_get_type (void) {
-	static GType xfmpc_song_dialog_type_id = 0;
-	if (xfmpc_song_dialog_type_id == 0) {
-		static const GTypeInfo g_define_type_info = { sizeof (XfmpcSongDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) xfmpc_song_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (XfmpcSongDialog), 0, (GInstanceInitFunc) xfmpc_song_dialog_instance_init, NULL };
-		xfmpc_song_dialog_type_id = g_type_register_static (XFCE_TYPE_TITLED_DIALOG, "XfmpcSongDialog", &g_define_type_info, 0);
-	}
-	return xfmpc_song_dialog_type_id;
-}
-
-
-
-
diff --git a/src/statusbar.c b/src/statusbar.c
deleted file mode 100644
index 0ba443c..0000000
--- a/src/statusbar.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- *  Copyright (c) 2009 Mike Massonnet <mmassonnet at xfce.org>
- *  Copyright (c) 2009 Vincent Legout <vincent at xfce.org>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-#define XFMPC_TYPE_STATUSBAR (xfmpc_statusbar_get_type ())
-#define XFMPC_STATUSBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_STATUSBAR, XfmpcStatusbar))
-#define XFMPC_STATUSBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_STATUSBAR, XfmpcStatusbarClass))
-#define XFMPC_IS_STATUSBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_STATUSBAR))
-#define XFMPC_IS_STATUSBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_STATUSBAR))
-#define XFMPC_STATUSBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_STATUSBAR, XfmpcStatusbarClass))
-
-typedef struct _XfmpcStatusbar XfmpcStatusbar;
-typedef struct _XfmpcStatusbarClass XfmpcStatusbarClass;
-typedef struct _XfmpcStatusbarPrivate XfmpcStatusbarPrivate;
-
-struct _XfmpcStatusbar {
-	GtkStatusbar parent_instance;
-	XfmpcStatusbarPrivate * priv;
-};
-
-struct _XfmpcStatusbarClass {
-	GtkStatusbarClass parent_class;
-};
-
-struct _XfmpcStatusbarPrivate {
-	guint context_id;
-	char* _text;
-};
-
-
-static gpointer xfmpc_statusbar_parent_class = NULL;
-
-GType xfmpc_statusbar_get_type (void);
-#define XFMPC_STATUSBAR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), XFMPC_TYPE_STATUSBAR, XfmpcStatusbarPrivate))
-enum  {
-	XFMPC_STATUSBAR_DUMMY_PROPERTY,
-	XFMPC_STATUSBAR_TEXT
-};
-XfmpcStatusbar* xfmpc_statusbar_new (void);
-XfmpcStatusbar* xfmpc_statusbar_construct (GType object_type);
-void xfmpc_statusbar_set_text (XfmpcStatusbar* self, const char* value);
-static GObject * xfmpc_statusbar_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
-static void xfmpc_statusbar_finalize (GObject* obj);
-static void xfmpc_statusbar_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
-
-
-
-XfmpcStatusbar* xfmpc_statusbar_construct (GType object_type) {
-	XfmpcStatusbar * self;
-	self = g_object_newv (object_type, 0, NULL);
-	return self;
-}
-
-
-XfmpcStatusbar* xfmpc_statusbar_new (void) {
-	return xfmpc_statusbar_construct (XFMPC_TYPE_STATUSBAR);
-}
-
-
-void xfmpc_statusbar_set_text (XfmpcStatusbar* self, const char* value) {
-	char* _tmp1_;
-	const char* _tmp0_;
-	g_return_if_fail (self != NULL);
-	_tmp1_ = NULL;
-	_tmp0_ = NULL;
-	self->priv->_text = (_tmp1_ = (_tmp0_ = value, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->_text = (g_free (self->priv->_text), NULL), _tmp1_);
-	gtk_statusbar_pop ((GtkStatusbar*) self, self->priv->context_id);
-	gtk_statusbar_push ((GtkStatusbar*) self, self->priv->context_id, self->priv->_text);
-	g_object_notify ((GObject *) self, "text");
-}
-
-
-static GObject * xfmpc_statusbar_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
-	GObject * obj;
-	XfmpcStatusbarClass * klass;
-	GObjectClass * parent_class;
-	XfmpcStatusbar * self;
-	klass = XFMPC_STATUSBAR_CLASS (g_type_class_peek (XFMPC_TYPE_STATUSBAR));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
-	self = XFMPC_STATUSBAR (obj);
-	{
-		gtk_statusbar_set_has_resize_grip ((GtkStatusbar*) self, FALSE);
-		self->priv->context_id = gtk_statusbar_get_context_id ((GtkStatusbar*) self, "Main text");
-	}
-	return obj;
-}
-
-
-static void xfmpc_statusbar_class_init (XfmpcStatusbarClass * klass) {
-	xfmpc_statusbar_parent_class = g_type_class_peek_parent (klass);
-	g_type_class_add_private (klass, sizeof (XfmpcStatusbarPrivate));
-	G_OBJECT_CLASS (klass)->set_property = xfmpc_statusbar_set_property;
-	G_OBJECT_CLASS (klass)->constructor = xfmpc_statusbar_constructor;
-	G_OBJECT_CLASS (klass)->finalize = xfmpc_statusbar_finalize;
-	g_object_class_install_property (G_OBJECT_CLASS (klass), XFMPC_STATUSBAR_TEXT, g_param_spec_string ("text", "text", "text", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE));
-}
-
-
-static void xfmpc_statusbar_instance_init (XfmpcStatusbar * self) {
-	self->priv = XFMPC_STATUSBAR_GET_PRIVATE (self);
-}
-
-
-static void xfmpc_statusbar_finalize (GObject* obj) {
-	XfmpcStatusbar * self;
-	self = XFMPC_STATUSBAR (obj);
-	self->priv->_text = (g_free (self->priv->_text), NULL);
-	G_OBJECT_CLASS (xfmpc_statusbar_parent_class)->finalize (obj);
-}
-
-
-GType xfmpc_statusbar_get_type (void) {
-	static GType xfmpc_statusbar_type_id = 0;
-	if (xfmpc_statusbar_type_id == 0) {
-		static const GTypeInfo g_define_type_info = { sizeof (XfmpcStatusbarClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) xfmpc_statusbar_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (XfmpcStatusbar), 0, (GInstanceInitFunc) xfmpc_statusbar_instance_init, NULL };
-		xfmpc_statusbar_type_id = g_type_register_static (GTK_TYPE_STATUSBAR, "XfmpcStatusbar", &g_define_type_info, 0);
-	}
-	return xfmpc_statusbar_type_id;
-}
-
-
-static void xfmpc_statusbar_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
-	XfmpcStatusbar * self;
-	self = XFMPC_STATUSBAR (object);
-	switch (property_id) {
-		case XFMPC_STATUSBAR_TEXT:
-		xfmpc_statusbar_set_text (self, g_value_get_string (value));
-		break;
-		default:
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-		break;
-	}
-}
-
-
-
-
diff --git a/src/xfmpc.h b/src/xfmpc.h
deleted file mode 100644
index 0a90328..0000000
--- a/src/xfmpc.h
+++ /dev/null
@@ -1,304 +0,0 @@
-
-#ifndef __XFMPC_H__
-#define __XFMPC_H__
-
-#include <glib.h>
-#include <libxfcegui4/libxfcegui4.h>
-#include <gtk/gtk.h>
-#include <stdlib.h>
-#include <string.h>
-#include <float.h>
-#include <math.h>
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-
-#define XFMPC_TYPE_PREFERENCES_DIALOG (xfmpc_preferences_dialog_get_type ())
-#define XFMPC_PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PREFERENCES_DIALOG, XfmpcPreferencesDialog))
-#define XFMPC_PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PREFERENCES_DIALOG, XfmpcPreferencesDialogClass))
-#define XFMPC_IS_PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PREFERENCES_DIALOG))
-#define XFMPC_IS_PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PREFERENCES_DIALOG))
-#define XFMPC_PREFERENCES_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PREFERENCES_DIALOG, XfmpcPreferencesDialogClass))
-
-typedef struct _XfmpcPreferencesDialog XfmpcPreferencesDialog;
-typedef struct _XfmpcPreferencesDialogClass XfmpcPreferencesDialogClass;
-typedef struct _XfmpcPreferencesDialogPrivate XfmpcPreferencesDialogPrivate;
-
-#define XFMPC_TYPE_SONG_DIALOG (xfmpc_song_dialog_get_type ())
-#define XFMPC_SONG_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_SONG_DIALOG, XfmpcSongDialog))
-#define XFMPC_SONG_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_SONG_DIALOG, XfmpcSongDialogClass))
-#define XFMPC_IS_SONG_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_SONG_DIALOG))
-#define XFMPC_IS_SONG_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_SONG_DIALOG))
-#define XFMPC_SONG_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_SONG_DIALOG, XfmpcSongDialogClass))
-
-typedef struct _XfmpcSongDialog XfmpcSongDialog;
-typedef struct _XfmpcSongDialogClass XfmpcSongDialogClass;
-typedef struct _XfmpcSongDialogPrivate XfmpcSongDialogPrivate;
-
-#define XFMPC_TYPE_STATUSBAR (xfmpc_statusbar_get_type ())
-#define XFMPC_STATUSBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_STATUSBAR, XfmpcStatusbar))
-#define XFMPC_STATUSBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_STATUSBAR, XfmpcStatusbarClass))
-#define XFMPC_IS_STATUSBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_STATUSBAR))
-#define XFMPC_IS_STATUSBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_STATUSBAR))
-#define XFMPC_STATUSBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_STATUSBAR, XfmpcStatusbarClass))
-
-typedef struct _XfmpcStatusbar XfmpcStatusbar;
-typedef struct _XfmpcStatusbarClass XfmpcStatusbarClass;
-typedef struct _XfmpcStatusbarPrivate XfmpcStatusbarPrivate;
-
-#define XFMPC_TYPE_DBBROWSER (xfmpc_dbbrowser_get_type ())
-#define XFMPC_DBBROWSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowser))
-#define XFMPC_DBBROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowserClass))
-#define XFMPC_IS_DBBROWSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_DBBROWSER))
-#define XFMPC_IS_DBBROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_DBBROWSER))
-#define XFMPC_DBBROWSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_DBBROWSER, XfmpcDbbrowserClass))
-
-typedef struct _XfmpcDbbrowser XfmpcDbbrowser;
-typedef struct _XfmpcDbbrowserClass XfmpcDbbrowserClass;
-typedef struct _XfmpcDbbrowserPrivate XfmpcDbbrowserPrivate;
-
-#define XFMPC_TYPE_EXTENDED_INTERFACE (xfmpc_extended_interface_get_type ())
-#define XFMPC_EXTENDED_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterface))
-#define XFMPC_EXTENDED_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterfaceClass))
-#define XFMPC_IS_EXTENDED_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_EXTENDED_INTERFACE))
-#define XFMPC_IS_EXTENDED_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_EXTENDED_INTERFACE))
-#define XFMPC_EXTENDED_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterfaceClass))
-
-typedef struct _XfmpcExtendedInterface XfmpcExtendedInterface;
-typedef struct _XfmpcExtendedInterfaceClass XfmpcExtendedInterfaceClass;
-typedef struct _XfmpcExtendedInterfacePrivate XfmpcExtendedInterfacePrivate;
-
-#define XFMPC_EXTENDED_INTERFACE_TYPE_EXTENDED_INTERFACE_WIDGET (xfmpc_extended_interface_extended_interface_widget_get_type ())
-
-#define XFMPC_TYPE_INTERFACE (xfmpc_interface_get_type ())
-#define XFMPC_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_INTERFACE, XfmpcInterface))
-#define XFMPC_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_INTERFACE, XfmpcInterfaceClass))
-#define XFMPC_IS_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_INTERFACE))
-#define XFMPC_IS_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_INTERFACE))
-#define XFMPC_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_INTERFACE, XfmpcInterfaceClass))
-
-typedef struct _XfmpcInterface XfmpcInterface;
-typedef struct _XfmpcInterfaceClass XfmpcInterfaceClass;
-typedef struct _XfmpcInterfacePrivate XfmpcInterfacePrivate;
-
-#define XFMPC_TYPE_MAIN_WINDOW (xfmpc_main_window_get_type ())
-#define XFMPC_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_MAIN_WINDOW, XfmpcMainWindow))
-#define XFMPC_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_MAIN_WINDOW, XfmpcMainWindowClass))
-#define XFMPC_IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_MAIN_WINDOW))
-#define XFMPC_IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_MAIN_WINDOW))
-#define XFMPC_MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_MAIN_WINDOW, XfmpcMainWindowClass))
-
-typedef struct _XfmpcMainWindow XfmpcMainWindow;
-typedef struct _XfmpcMainWindowClass XfmpcMainWindowClass;
-typedef struct _XfmpcMainWindowPrivate XfmpcMainWindowPrivate;
-
-#define XFMPC_TYPE_PLAYLIST (xfmpc_playlist_get_type ())
-#define XFMPC_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PLAYLIST, XfmpcPlaylist))
-#define XFMPC_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PLAYLIST, XfmpcPlaylistClass))
-#define XFMPC_IS_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PLAYLIST))
-#define XFMPC_IS_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PLAYLIST))
-#define XFMPC_PLAYLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PLAYLIST, XfmpcPlaylistClass))
-
-typedef struct _XfmpcPlaylist XfmpcPlaylist;
-typedef struct _XfmpcPlaylistClass XfmpcPlaylistClass;
-typedef struct _XfmpcPlaylistPrivate XfmpcPlaylistPrivate;
-
-#define XFMPC_TYPE_PREFERENCES (xfmpc_preferences_get_type ())
-#define XFMPC_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferences))
-#define XFMPC_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-#define XFMPC_IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFMPC_TYPE_PREFERENCES))
-#define XFMPC_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFMPC_TYPE_PREFERENCES, XfmpcPreferencesClass))
-
-typedef struct _XfmpcPreferences XfmpcPreferences;
-typedef struct _XfmpcPreferencesClass XfmpcPreferencesClass;
-typedef struct _XfmpcPreferencesPrivate XfmpcPreferencesPrivate;
-
-#define XFMPC_PREFERENCES_TYPE_SONG_FORMAT (xfmpc_preferences_song_format_get_type ())
-
-struct _XfmpcPreferencesDialog {
-	XfceTitledDialog parent_instance;
-	XfmpcPreferencesDialogPrivate * priv;
-};
-
-struct _XfmpcPreferencesDialogClass {
-	XfceTitledDialogClass parent_class;
-};
-
-struct _XfmpcSongDialog {
-	XfceTitledDialog parent_instance;
-	XfmpcSongDialogPrivate * priv;
-};
-
-struct _XfmpcSongDialogClass {
-	XfceTitledDialogClass parent_class;
-};
-
-struct _XfmpcStatusbar {
-	GtkStatusbar parent_instance;
-	XfmpcStatusbarPrivate * priv;
-};
-
-struct _XfmpcStatusbarClass {
-	GtkStatusbarClass parent_class;
-};
-
-struct _XfmpcDbbrowser {
-	GtkVBox parent_instance;
-	XfmpcDbbrowserPrivate * priv;
-};
-
-struct _XfmpcDbbrowserClass {
-	GtkVBoxClass parent_class;
-};
-
-struct _XfmpcExtendedInterface {
-	GtkVBox parent_instance;
-	XfmpcExtendedInterfacePrivate * priv;
-};
-
-struct _XfmpcExtendedInterfaceClass {
-	GtkVBoxClass parent_class;
-};
-
-typedef enum  {
-	XFMPC_EXTENDED_INTERFACE_EXTENDED_INTERFACE_WIDGET_PLAYLIST,
-	XFMPC_EXTENDED_INTERFACE_EXTENDED_INTERFACE_WIDGET_DBBROWSER
-} XfmpcExtendedInterfaceExtendedInterfaceWidget;
-
-struct _XfmpcInterface {
-	GtkVBox parent_instance;
-	XfmpcInterfacePrivate * priv;
-};
-
-struct _XfmpcInterfaceClass {
-	GtkVBoxClass parent_class;
-};
-
-struct _XfmpcMainWindow {
-	GtkWindow parent_instance;
-	XfmpcMainWindowPrivate * priv;
-};
-
-struct _XfmpcMainWindowClass {
-	GtkWindowClass parent_class;
-};
-
-struct _XfmpcPlaylist {
-	GtkVBox parent_instance;
-	XfmpcPlaylistPrivate * priv;
-};
-
-struct _XfmpcPlaylistClass {
-	GtkVBoxClass parent_class;
-};
-
-struct _XfmpcPreferences {
-	GObject parent_instance;
-	XfmpcPreferencesPrivate * priv;
-};
-
-struct _XfmpcPreferencesClass {
-	GObjectClass parent_class;
-};
-
-typedef enum  {
-	XFMPC_PREFERENCES_SONG_FORMAT_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ALBUM_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_TITLE_DATE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_ARTIST_ALBUM_TRACK_TITLE,
-	XFMPC_PREFERENCES_SONG_FORMAT_CUSTOM_FORMAT
-} XfmpcPreferencesSongFormat;
-
-
-GType xfmpc_preferences_dialog_get_type (void);
-XfmpcPreferencesDialog* xfmpc_preferences_dialog_new (void);
-XfmpcPreferencesDialog* xfmpc_preferences_dialog_construct (GType object_type);
-GType xfmpc_song_dialog_get_type (void);
-XfmpcSongDialog* xfmpc_song_dialog_new (gint song_id);
-XfmpcSongDialog* xfmpc_song_dialog_construct (GType object_type, gint song_id);
-GType xfmpc_statusbar_get_type (void);
-XfmpcStatusbar* xfmpc_statusbar_new (void);
-XfmpcStatusbar* xfmpc_statusbar_construct (GType object_type);
-void xfmpc_statusbar_set_text (XfmpcStatusbar* self, const char* value);
-GType xfmpc_dbbrowser_get_type (void);
-void xfmpc_dbbrowser_reload (XfmpcDbbrowser* self);
-gboolean xfmpc_dbbrowser_wdir_is_root (XfmpcDbbrowser* self);
-char* xfmpc_dbbrowser_get_parent_wdir (XfmpcDbbrowser* self);
-void xfmpc_dbbrowser_append (XfmpcDbbrowser* self, const char* filename, const char* basename, gboolean is_dir, gboolean is_bold);
-void xfmpc_dbbrowser_set_wdir (XfmpcDbbrowser* self, const char* dir);
-void xfmpc_dbbrowser_add_selected_rows (XfmpcDbbrowser* self);
-void xfmpc_dbbrowser_search (XfmpcDbbrowser* self, const char* query);
-XfmpcDbbrowser* xfmpc_dbbrowser_new (void);
-XfmpcDbbrowser* xfmpc_dbbrowser_construct (GType object_type);
-GType xfmpc_extended_interface_get_type (void);
-GType xfmpc_extended_interface_extended_interface_widget_get_type (void);
-void xfmpc_extended_interface_set_active (XfmpcExtendedInterface* self, XfmpcExtendedInterfaceExtendedInterfaceWidget active_widget);
-XfmpcExtendedInterface* xfmpc_extended_interface_new (void);
-XfmpcExtendedInterface* xfmpc_extended_interface_construct (GType object_type);
-GType xfmpc_interface_get_type (void);
-void xfmpc_interface_set_title (XfmpcInterface* self, const char* title);
-void xfmpc_interface_set_subtitle (XfmpcInterface* self, const char* subtitle);
-void xfmpc_interface_pp_clicked (XfmpcInterface* self);
-void xfmpc_interface_set_pp (XfmpcInterface* self, gboolean play);
-void xfmpc_interface_volume_changed (XfmpcInterface* self, double value);
-void xfmpc_interface_set_volume (XfmpcInterface* self, gint volume);
-void xfmpc_interface_popup_volume (XfmpcInterface* self);
-void xfmpc_interface_set_time (XfmpcInterface* self, gint time, gint time_total);
-void xfmpc_interface_reset (XfmpcInterface* self);
-void xfmpc_interface_update_title (XfmpcInterface* self);
-XfmpcInterface* xfmpc_interface_new (void);
-XfmpcInterface* xfmpc_interface_construct (GType object_type);
-GType xfmpc_main_window_get_type (void);
-XfmpcMainWindow* xfmpc_main_window_new (void);
-XfmpcMainWindow* xfmpc_main_window_construct (GType object_type);
-GType xfmpc_playlist_get_type (void);
-void xfmpc_playlist_append (XfmpcPlaylist* self, gint id, gint pos, const char* filename, const char* song, const char* length);
-void xfmpc_playlist_refresh_current_song (XfmpcPlaylist* self);
-void xfmpc_playlist_select_row (XfmpcPlaylist* self, gint i);
-void xfmpc_playlist_delete_selection (XfmpcPlaylist* self);
-gboolean xfmpc_playlist_has_filename (XfmpcPlaylist* self, const char* filename, gboolean is_dir);
-XfmpcPlaylist* xfmpc_playlist_new (void);
-XfmpcPlaylist* xfmpc_playlist_construct (GType object_type);
-GType xfmpc_preferences_get_type (void);
-GType xfmpc_preferences_song_format_get_type (void);
-XfmpcPreferences* xfmpc_preferences_new (void);
-XfmpcPreferences* xfmpc_preferences_construct (GType object_type);
-XfmpcPreferences* xfmpc_preferences_get_default (void);
-gint xfmpc_preferences_get_last_window_posx (XfmpcPreferences* self);
-void xfmpc_preferences_set_last_window_posx (XfmpcPreferences* self, gint value);
-gint xfmpc_preferences_get_last_window_posy (XfmpcPreferences* self);
-void xfmpc_preferences_set_last_window_posy (XfmpcPreferences* self, gint value);
-gint xfmpc_preferences_get_last_window_width (XfmpcPreferences* self);
-void xfmpc_preferences_set_last_window_width (XfmpcPreferences* self, gint value);
-gint xfmpc_preferences_get_last_window_height (XfmpcPreferences* self);
-void xfmpc_preferences_set_last_window_height (XfmpcPreferences* self, gint value);
-gboolean xfmpc_preferences_get_last_window_state_sticky (XfmpcPreferences* self);
-void xfmpc_preferences_set_last_window_state_sticky (XfmpcPreferences* self, gboolean value);
-gboolean xfmpc_preferences_get_playlist_autocenter (XfmpcPreferences* self);
-void xfmpc_preferences_set_playlist_autocenter (XfmpcPreferences* self, gboolean value);
-const char* xfmpc_preferences_get_dbbrowser_last_path (XfmpcPreferences* self);
-void xfmpc_preferences_set_dbbrowser_last_path (XfmpcPreferences* self, const char* value);
-const char* xfmpc_preferences_get_mpd_hostname (XfmpcPreferences* self);
-void xfmpc_preferences_set_mpd_hostname (XfmpcPreferences* self, const char* value);
-gint xfmpc_preferences_get_mpd_port (XfmpcPreferences* self);
-void xfmpc_preferences_set_mpd_port (XfmpcPreferences* self, gint value);
-const char* xfmpc_preferences_get_mpd_password (XfmpcPreferences* self);
-void xfmpc_preferences_set_mpd_password (XfmpcPreferences* self, const char* value);
-gboolean xfmpc_preferences_get_mpd_use_defaults (XfmpcPreferences* self);
-void xfmpc_preferences_set_mpd_use_defaults (XfmpcPreferences* self, gboolean value);
-gboolean xfmpc_preferences_get_show_statusbar (XfmpcPreferences* self);
-void xfmpc_preferences_set_show_statusbar (XfmpcPreferences* self, gboolean value);
-XfmpcPreferencesSongFormat xfmpc_preferences_get_song_format (XfmpcPreferences* self);
-void xfmpc_preferences_set_song_format (XfmpcPreferences* self, XfmpcPreferencesSongFormat value);
-const char* xfmpc_preferences_get_song_format_custom (XfmpcPreferences* self);
-void xfmpc_preferences_set_song_format_custom (XfmpcPreferences* self, const char* value);
-gint xfmpc_main (char** args, int args_length1);
-
-
-G_END_DECLS
-
-#endif



More information about the Xfce4-commits mailing list