/* gmpc-extras.h generated by valac, the Vala compiler, do not modify */


#ifndef __GMPC_EXTRAS_H__
#define __GMPC_EXTRAS_H__

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
#include <libmpd/libmpdclient.h>
#include <libmpd/libmpd.h>
#include <gdk-pixbuf/gdk-pixdata.h>
#include <metadata.h>
#include <gdk/gdk.h>
#include <float.h>
#include <math.h>
#include <gmpc_easy_download.h>

G_BEGIN_DECLS


#define GMPC_TYPE_CONNECTION (gmpc_connection_get_type ())
#define GMPC_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_TYPE_CONNECTION, GmpcConnection))
#define GMPC_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_TYPE_CONNECTION, GmpcConnectionClass))
#define GMPC_IS_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_TYPE_CONNECTION))
#define GMPC_IS_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_TYPE_CONNECTION))
#define GMPC_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_TYPE_CONNECTION, GmpcConnectionClass))

typedef struct _GmpcConnection GmpcConnection;
typedef struct _GmpcConnectionClass GmpcConnectionClass;
typedef struct _GmpcConnectionPrivate GmpcConnectionPrivate;

#define GMPC_TYPE_PROGRESS (gmpc_progress_get_type ())
#define GMPC_PROGRESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_TYPE_PROGRESS, GmpcProgress))
#define GMPC_PROGRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_TYPE_PROGRESS, GmpcProgressClass))
#define GMPC_IS_PROGRESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_TYPE_PROGRESS))
#define GMPC_IS_PROGRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_TYPE_PROGRESS))
#define GMPC_PROGRESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_TYPE_PROGRESS, GmpcProgressClass))

typedef struct _GmpcProgress GmpcProgress;
typedef struct _GmpcProgressClass GmpcProgressClass;
typedef struct _GmpcProgressPrivate GmpcProgressPrivate;

#define GMPC_PLUGIN_TYPE_BASE (gmpc_plugin_base_get_type ())
#define GMPC_PLUGIN_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_PLUGIN_TYPE_BASE, GmpcPluginBase))
#define GMPC_PLUGIN_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_PLUGIN_TYPE_BASE, GmpcPluginBaseClass))
#define GMPC_PLUGIN_IS_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_PLUGIN_TYPE_BASE))
#define GMPC_PLUGIN_IS_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_PLUGIN_TYPE_BASE))
#define GMPC_PLUGIN_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_PLUGIN_TYPE_BASE, GmpcPluginBaseClass))

typedef struct _GmpcPluginBase GmpcPluginBase;
typedef struct _GmpcPluginBaseClass GmpcPluginBaseClass;
typedef struct _GmpcPluginBasePrivate GmpcPluginBasePrivate;

#define GMPC_EASY_TYPE_COMMAND (gmpc_easy_command_get_type ())
#define GMPC_EASY_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_EASY_TYPE_COMMAND, GmpcEasyCommand))
#define GMPC_EASY_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_EASY_TYPE_COMMAND, GmpcEasyCommandClass))
#define GMPC_EASY_IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_EASY_TYPE_COMMAND))
#define GMPC_EASY_IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_EASY_TYPE_COMMAND))
#define GMPC_EASY_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_EASY_TYPE_COMMAND, GmpcEasyCommandClass))

typedef struct _GmpcEasyCommand GmpcEasyCommand;
typedef struct _GmpcEasyCommandClass GmpcEasyCommandClass;
typedef struct _GmpcEasyCommandPrivate GmpcEasyCommandPrivate;

#define GMPC_FAVORITES_TYPE_BUTTON (gmpc_favorites_button_get_type ())
#define GMPC_FAVORITES_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_FAVORITES_TYPE_BUTTON, GmpcFavoritesButton))
#define GMPC_FAVORITES_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_FAVORITES_TYPE_BUTTON, GmpcFavoritesButtonClass))
#define GMPC_FAVORITES_IS_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_FAVORITES_TYPE_BUTTON))
#define GMPC_FAVORITES_IS_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_FAVORITES_TYPE_BUTTON))
#define GMPC_FAVORITES_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_FAVORITES_TYPE_BUTTON, GmpcFavoritesButtonClass))

typedef struct _GmpcFavoritesButton GmpcFavoritesButton;
typedef struct _GmpcFavoritesButtonClass GmpcFavoritesButtonClass;
typedef struct _GmpcFavoritesButtonPrivate GmpcFavoritesButtonPrivate;

#define GMPC_TYPE_PIXBUF_LOADER_ASYNC (gmpc_pixbuf_loader_async_get_type ())
#define GMPC_PIXBUF_LOADER_ASYNC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_TYPE_PIXBUF_LOADER_ASYNC, GmpcPixbufLoaderAsync))
#define GMPC_PIXBUF_LOADER_ASYNC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_TYPE_PIXBUF_LOADER_ASYNC, GmpcPixbufLoaderAsyncClass))
#define GMPC_IS_PIXBUF_LOADER_ASYNC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_TYPE_PIXBUF_LOADER_ASYNC))
#define GMPC_IS_PIXBUF_LOADER_ASYNC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_TYPE_PIXBUF_LOADER_ASYNC))
#define GMPC_PIXBUF_LOADER_ASYNC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_TYPE_PIXBUF_LOADER_ASYNC, GmpcPixbufLoaderAsyncClass))

typedef struct _GmpcPixbufLoaderAsync GmpcPixbufLoaderAsync;
typedef struct _GmpcPixbufLoaderAsyncClass GmpcPixbufLoaderAsyncClass;
typedef struct _GmpcPixbufLoaderAsyncPrivate GmpcPixbufLoaderAsyncPrivate;

#define GMPC_TYPE_META_IMAGE_ASYNC (gmpc_meta_image_async_get_type ())
#define GMPC_META_IMAGE_ASYNC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_TYPE_META_IMAGE_ASYNC, GmpcMetaImageAsync))
#define GMPC_META_IMAGE_ASYNC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_TYPE_META_IMAGE_ASYNC, GmpcMetaImageAsyncClass))
#define GMPC_IS_META_IMAGE_ASYNC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_TYPE_META_IMAGE_ASYNC))
#define GMPC_IS_META_IMAGE_ASYNC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_TYPE_META_IMAGE_ASYNC))
#define GMPC_META_IMAGE_ASYNC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_TYPE_META_IMAGE_ASYNC, GmpcMetaImageAsyncClass))

typedef struct _GmpcMetaImageAsync GmpcMetaImageAsync;
typedef struct _GmpcMetaImageAsyncClass GmpcMetaImageAsyncClass;
typedef struct _GmpcMetaImageAsyncPrivate GmpcMetaImageAsyncPrivate;

#define GMPC_LISTSTORE_TYPE_SORT (gmpc_liststore_sort_get_type ())
#define GMPC_LISTSTORE_SORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_LISTSTORE_TYPE_SORT, GmpcListstoreSort))
#define GMPC_LISTSTORE_SORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_LISTSTORE_TYPE_SORT, GmpcListstoreSortClass))
#define GMPC_LISTSTORE_IS_SORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_LISTSTORE_TYPE_SORT))
#define GMPC_LISTSTORE_IS_SORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_LISTSTORE_TYPE_SORT))
#define GMPC_LISTSTORE_SORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_LISTSTORE_TYPE_SORT, GmpcListstoreSortClass))

typedef struct _GmpcListstoreSort GmpcListstoreSort;
typedef struct _GmpcListstoreSortClass GmpcListstoreSortClass;
typedef struct _GmpcListstoreSortPrivate GmpcListstoreSortPrivate;

#define GMPC_MENU_ITEM_TYPE_RATING (gmpc_menu_item_rating_get_type ())
#define GMPC_MENU_ITEM_RATING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_MENU_ITEM_TYPE_RATING, GmpcMenuItemRating))
#define GMPC_MENU_ITEM_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_MENU_ITEM_TYPE_RATING, GmpcMenuItemRatingClass))
#define GMPC_MENU_ITEM_IS_RATING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_MENU_ITEM_TYPE_RATING))
#define GMPC_MENU_ITEM_IS_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_MENU_ITEM_TYPE_RATING))
#define GMPC_MENU_ITEM_RATING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_MENU_ITEM_TYPE_RATING, GmpcMenuItemRatingClass))

typedef struct _GmpcMenuItemRating GmpcMenuItemRating;
typedef struct _GmpcMenuItemRatingClass GmpcMenuItemRatingClass;
typedef struct _GmpcMenuItemRatingPrivate GmpcMenuItemRatingPrivate;

#define GMPC_TYPE_RATING (gmpc_rating_get_type ())
#define GMPC_RATING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_TYPE_RATING, GmpcRating))
#define GMPC_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_TYPE_RATING, GmpcRatingClass))
#define GMPC_IS_RATING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_TYPE_RATING))
#define GMPC_IS_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_TYPE_RATING))
#define GMPC_RATING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_TYPE_RATING, GmpcRatingClass))

typedef struct _GmpcRating GmpcRating;
typedef struct _GmpcRatingClass GmpcRatingClass;

#define GMPC_WIDGET_TYPE_SIMILAR_SONGS (gmpc_widget_similar_songs_get_type ())
#define GMPC_WIDGET_SIMILAR_SONGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_WIDGET_TYPE_SIMILAR_SONGS, GmpcWidgetSimilarSongs))
#define GMPC_WIDGET_SIMILAR_SONGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_WIDGET_TYPE_SIMILAR_SONGS, GmpcWidgetSimilarSongsClass))
#define GMPC_WIDGET_IS_SIMILAR_SONGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_WIDGET_TYPE_SIMILAR_SONGS))
#define GMPC_WIDGET_IS_SIMILAR_SONGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_WIDGET_TYPE_SIMILAR_SONGS))
#define GMPC_WIDGET_SIMILAR_SONGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_WIDGET_TYPE_SIMILAR_SONGS, GmpcWidgetSimilarSongsClass))

typedef struct _GmpcWidgetSimilarSongs GmpcWidgetSimilarSongs;
typedef struct _GmpcWidgetSimilarSongsClass GmpcWidgetSimilarSongsClass;
typedef struct _GmpcWidgetSimilarSongsPrivate GmpcWidgetSimilarSongsPrivate;

#define GMPC_WIDGET_TYPE_SIMILAR_ARTIST (gmpc_widget_similar_artist_get_type ())
#define GMPC_WIDGET_SIMILAR_ARTIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_WIDGET_TYPE_SIMILAR_ARTIST, GmpcWidgetSimilarArtist))
#define GMPC_WIDGET_SIMILAR_ARTIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_WIDGET_TYPE_SIMILAR_ARTIST, GmpcWidgetSimilarArtistClass))
#define GMPC_WIDGET_IS_SIMILAR_ARTIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_WIDGET_TYPE_SIMILAR_ARTIST))
#define GMPC_WIDGET_IS_SIMILAR_ARTIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_WIDGET_TYPE_SIMILAR_ARTIST))
#define GMPC_WIDGET_SIMILAR_ARTIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_WIDGET_TYPE_SIMILAR_ARTIST, GmpcWidgetSimilarArtistClass))

typedef struct _GmpcWidgetSimilarArtist GmpcWidgetSimilarArtist;
typedef struct _GmpcWidgetSimilarArtistClass GmpcWidgetSimilarArtistClass;
typedef struct _GmpcWidgetSimilarArtistPrivate GmpcWidgetSimilarArtistPrivate;

#define GMPC_PLUGIN_TYPE_BROWSER_IFACE (gmpc_plugin_browser_iface_get_type ())
#define GMPC_PLUGIN_BROWSER_IFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_PLUGIN_TYPE_BROWSER_IFACE, GmpcPluginBrowserIface))
#define GMPC_PLUGIN_IS_BROWSER_IFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_PLUGIN_TYPE_BROWSER_IFACE))
#define GMPC_PLUGIN_BROWSER_IFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GMPC_PLUGIN_TYPE_BROWSER_IFACE, GmpcPluginBrowserIfaceIface))

typedef struct _GmpcPluginBrowserIface GmpcPluginBrowserIface;
typedef struct _GmpcPluginBrowserIfaceIface GmpcPluginBrowserIfaceIface;

#define GMPC_PLUGIN_TYPE_PREFERENCES_IFACE (gmpc_plugin_preferences_iface_get_type ())
#define GMPC_PLUGIN_PREFERENCES_IFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_PLUGIN_TYPE_PREFERENCES_IFACE, GmpcPluginPreferencesIface))
#define GMPC_PLUGIN_IS_PREFERENCES_IFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_PLUGIN_TYPE_PREFERENCES_IFACE))
#define GMPC_PLUGIN_PREFERENCES_IFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GMPC_PLUGIN_TYPE_PREFERENCES_IFACE, GmpcPluginPreferencesIfaceIface))

typedef struct _GmpcPluginPreferencesIface GmpcPluginPreferencesIface;
typedef struct _GmpcPluginPreferencesIfaceIface GmpcPluginPreferencesIfaceIface;

#define GMPC_TYPE_METADATA_BROWSER (gmpc_metadata_browser_get_type ())
#define GMPC_METADATA_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_TYPE_METADATA_BROWSER, GmpcMetadataBrowser))
#define GMPC_METADATA_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_TYPE_METADATA_BROWSER, GmpcMetadataBrowserClass))
#define GMPC_IS_METADATA_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_TYPE_METADATA_BROWSER))
#define GMPC_IS_METADATA_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_TYPE_METADATA_BROWSER))
#define GMPC_METADATA_BROWSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_TYPE_METADATA_BROWSER, GmpcMetadataBrowserClass))

typedef struct _GmpcMetadataBrowser GmpcMetadataBrowser;
typedef struct _GmpcMetadataBrowserClass GmpcMetadataBrowserClass;
typedef struct _GmpcMetadataBrowserPrivate GmpcMetadataBrowserPrivate;

#define GMPC_PLUGIN_TYPE_METADATA_PREFETCHER (gmpc_plugin_metadata_prefetcher_get_type ())
#define GMPC_PLUGIN_METADATA_PREFETCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_PLUGIN_TYPE_METADATA_PREFETCHER, GmpcPluginMetadataPrefetcher))
#define GMPC_PLUGIN_METADATA_PREFETCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_PLUGIN_TYPE_METADATA_PREFETCHER, GmpcPluginMetadataPrefetcherClass))
#define GMPC_PLUGIN_IS_METADATA_PREFETCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_PLUGIN_TYPE_METADATA_PREFETCHER))
#define GMPC_PLUGIN_IS_METADATA_PREFETCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_PLUGIN_TYPE_METADATA_PREFETCHER))
#define GMPC_PLUGIN_METADATA_PREFETCHER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_PLUGIN_TYPE_METADATA_PREFETCHER, GmpcPluginMetadataPrefetcherClass))

typedef struct _GmpcPluginMetadataPrefetcher GmpcPluginMetadataPrefetcher;
typedef struct _GmpcPluginMetadataPrefetcherClass GmpcPluginMetadataPrefetcherClass;
typedef struct _GmpcPluginMetadataPrefetcherPrivate GmpcPluginMetadataPrefetcherPrivate;

#define GMPC_MPD_DATA_TREEVIEW_TYPE_TOOLTIP (gmpc_mpd_data_treeview_tooltip_get_type ())
#define GMPC_MPD_DATA_TREEVIEW_TOOLTIP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_MPD_DATA_TREEVIEW_TYPE_TOOLTIP, GmpcMpdDataTreeviewTooltip))
#define GMPC_MPD_DATA_TREEVIEW_TOOLTIP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_MPD_DATA_TREEVIEW_TYPE_TOOLTIP, GmpcMpdDataTreeviewTooltipClass))
#define GMPC_MPD_DATA_TREEVIEW_IS_TOOLTIP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_MPD_DATA_TREEVIEW_TYPE_TOOLTIP))
#define GMPC_MPD_DATA_TREEVIEW_IS_TOOLTIP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_MPD_DATA_TREEVIEW_TYPE_TOOLTIP))
#define GMPC_MPD_DATA_TREEVIEW_TOOLTIP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_MPD_DATA_TREEVIEW_TYPE_TOOLTIP, GmpcMpdDataTreeviewTooltipClass))

typedef struct _GmpcMpdDataTreeviewTooltip GmpcMpdDataTreeviewTooltip;
typedef struct _GmpcMpdDataTreeviewTooltipClass GmpcMpdDataTreeviewTooltipClass;
typedef struct _GmpcMpdDataTreeviewTooltipPrivate GmpcMpdDataTreeviewTooltipPrivate;

#define GMPC_PLUGIN_TYPE_MOCKUP (gmpc_plugin_mockup_get_type ())
#define GMPC_PLUGIN_MOCKUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_PLUGIN_TYPE_MOCKUP, GmpcPluginMockup))
#define GMPC_PLUGIN_MOCKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_PLUGIN_TYPE_MOCKUP, GmpcPluginMockupClass))
#define GMPC_PLUGIN_IS_MOCKUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_PLUGIN_TYPE_MOCKUP))
#define GMPC_PLUGIN_IS_MOCKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_PLUGIN_TYPE_MOCKUP))
#define GMPC_PLUGIN_MOCKUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_PLUGIN_TYPE_MOCKUP, GmpcPluginMockupClass))

typedef struct _GmpcPluginMockup GmpcPluginMockup;
typedef struct _GmpcPluginMockupClass GmpcPluginMockupClass;
typedef struct _GmpcPluginMockupPrivate GmpcPluginMockupPrivate;

#define GMPC_PLUGIN_TYPE_TOOL_MENU_IFACE (gmpc_plugin_tool_menu_iface_get_type ())
#define GMPC_PLUGIN_TOOL_MENU_IFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_PLUGIN_TYPE_TOOL_MENU_IFACE, GmpcPluginToolMenuIface))
#define GMPC_PLUGIN_IS_TOOL_MENU_IFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_PLUGIN_TYPE_TOOL_MENU_IFACE))
#define GMPC_PLUGIN_TOOL_MENU_IFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GMPC_PLUGIN_TYPE_TOOL_MENU_IFACE, GmpcPluginToolMenuIfaceIface))

typedef struct _GmpcPluginToolMenuIface GmpcPluginToolMenuIface;
typedef struct _GmpcPluginToolMenuIfaceIface GmpcPluginToolMenuIfaceIface;

#define GMPC_PLUGIN_TYPE_META_DATA_IFACE (gmpc_plugin_meta_data_iface_get_type ())
#define GMPC_PLUGIN_META_DATA_IFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_PLUGIN_TYPE_META_DATA_IFACE, GmpcPluginMetaDataIface))
#define GMPC_PLUGIN_IS_META_DATA_IFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_PLUGIN_TYPE_META_DATA_IFACE))
#define GMPC_PLUGIN_META_DATA_IFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GMPC_PLUGIN_TYPE_META_DATA_IFACE, GmpcPluginMetaDataIfaceIface))

typedef struct _GmpcPluginMetaDataIface GmpcPluginMetaDataIface;
typedef struct _GmpcPluginMetaDataIfaceIface GmpcPluginMetaDataIfaceIface;

#define GMPC_PLUGIN_TYPE_INTEGRATE_SEARCH_IFACE (gmpc_plugin_integrate_search_iface_get_type ())
#define GMPC_PLUGIN_INTEGRATE_SEARCH_IFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_PLUGIN_TYPE_INTEGRATE_SEARCH_IFACE, GmpcPluginIntegrateSearchIface))
#define GMPC_PLUGIN_IS_INTEGRATE_SEARCH_IFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_PLUGIN_TYPE_INTEGRATE_SEARCH_IFACE))
#define GMPC_PLUGIN_INTEGRATE_SEARCH_IFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GMPC_PLUGIN_TYPE_INTEGRATE_SEARCH_IFACE, GmpcPluginIntegrateSearchIfaceIface))

typedef struct _GmpcPluginIntegrateSearchIface GmpcPluginIntegrateSearchIface;
typedef struct _GmpcPluginIntegrateSearchIfaceIface GmpcPluginIntegrateSearchIfaceIface;

#define GMPC_PLUGIN_TYPE_SONG_LIST_IFACE (gmpc_plugin_song_list_iface_get_type ())
#define GMPC_PLUGIN_SONG_LIST_IFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_PLUGIN_TYPE_SONG_LIST_IFACE, GmpcPluginSongListIface))
#define GMPC_PLUGIN_IS_SONG_LIST_IFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_PLUGIN_TYPE_SONG_LIST_IFACE))
#define GMPC_PLUGIN_SONG_LIST_IFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GMPC_PLUGIN_TYPE_SONG_LIST_IFACE, GmpcPluginSongListIfaceIface))

typedef struct _GmpcPluginSongListIface GmpcPluginSongListIface;
typedef struct _GmpcPluginSongListIfaceIface GmpcPluginSongListIfaceIface;
typedef struct _GmpcRatingPrivate GmpcRatingPrivate;

#define GMPC_SONG_TYPE_LINKS (gmpc_song_links_get_type ())
#define GMPC_SONG_LINKS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_SONG_TYPE_LINKS, GmpcSongLinks))
#define GMPC_SONG_LINKS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_SONG_TYPE_LINKS, GmpcSongLinksClass))
#define GMPC_SONG_IS_LINKS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_SONG_TYPE_LINKS))
#define GMPC_SONG_IS_LINKS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_SONG_TYPE_LINKS))
#define GMPC_SONG_LINKS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_SONG_TYPE_LINKS, GmpcSongLinksClass))

typedef struct _GmpcSongLinks GmpcSongLinks;
typedef struct _GmpcSongLinksClass GmpcSongLinksClass;
typedef struct _GmpcSongLinksPrivate GmpcSongLinksPrivate;

#define GMPC_SONG_LINKS_TYPE_TYPE (gmpc_song_links_type_get_type ())

#define GMPC_URL_FETCHING_TYPE_GUI (gmpc_url_fetching_gui_get_type ())
#define GMPC_URL_FETCHING_GUI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_URL_FETCHING_TYPE_GUI, GmpcUrlFetchingGui))
#define GMPC_URL_FETCHING_GUI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_URL_FETCHING_TYPE_GUI, GmpcUrlFetchingGuiClass))
#define GMPC_URL_FETCHING_IS_GUI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_URL_FETCHING_TYPE_GUI))
#define GMPC_URL_FETCHING_IS_GUI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_URL_FETCHING_TYPE_GUI))
#define GMPC_URL_FETCHING_GUI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_URL_FETCHING_TYPE_GUI, GmpcUrlFetchingGuiClass))

typedef struct _GmpcUrlFetchingGui GmpcUrlFetchingGui;
typedef struct _GmpcUrlFetchingGuiClass GmpcUrlFetchingGuiClass;
typedef struct _GmpcUrlFetchingGuiPrivate GmpcUrlFetchingGuiPrivate;

#define GMPC_PLUGIN_TYPE_DATABASE_UPDATE_TRACKER (gmpc_plugin_database_update_tracker_get_type ())
#define GMPC_PLUGIN_DATABASE_UPDATE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_PLUGIN_TYPE_DATABASE_UPDATE_TRACKER, GmpcPluginDatabaseUpdateTracker))
#define GMPC_PLUGIN_DATABASE_UPDATE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_PLUGIN_TYPE_DATABASE_UPDATE_TRACKER, GmpcPluginDatabaseUpdateTrackerClass))
#define GMPC_PLUGIN_IS_DATABASE_UPDATE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_PLUGIN_TYPE_DATABASE_UPDATE_TRACKER))
#define GMPC_PLUGIN_IS_DATABASE_UPDATE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_PLUGIN_TYPE_DATABASE_UPDATE_TRACKER))
#define GMPC_PLUGIN_DATABASE_UPDATE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_PLUGIN_TYPE_DATABASE_UPDATE_TRACKER, GmpcPluginDatabaseUpdateTrackerClass))

typedef struct _GmpcPluginDatabaseUpdateTracker GmpcPluginDatabaseUpdateTracker;
typedef struct _GmpcPluginDatabaseUpdateTrackerClass GmpcPluginDatabaseUpdateTrackerClass;
typedef struct _GmpcPluginDatabaseUpdateTrackerPrivate GmpcPluginDatabaseUpdateTrackerPrivate;

#define GMPC_META_DATA_TYPE_EDIT_WINDOW (gmpc_meta_data_edit_window_get_type ())
#define GMPC_META_DATA_EDIT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_META_DATA_TYPE_EDIT_WINDOW, GmpcMetaDataEditWindow))
#define GMPC_META_DATA_EDIT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_META_DATA_TYPE_EDIT_WINDOW, GmpcMetaDataEditWindowClass))
#define GMPC_META_DATA_IS_EDIT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_META_DATA_TYPE_EDIT_WINDOW))
#define GMPC_META_DATA_IS_EDIT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_META_DATA_TYPE_EDIT_WINDOW))
#define GMPC_META_DATA_EDIT_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_META_DATA_TYPE_EDIT_WINDOW, GmpcMetaDataEditWindowClass))

typedef struct _GmpcMetaDataEditWindow GmpcMetaDataEditWindow;
typedef struct _GmpcMetaDataEditWindowClass GmpcMetaDataEditWindowClass;
typedef struct _GmpcMetaDataEditWindowPrivate GmpcMetaDataEditWindowPrivate;

#define GMPC_TYPE_TEST_PLUGIN (gmpc_test_plugin_get_type ())
#define GMPC_TEST_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_TYPE_TEST_PLUGIN, GmpcTestPlugin))
#define GMPC_TEST_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_TYPE_TEST_PLUGIN, GmpcTestPluginClass))
#define GMPC_IS_TEST_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_TYPE_TEST_PLUGIN))
#define GMPC_IS_TEST_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_TYPE_TEST_PLUGIN))
#define GMPC_TEST_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_TYPE_TEST_PLUGIN, GmpcTestPluginClass))

typedef struct _GmpcTestPlugin GmpcTestPlugin;
typedef struct _GmpcTestPluginClass GmpcTestPluginClass;
typedef struct _GmpcTestPluginPrivate GmpcTestPluginPrivate;

#define GMPC_TYPE_PANED_SIZE_GROUP (gmpc_paned_size_group_get_type ())
#define GMPC_PANED_SIZE_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_TYPE_PANED_SIZE_GROUP, GmpcPanedSizeGroup))
#define GMPC_PANED_SIZE_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_TYPE_PANED_SIZE_GROUP, GmpcPanedSizeGroupClass))
#define GMPC_IS_PANED_SIZE_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_TYPE_PANED_SIZE_GROUP))
#define GMPC_IS_PANED_SIZE_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_TYPE_PANED_SIZE_GROUP))
#define GMPC_PANED_SIZE_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_TYPE_PANED_SIZE_GROUP, GmpcPanedSizeGroupClass))

typedef struct _GmpcPanedSizeGroup GmpcPanedSizeGroup;
typedef struct _GmpcPanedSizeGroupClass GmpcPanedSizeGroupClass;
typedef struct _GmpcPanedSizeGroupPrivate GmpcPanedSizeGroupPrivate;

#define GMPC_PROVIDER_TYPE_MUSIC_TREE (gmpc_provider_music_tree_get_type ())
#define GMPC_PROVIDER_MUSIC_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMPC_PROVIDER_TYPE_MUSIC_TREE, GmpcProviderMusicTree))
#define GMPC_PROVIDER_MUSIC_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMPC_PROVIDER_TYPE_MUSIC_TREE, GmpcProviderMusicTreeClass))
#define GMPC_PROVIDER_IS_MUSIC_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GMPC_PROVIDER_TYPE_MUSIC_TREE))
#define GMPC_PROVIDER_IS_MUSIC_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GMPC_PROVIDER_TYPE_MUSIC_TREE))
#define GMPC_PROVIDER_MUSIC_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMPC_PROVIDER_TYPE_MUSIC_TREE, GmpcProviderMusicTreeClass))

typedef struct _GmpcProviderMusicTree GmpcProviderMusicTree;
typedef struct _GmpcProviderMusicTreeClass GmpcProviderMusicTreeClass;
typedef struct _GmpcProviderMusicTreePrivate GmpcProviderMusicTreePrivate;

struct _GmpcConnection {
	GObject parent_instance;
	GmpcConnectionPrivate * priv;
};

struct _GmpcConnectionClass {
	GObjectClass parent_class;
};

struct _GmpcProgress {
	GtkHBox parent_instance;
	GmpcProgressPrivate * priv;
	gboolean _hide_text;
};

struct _GmpcProgressClass {
	GtkHBoxClass parent_class;
};

struct _GmpcPluginBase {
	GObject parent_instance;
	GmpcPluginBasePrivate * priv;
	const char* translation_domain;
	char* path;
	gint id;
	gint plugin_type;
};

struct _GmpcPluginBaseClass {
	GObjectClass parent_class;
	gint* (*get_version) (GmpcPluginBase* self, int* result_length1);
	const char* (*get_name) (GmpcPluginBase* self);
	void (*save_yourself) (GmpcPluginBase* self);
	gboolean (*get_enabled) (GmpcPluginBase* self);
	void (*set_enabled) (GmpcPluginBase* self, gboolean state);
};

struct _GmpcEasyCommand {
	GmpcPluginBase parent_instance;
	GmpcEasyCommandPrivate * priv;
};

struct _GmpcEasyCommandClass {
	GmpcPluginBaseClass parent_class;
};

typedef void (*GmpcEasyCommandCallback) (void* data, const char* param, void* user_data);
struct _GmpcFavoritesButton {
	GtkEventBox parent_instance;
	GmpcFavoritesButtonPrivate * priv;
};

struct _GmpcFavoritesButtonClass {
	GtkEventBoxClass parent_class;
};

struct _GmpcPixbufLoaderAsync {
	GObject parent_instance;
	GmpcPixbufLoaderAsyncPrivate * priv;
	char* uri;
};

struct _GmpcPixbufLoaderAsyncClass {
	GObjectClass parent_class;
};

struct _GmpcMetaImageAsync {
	GtkImage parent_instance;
	GmpcMetaImageAsyncPrivate * priv;
	char* uri;
};

struct _GmpcMetaImageAsyncClass {
	GtkImageClass parent_class;
};

struct _GmpcListstoreSort {
	GtkListStore parent_instance;
	GmpcListstoreSortPrivate * priv;
};

struct _GmpcListstoreSortClass {
	GtkListStoreClass parent_class;
};

struct _GmpcMenuItemRating {
	GtkMenuItem parent_instance;
	GmpcMenuItemRatingPrivate * priv;
	GtkVBox* hbox;
	GmpcRating* rating;
};

struct _GmpcMenuItemRatingClass {
	GtkMenuItemClass parent_class;
};

struct _GmpcWidgetSimilarSongs {
	GtkAlignment parent_instance;
	GmpcWidgetSimilarSongsPrivate * priv;
};

struct _GmpcWidgetSimilarSongsClass {
	GtkAlignmentClass parent_class;
};

struct _GmpcWidgetSimilarArtist {
	GtkTable parent_instance;
	GmpcWidgetSimilarArtistPrivate * priv;
};

struct _GmpcWidgetSimilarArtistClass {
	GtkTableClass parent_class;
};

struct _GmpcPluginBrowserIfaceIface {
	GTypeInterface parent_iface;
	void (*browser_add) (GmpcPluginBrowserIface* self, GtkWidget* category_tree);
	void (*browser_selected) (GmpcPluginBrowserIface* self, GtkContainer* container);
	void (*browser_unselected) (GmpcPluginBrowserIface* self, GtkContainer* container);
	gint (*browser_option_menu) (GmpcPluginBrowserIface* self, GtkMenu* menu);
	gint (*browser_add_go_menu) (GmpcPluginBrowserIface* self, GtkMenu* menu);
};

struct _GmpcPluginPreferencesIfaceIface {
	GTypeInterface parent_iface;
	void (*preferences_pane_construct) (GmpcPluginPreferencesIface* self, GtkContainer* container);
	void (*preferences_pane_destroy) (GmpcPluginPreferencesIface* self, GtkContainer* container);
};

struct _GmpcMetadataBrowser {
	GmpcPluginBase parent_instance;
	GmpcMetadataBrowserPrivate * priv;
};

struct _GmpcMetadataBrowserClass {
	GmpcPluginBaseClass parent_class;
};

struct _GmpcPluginMetadataPrefetcher {
	GmpcPluginBase parent_instance;
	GmpcPluginMetadataPrefetcherPrivate * priv;
};

struct _GmpcPluginMetadataPrefetcherClass {
	GmpcPluginBaseClass parent_class;
};

struct _GmpcMpdDataTreeviewTooltip {
	GtkWindow parent_instance;
	GmpcMpdDataTreeviewTooltipPrivate * priv;
	MetaDataType mtype;
	char* request_artist;
};

struct _GmpcMpdDataTreeviewTooltipClass {
	GtkWindowClass parent_class;
};

struct _GmpcPluginMockup {
	GmpcPluginBase parent_instance;
	GmpcPluginMockupPrivate * priv;
};

struct _GmpcPluginMockupClass {
	GmpcPluginBaseClass parent_class;
};

struct _GmpcPluginToolMenuIfaceIface {
	GTypeInterface parent_iface;
	gint (*tool_menu_integration) (GmpcPluginToolMenuIface* self, GtkMenu* menu);
};

typedef void (*GmpcPluginMetaDataCallback) (GList* list, void* user_data);
struct _GmpcPluginMetaDataIfaceIface {
	GTypeInterface parent_iface;
	void (*get_metadata) (GmpcPluginMetaDataIface* self, const mpd_Song* song, MetaDataType type, GmpcPluginMetaDataCallback callback, void* callback_target);
	gint (*get_priority) (GmpcPluginMetaDataIface* self);
	void (*set_priority) (GmpcPluginMetaDataIface* self, gint priority);
};

struct _GmpcPluginIntegrateSearchIfaceIface {
	GTypeInterface parent_iface;
	gboolean (*field_supported) (GmpcPluginIntegrateSearchIface* self, mpd_TagItems tag);
	MpdData* (*search) (GmpcPluginIntegrateSearchIface* self, mpd_TagItems tag, const char* search_query);
};

struct _GmpcPluginSongListIfaceIface {
	GTypeInterface parent_iface;
	gint (*song_list) (GmpcPluginSongListIface* self, GtkWidget* tree, GtkMenu* menu);
};

struct _GmpcRating {
	GtkFrame parent_instance;
	GmpcRatingPrivate * priv;
	GtkEventBox* event_box;
};

struct _GmpcRatingClass {
	GtkFrameClass parent_class;
};

struct _GmpcSongLinks {
	GtkFrame parent_instance;
	GmpcSongLinksPrivate * priv;
};

struct _GmpcSongLinksClass {
	GtkFrameClass parent_class;
};

typedef enum  {
	GMPC_SONG_LINKS_TYPE_ARTIST,
	GMPC_SONG_LINKS_TYPE_ALBUM,
	GMPC_SONG_LINKS_TYPE_SONG
} GmpcSongLinksType;

struct _GmpcUrlFetchingGui {
	GObject parent_instance;
	GmpcUrlFetchingGuiPrivate * priv;
};

struct _GmpcUrlFetchingGuiClass {
	GObjectClass parent_class;
};

typedef void (*GmpcUrlFetchingGuiParseUrl) (GmpcUrlFetchingGui* gui, const char* url, void* user_data);
typedef gboolean (*GmpcUrlFetchingGuiValidateUrl) (GmpcUrlFetchingGui* gui, const char* url, void* user_data);
struct _GmpcPluginDatabaseUpdateTracker {
	GmpcPluginBase parent_instance;
	GmpcPluginDatabaseUpdateTrackerPrivate * priv;
};

struct _GmpcPluginDatabaseUpdateTrackerClass {
	GmpcPluginBaseClass parent_class;
};

struct _GmpcMetaDataEditWindow {
	GtkWindow parent_instance;
	GmpcMetaDataEditWindowPrivate * priv;
};

struct _GmpcMetaDataEditWindowClass {
	GtkWindowClass parent_class;
};

struct _GmpcTestPlugin {
	GmpcPluginBase parent_instance;
	GmpcTestPluginPrivate * priv;
};

struct _GmpcTestPluginClass {
	GmpcPluginBaseClass parent_class;
};

struct _GmpcPanedSizeGroup {
	GObject parent_instance;
	GmpcPanedSizeGroupPrivate * priv;
};

struct _GmpcPanedSizeGroupClass {
	GObjectClass parent_class;
};

struct _GmpcProviderMusicTree {
	GmpcPluginBase parent_instance;
	GmpcProviderMusicTreePrivate * priv;
};

struct _GmpcProviderMusicTreeClass {
	GmpcPluginBaseClass parent_class;
};


GType gmpc_connection_get_type (void);
GmpcConnection* gmpc_connection_new (void);
GmpcConnection* gmpc_connection_construct (GType object_type);
GType gmpc_progress_get_type (void);
void gmpc_progress_set_time (GmpcProgress* self, guint total, guint current);
GmpcProgress* gmpc_progress_new (void);
GmpcProgress* gmpc_progress_construct (GType object_type);
gboolean gmpc_progress_get_hide_text (GmpcProgress* self);
void gmpc_progress_set_hide_text (GmpcProgress* self, gboolean value);
GType gmpc_plugin_base_get_type (void);
GType gmpc_easy_command_get_type (void);
guint gmpc_easy_command_add_entry (GmpcEasyCommand* self, const char* name, const char* pattern, const char* hint, GmpcEasyCommandCallback* callback, void* userdata);
void gmpc_easy_command_do_query (GmpcEasyCommand* self, const char* value_unsplit);
void gmpc_easy_command_popup (GmpcEasyCommand* self);
void gmpc_easy_command_help_window_destroy (GtkDialog* window, gint response);
void gmpc_easy_command_help_window (void* data, const char* param);
GmpcEasyCommand* gmpc_easy_command_new (void);
GmpcEasyCommand* gmpc_easy_command_construct (GType object_type);
GType gmpc_favorites_button_get_type (void);
void gmpc_favorites_button_set_song (GmpcFavoritesButton* self, const mpd_Song* song);
GmpcFavoritesButton* gmpc_favorites_button_new (void);
GmpcFavoritesButton* gmpc_favorites_button_construct (GType object_type);
GType gmpc_pixbuf_loader_async_get_type (void);
void gmpc_pixbuf_loader_async_set_rref (GmpcPixbufLoaderAsync* self, const GtkTreeRowReference* rreference);
void gmpc_pixbuf_loader_async_set_from_file (GmpcPixbufLoaderAsync* self, const char* uri, gint size, gboolean border);
GmpcPixbufLoaderAsync* gmpc_pixbuf_loader_async_new (void);
GmpcPixbufLoaderAsync* gmpc_pixbuf_loader_async_construct (GType object_type);
GdkPixbuf* gmpc_pixbuf_loader_async_get_pixbuf (GmpcPixbufLoaderAsync* self);
void gmpc_pixbuf_loader_async_set_pixbuf (GmpcPixbufLoaderAsync* self, GdkPixbuf* value);
GType gmpc_meta_image_async_get_type (void);
void gmpc_meta_image_async_set_from_file (GmpcMetaImageAsync* self, const char* uri, gint size, gboolean border);
void gmpc_meta_image_async_clear_now (GmpcMetaImageAsync* self);
void gmpc_meta_image_async_set_pixbuf (GmpcMetaImageAsync* self, GdkPixbuf* pb);
GmpcMetaImageAsync* gmpc_meta_image_async_new (void);
GmpcMetaImageAsync* gmpc_meta_image_async_construct (GType object_type);
GType gmpc_liststore_sort_get_type (void);
GmpcListstoreSort* gmpc_liststore_sort_new (void);
GmpcListstoreSort* gmpc_liststore_sort_construct (GType object_type);
GType gmpc_menu_item_rating_get_type (void);
GType gmpc_rating_get_type (void);
gint gmpc_menu_item_rating_get_rating (GmpcMenuItemRating* self);
GmpcMenuItemRating* gmpc_menu_item_rating_new (MpdObj* server, const mpd_Song* song);
GmpcMenuItemRating* gmpc_menu_item_rating_construct (GType object_type, MpdObj* server, const mpd_Song* song);
GType gmpc_widget_similar_songs_get_type (void);
GmpcWidgetSimilarSongs* gmpc_widget_similar_songs_new (const mpd_Song* song);
GmpcWidgetSimilarSongs* gmpc_widget_similar_songs_construct (GType object_type, const mpd_Song* song);
void gmpc_widget_similar_songs_update (GmpcWidgetSimilarSongs* self);
GType gmpc_widget_similar_artist_get_type (void);
GtkWidget* gmpc_widget_similar_artist_new_artist_button (GmpcWidgetSimilarArtist* self, const char* artist, gboolean in_db);
GmpcWidgetSimilarArtist* gmpc_widget_similar_artist_new (MpdObj* server, const mpd_Song* song);
GmpcWidgetSimilarArtist* gmpc_widget_similar_artist_construct (GType object_type, MpdObj* server, const mpd_Song* song);
GType gmpc_plugin_browser_iface_get_type (void);
GType gmpc_plugin_preferences_iface_get_type (void);
GType gmpc_metadata_browser_get_type (void);
GtkWidget* gmpc_metadata_browser_metadata_box_show_song (GmpcMetadataBrowser* self, const mpd_Song* song, gboolean show_controls);
void gmpc_metadata_browser_set_artist (GmpcMetadataBrowser* self, const char* artist);
void gmpc_metadata_browser_set_album (GmpcMetadataBrowser* self, const char* artist, const char* album);
void gmpc_metadata_browser_set_song (GmpcMetadataBrowser* self, const mpd_Song* song);
void gmpc_metadata_browser_select_browser (GmpcMetadataBrowser* self, GtkTreeView* tree);
GmpcMetadataBrowser* gmpc_metadata_browser_new (void);
GmpcMetadataBrowser* gmpc_metadata_browser_construct (GType object_type);
GType gmpc_plugin_metadata_prefetcher_get_type (void);
GmpcPluginMetadataPrefetcher* gmpc_plugin_metadata_prefetcher_new (void);
GmpcPluginMetadataPrefetcher* gmpc_plugin_metadata_prefetcher_construct (GType object_type);
GType gmpc_mpd_data_treeview_tooltip_get_type (void);
GmpcMpdDataTreeviewTooltip* gmpc_mpd_data_treeview_tooltip_new (GtkTreeView* pw, MetaDataType type);
GmpcMpdDataTreeviewTooltip* gmpc_mpd_data_treeview_tooltip_construct (GType object_type, GtkTreeView* pw, MetaDataType type);
GType gmpc_plugin_mockup_get_type (void);
GmpcPluginMockup* gmpc_plugin_mockup_new (void);
GmpcPluginMockup* gmpc_plugin_mockup_construct (GType object_type);
gint* gmpc_plugin_base_get_version (GmpcPluginBase* self, int* result_length1);
const char* gmpc_plugin_base_get_name (GmpcPluginBase* self);
void gmpc_plugin_base_save_yourself (GmpcPluginBase* self);
gboolean gmpc_plugin_base_get_enabled (GmpcPluginBase* self);
void gmpc_plugin_base_set_enabled (GmpcPluginBase* self, gboolean state);
GmpcPluginBase* gmpc_plugin_base_construct (GType object_type);
GType gmpc_plugin_tool_menu_iface_get_type (void);
gint gmpc_plugin_tool_menu_iface_tool_menu_integration (GmpcPluginToolMenuIface* self, GtkMenu* menu);
GType gmpc_plugin_meta_data_iface_get_type (void);
void gmpc_plugin_meta_data_iface_get_metadata (GmpcPluginMetaDataIface* self, const mpd_Song* song, MetaDataType type, GmpcPluginMetaDataCallback callback, void* callback_target);
gint gmpc_plugin_meta_data_iface_get_priority (GmpcPluginMetaDataIface* self);
void gmpc_plugin_meta_data_iface_set_priority (GmpcPluginMetaDataIface* self, gint priority);
void gmpc_plugin_browser_iface_browser_add (GmpcPluginBrowserIface* self, GtkWidget* category_tree);
void gmpc_plugin_browser_iface_browser_selected (GmpcPluginBrowserIface* self, GtkContainer* container);
void gmpc_plugin_browser_iface_browser_unselected (GmpcPluginBrowserIface* self, GtkContainer* container);
gint gmpc_plugin_browser_iface_browser_option_menu (GmpcPluginBrowserIface* self, GtkMenu* menu);
gint gmpc_plugin_browser_iface_browser_add_go_menu (GmpcPluginBrowserIface* self, GtkMenu* menu);
GType gmpc_plugin_integrate_search_iface_get_type (void);
gboolean gmpc_plugin_integrate_search_iface_field_supported (GmpcPluginIntegrateSearchIface* self, mpd_TagItems tag);
MpdData* gmpc_plugin_integrate_search_iface_search (GmpcPluginIntegrateSearchIface* self, mpd_TagItems tag, const char* search_query);
void gmpc_plugin_preferences_iface_preferences_pane_construct (GmpcPluginPreferencesIface* self, GtkContainer* container);
void gmpc_plugin_preferences_iface_preferences_pane_destroy (GmpcPluginPreferencesIface* self, GtkContainer* container);
GType gmpc_plugin_song_list_iface_get_type (void);
gint gmpc_plugin_song_list_iface_song_list (GmpcPluginSongListIface* self, GtkWidget* tree, GtkMenu* menu);
gboolean gmpc_rating_button_press_event_callback (GmpcRating* self, GtkEventBox* wid, GdkEventButton* event);
GmpcRating* gmpc_rating_new (MpdObj* server, const mpd_Song* song);
GmpcRating* gmpc_rating_construct (GType object_type, MpdObj* server, const mpd_Song* song);
void gmpc_rating_set_rating (GmpcRating* self, gint rating);
void gmpc_rating_update (GmpcRating* self);
GType gmpc_song_links_get_type (void);
GType gmpc_song_links_type_get_type (void);
GmpcSongLinks* gmpc_song_links_new (GmpcSongLinksType type, const mpd_Song* song);
GmpcSongLinks* gmpc_song_links_construct (GType object_type, GmpcSongLinksType type, const mpd_Song* song);
GType gmpc_url_fetching_gui_get_type (void);
GmpcUrlFetchingGui* gmpc_url_fetching_gui_new (GmpcUrlFetchingGuiParseUrl parse_callback, void* parse_callback_target, GmpcUrlFetchingGuiValidateUrl validate_callback, void* validate_callback_target, GDestroyNotify destroy_cb);
GmpcUrlFetchingGui* gmpc_url_fetching_gui_construct (GType object_type, GmpcUrlFetchingGuiParseUrl parse_callback, void* parse_callback_target, GmpcUrlFetchingGuiValidateUrl validate_callback, void* validate_callback_target, GDestroyNotify destroy_cb);
void gmpc_url_fetching_gui_set_processing (GmpcUrlFetchingGui* self);
void gmpc_url_fetching_gui_set_progress (GmpcUrlFetchingGui* self, double progress);
void gmpc_url_fetching_gui_set_completed (GmpcUrlFetchingGui* self);
void gmpc_url_fetching_gui_set_error (GmpcUrlFetchingGui* self, const char* error_message);
GType gmpc_plugin_database_update_tracker_get_type (void);
GmpcPluginDatabaseUpdateTracker* gmpc_plugin_database_update_tracker_new (void);
GmpcPluginDatabaseUpdateTracker* gmpc_plugin_database_update_tracker_construct (GType object_type);
GType gmpc_meta_data_edit_window_get_type (void);
void gmpc_meta_data_edit_window_image_downloaded (GmpcMetaDataEditWindow* self, const GEADAsyncHandler* handle, GEADStatus status);
void gmpc_meta_data_edit_window_callback (GmpcMetaDataEditWindow* self, void* handle, const char* plugin_name, GList* list);
void gmpc_meta_data_edit_window_store_image (GmpcMetaDataEditWindow* self, const GEADAsyncHandler* handle, GEADStatus status);
void gmpc_meta_data_edit_window_destroy_popup (GmpcMetaDataEditWindow* self, GtkButton* button);
void gmpc_meta_data_edit_window_refresh_query (GmpcMetaDataEditWindow* self, GtkButton* button);
GmpcMetaDataEditWindow* gmpc_meta_data_edit_window_new (const mpd_Song* song, MetaDataType type);
GmpcMetaDataEditWindow* gmpc_meta_data_edit_window_construct (GType object_type, const mpd_Song* song, MetaDataType type);
void gmpc_meta_data_edit_window_b_cancel (GmpcMetaDataEditWindow* self);
GType gmpc_test_plugin_get_type (void);
void gmpc_test_plugin_menu_activated_album (GmpcTestPlugin* self, GtkMenuItem* item);
GmpcTestPlugin* gmpc_test_plugin_new (void);
GmpcTestPlugin* gmpc_test_plugin_construct (GType object_type);
GType gmpc_paned_size_group_get_type (void);
GmpcPanedSizeGroup* gmpc_paned_size_group_new (void);
GmpcPanedSizeGroup* gmpc_paned_size_group_construct (GType object_type);
void gmpc_paned_size_group_add_paned (GmpcPanedSizeGroup* self, GtkPaned* paned);
GType gmpc_provider_music_tree_get_type (void);
GmpcProviderMusicTree* gmpc_provider_music_tree_new (void);
GmpcProviderMusicTree* gmpc_provider_music_tree_construct (GType object_type);

static const gint GMPC_METADATA_BROWSER_version[] = {0, 0, 0};
static const gint GMPC_PLUGIN_METADATA_PREFETCHER_version[] = {0, 0, 2};
static const gint GMPC_PLUGIN_MOCKUP_version[] = {0, 0, 0};
static const gint GMPC_PLUGIN_DATABASE_UPDATE_TRACKER_version[] = {0, 0, 2};
static const gint GMPC_TEST_PLUGIN_version[] = {0, 0, 2};
static const gint GMPC_PROVIDER_MUSIC_TREE_version[] = {0, 0, 2};

G_END_DECLS

#endif
