/* banshee-plugin.c generated by valac 0.56.17, the Vala compiler
 * generated from banshee-plugin.vala, do not modify */

/*
 * Copyright (C) 2010 Michal Hruby <michal.mhr@gmail.com>
 *
 * 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 St, Fifth Floor, Boston, MA 02110-1301  USA.
 *
 * Authored by Alberto Aldegheri <albyrock87+dev@gmail.com>
 *
 */

#include <glib-object.h>
#include <gio/gio.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include "plugins.h"
#include <gee.h>
#include <synapse-core.h>
#include <glib/gi18n-lib.h>
#include <stdio.h>

#define SYNAPSE_BANSHEE_PLAYER_ENGINE_UNIQUE_NAME "org.bansheeproject.Banshee"
#define SYNAPSE_BANSHEE_PLAYER_ENGINE_OBJECT_PATH "/org/bansheeproject/Banshee/PlayerEngine"
#define SYNAPSE_BANSHEE_PLAYBACK_CONTROLLER_UNIQUE_NAME "org.bansheeproject.Banshee"
#define SYNAPSE_BANSHEE_PLAYBACK_CONTROLLER_OBJECT_PATH "/org/bansheeproject/Banshee/PlaybackController"
#define SYNAPSE_BANSHEE_PLAY_QUEUE_UNIQUE_NAME "org.bansheeproject.Banshee"
#define SYNAPSE_BANSHEE_PLAY_QUEUE_OBJECT_PATH "/org/bansheeproject/Banshee/SourceManager/PlayQueue"
#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif

#define SYNAPSE_TYPE_BANSHEE_PLAYER_ENGINE (synapse_banshee_player_engine_get_type ())
#define SYNAPSE_BANSHEE_PLAYER_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_TYPE_BANSHEE_PLAYER_ENGINE, SynapseBansheePlayerEngine))
#define SYNAPSE_IS_BANSHEE_PLAYER_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_TYPE_BANSHEE_PLAYER_ENGINE))
#define SYNAPSE_BANSHEE_PLAYER_ENGINE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SYNAPSE_TYPE_BANSHEE_PLAYER_ENGINE, SynapseBansheePlayerEngineIface))

typedef struct _SynapseBansheePlayerEngine SynapseBansheePlayerEngine;
typedef struct _SynapseBansheePlayerEngineIface SynapseBansheePlayerEngineIface;

#define SYNAPSE_TYPE_BANSHEE_PLAYER_ENGINE_PROXY (synapse_banshee_player_engine_proxy_get_type ())
typedef GDBusProxy SynapseBansheePlayerEngineProxy;
typedef GDBusProxyClass SynapseBansheePlayerEngineProxyClass;
#define _g_free0(var) (var = (g_free (var), NULL))

#define SYNAPSE_TYPE_BANSHEE_PLAYBACK_CONTROLLER (synapse_banshee_playback_controller_get_type ())
#define SYNAPSE_BANSHEE_PLAYBACK_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_TYPE_BANSHEE_PLAYBACK_CONTROLLER, SynapseBansheePlaybackController))
#define SYNAPSE_IS_BANSHEE_PLAYBACK_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_TYPE_BANSHEE_PLAYBACK_CONTROLLER))
#define SYNAPSE_BANSHEE_PLAYBACK_CONTROLLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SYNAPSE_TYPE_BANSHEE_PLAYBACK_CONTROLLER, SynapseBansheePlaybackControllerIface))

typedef struct _SynapseBansheePlaybackController SynapseBansheePlaybackController;
typedef struct _SynapseBansheePlaybackControllerIface SynapseBansheePlaybackControllerIface;

#define SYNAPSE_TYPE_BANSHEE_PLAYBACK_CONTROLLER_PROXY (synapse_banshee_playback_controller_proxy_get_type ())
typedef GDBusProxy SynapseBansheePlaybackControllerProxy;
typedef GDBusProxyClass SynapseBansheePlaybackControllerProxyClass;

#define SYNAPSE_TYPE_BANSHEE_PLAY_QUEUE (synapse_banshee_play_queue_get_type ())
#define SYNAPSE_BANSHEE_PLAY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_TYPE_BANSHEE_PLAY_QUEUE, SynapseBansheePlayQueue))
#define SYNAPSE_IS_BANSHEE_PLAY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_TYPE_BANSHEE_PLAY_QUEUE))
#define SYNAPSE_BANSHEE_PLAY_QUEUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SYNAPSE_TYPE_BANSHEE_PLAY_QUEUE, SynapseBansheePlayQueueIface))

typedef struct _SynapseBansheePlayQueue SynapseBansheePlayQueue;
typedef struct _SynapseBansheePlayQueueIface SynapseBansheePlayQueueIface;

#define SYNAPSE_TYPE_BANSHEE_PLAY_QUEUE_PROXY (synapse_banshee_play_queue_proxy_get_type ())
typedef GDBusProxy SynapseBansheePlayQueueProxy;
typedef GDBusProxyClass SynapseBansheePlayQueueProxyClass;

#define SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_ACTION (synapse_banshee_actions_banshee_action_get_type ())
#define SYNAPSE_BANSHEE_ACTIONS_BANSHEE_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_ACTION, SynapseBansheeActionsBansheeAction))
#define SYNAPSE_BANSHEE_ACTIONS_BANSHEE_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_ACTION, SynapseBansheeActionsBansheeActionClass))
#define SYNAPSE_BANSHEE_ACTIONS_IS_BANSHEE_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_ACTION))
#define SYNAPSE_BANSHEE_ACTIONS_IS_BANSHEE_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_ACTION))
#define SYNAPSE_BANSHEE_ACTIONS_BANSHEE_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_ACTION, SynapseBansheeActionsBansheeActionClass))

typedef struct _SynapseBansheeActionsBansheeAction SynapseBansheeActionsBansheeAction;
typedef struct _SynapseBansheeActionsBansheeActionClass SynapseBansheeActionsBansheeActionClass;

#define SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_CONTROL_MATCH (synapse_banshee_actions_banshee_control_match_get_type ())
#define SYNAPSE_BANSHEE_ACTIONS_BANSHEE_CONTROL_MATCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_CONTROL_MATCH, SynapseBansheeActionsBansheeControlMatch))
#define SYNAPSE_BANSHEE_ACTIONS_BANSHEE_CONTROL_MATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_CONTROL_MATCH, SynapseBansheeActionsBansheeControlMatchClass))
#define SYNAPSE_BANSHEE_ACTIONS_IS_BANSHEE_CONTROL_MATCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_CONTROL_MATCH))
#define SYNAPSE_BANSHEE_ACTIONS_IS_BANSHEE_CONTROL_MATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_CONTROL_MATCH))
#define SYNAPSE_BANSHEE_ACTIONS_BANSHEE_CONTROL_MATCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_CONTROL_MATCH, SynapseBansheeActionsBansheeControlMatchClass))

typedef struct _SynapseBansheeActionsBansheeControlMatch SynapseBansheeActionsBansheeControlMatch;
typedef struct _SynapseBansheeActionsBansheeControlMatchClass SynapseBansheeActionsBansheeControlMatchClass;
enum  {
	SYNAPSE_BANSHEE_ACTIONS_0_PROPERTY,
	SYNAPSE_BANSHEE_ACTIONS_ENABLED_PROPERTY,
	SYNAPSE_BANSHEE_ACTIONS_NUM_PROPERTIES
};
static GParamSpec* synapse_banshee_actions_properties[SYNAPSE_BANSHEE_ACTIONS_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _SynapseBansheeActionsSearchData SynapseBansheeActionsSearchData;
typedef struct _SynapseBansheeActionsBansheeActionPrivate SynapseBansheeActionsBansheeActionPrivate;
enum  {
	SYNAPSE_BANSHEE_ACTIONS_BANSHEE_ACTION_0_PROPERTY,
	SYNAPSE_BANSHEE_ACTIONS_BANSHEE_ACTION_NUM_PROPERTIES
};
static GParamSpec* synapse_banshee_actions_banshee_action_properties[SYNAPSE_BANSHEE_ACTIONS_BANSHEE_ACTION_NUM_PROPERTIES];
typedef struct _SynapseBansheeActionsBansheeControlMatchPrivate SynapseBansheeActionsBansheeControlMatchPrivate;
enum  {
	SYNAPSE_BANSHEE_ACTIONS_BANSHEE_CONTROL_MATCH_0_PROPERTY,
	SYNAPSE_BANSHEE_ACTIONS_BANSHEE_CONTROL_MATCH_NUM_PROPERTIES
};
static GParamSpec* synapse_banshee_actions_banshee_control_match_properties[SYNAPSE_BANSHEE_ACTIONS_BANSHEE_CONTROL_MATCH_NUM_PROPERTIES];

#define SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY (synapse_banshee_actions_play_get_type ())
#define SYNAPSE_BANSHEE_ACTIONS_PLAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY, SynapseBansheeActionsPlay))
#define SYNAPSE_BANSHEE_ACTIONS_PLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY, SynapseBansheeActionsPlayClass))
#define SYNAPSE_BANSHEE_ACTIONS_IS_PLAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY))
#define SYNAPSE_BANSHEE_ACTIONS_IS_PLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY))
#define SYNAPSE_BANSHEE_ACTIONS_PLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY, SynapseBansheeActionsPlayClass))

typedef struct _SynapseBansheeActionsPlay SynapseBansheeActionsPlay;
typedef struct _SynapseBansheeActionsPlayClass SynapseBansheeActionsPlayClass;
typedef struct _SynapseBansheeActionsPlayPrivate SynapseBansheeActionsPlayPrivate;
enum  {
	SYNAPSE_BANSHEE_ACTIONS_PLAY_0_PROPERTY,
	SYNAPSE_BANSHEE_ACTIONS_PLAY_NUM_PROPERTIES
};
static GParamSpec* synapse_banshee_actions_play_properties[SYNAPSE_BANSHEE_ACTIONS_PLAY_NUM_PROPERTIES];
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define SYNAPSE_BANSHEE_ACTIONS_TYPE_PAUSE (synapse_banshee_actions_pause_get_type ())
#define SYNAPSE_BANSHEE_ACTIONS_PAUSE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_PAUSE, SynapseBansheeActionsPause))
#define SYNAPSE_BANSHEE_ACTIONS_PAUSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_PAUSE, SynapseBansheeActionsPauseClass))
#define SYNAPSE_BANSHEE_ACTIONS_IS_PAUSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_PAUSE))
#define SYNAPSE_BANSHEE_ACTIONS_IS_PAUSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_PAUSE))
#define SYNAPSE_BANSHEE_ACTIONS_PAUSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_PAUSE, SynapseBansheeActionsPauseClass))

typedef struct _SynapseBansheeActionsPause SynapseBansheeActionsPause;
typedef struct _SynapseBansheeActionsPauseClass SynapseBansheeActionsPauseClass;
typedef struct _SynapseBansheeActionsPausePrivate SynapseBansheeActionsPausePrivate;
enum  {
	SYNAPSE_BANSHEE_ACTIONS_PAUSE_0_PROPERTY,
	SYNAPSE_BANSHEE_ACTIONS_PAUSE_NUM_PROPERTIES
};
static GParamSpec* synapse_banshee_actions_pause_properties[SYNAPSE_BANSHEE_ACTIONS_PAUSE_NUM_PROPERTIES];

#define SYNAPSE_BANSHEE_ACTIONS_TYPE_NEXT (synapse_banshee_actions_next_get_type ())
#define SYNAPSE_BANSHEE_ACTIONS_NEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_NEXT, SynapseBansheeActionsNext))
#define SYNAPSE_BANSHEE_ACTIONS_NEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_NEXT, SynapseBansheeActionsNextClass))
#define SYNAPSE_BANSHEE_ACTIONS_IS_NEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_NEXT))
#define SYNAPSE_BANSHEE_ACTIONS_IS_NEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_NEXT))
#define SYNAPSE_BANSHEE_ACTIONS_NEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_NEXT, SynapseBansheeActionsNextClass))

typedef struct _SynapseBansheeActionsNext SynapseBansheeActionsNext;
typedef struct _SynapseBansheeActionsNextClass SynapseBansheeActionsNextClass;
typedef struct _SynapseBansheeActionsNextPrivate SynapseBansheeActionsNextPrivate;
enum  {
	SYNAPSE_BANSHEE_ACTIONS_NEXT_0_PROPERTY,
	SYNAPSE_BANSHEE_ACTIONS_NEXT_NUM_PROPERTIES
};
static GParamSpec* synapse_banshee_actions_next_properties[SYNAPSE_BANSHEE_ACTIONS_NEXT_NUM_PROPERTIES];

#define SYNAPSE_BANSHEE_ACTIONS_TYPE_PREVIOUS (synapse_banshee_actions_previous_get_type ())
#define SYNAPSE_BANSHEE_ACTIONS_PREVIOUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_PREVIOUS, SynapseBansheeActionsPrevious))
#define SYNAPSE_BANSHEE_ACTIONS_PREVIOUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_PREVIOUS, SynapseBansheeActionsPreviousClass))
#define SYNAPSE_BANSHEE_ACTIONS_IS_PREVIOUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_PREVIOUS))
#define SYNAPSE_BANSHEE_ACTIONS_IS_PREVIOUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_PREVIOUS))
#define SYNAPSE_BANSHEE_ACTIONS_PREVIOUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_PREVIOUS, SynapseBansheeActionsPreviousClass))

typedef struct _SynapseBansheeActionsPrevious SynapseBansheeActionsPrevious;
typedef struct _SynapseBansheeActionsPreviousClass SynapseBansheeActionsPreviousClass;
typedef struct _SynapseBansheeActionsPreviousPrivate SynapseBansheeActionsPreviousPrivate;
enum  {
	SYNAPSE_BANSHEE_ACTIONS_PREVIOUS_0_PROPERTY,
	SYNAPSE_BANSHEE_ACTIONS_PREVIOUS_NUM_PROPERTIES
};
static GParamSpec* synapse_banshee_actions_previous_properties[SYNAPSE_BANSHEE_ACTIONS_PREVIOUS_NUM_PROPERTIES];

#define SYNAPSE_BANSHEE_ACTIONS_TYPE_ADD_TO_PLAYLIST (synapse_banshee_actions_add_to_playlist_get_type ())
#define SYNAPSE_BANSHEE_ACTIONS_ADD_TO_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_ADD_TO_PLAYLIST, SynapseBansheeActionsAddToPlaylist))
#define SYNAPSE_BANSHEE_ACTIONS_ADD_TO_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_ADD_TO_PLAYLIST, SynapseBansheeActionsAddToPlaylistClass))
#define SYNAPSE_BANSHEE_ACTIONS_IS_ADD_TO_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_ADD_TO_PLAYLIST))
#define SYNAPSE_BANSHEE_ACTIONS_IS_ADD_TO_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_ADD_TO_PLAYLIST))
#define SYNAPSE_BANSHEE_ACTIONS_ADD_TO_PLAYLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_ADD_TO_PLAYLIST, SynapseBansheeActionsAddToPlaylistClass))

typedef struct _SynapseBansheeActionsAddToPlaylist SynapseBansheeActionsAddToPlaylist;
typedef struct _SynapseBansheeActionsAddToPlaylistClass SynapseBansheeActionsAddToPlaylistClass;
typedef struct _SynapseBansheeActionsAddToPlaylistPrivate SynapseBansheeActionsAddToPlaylistPrivate;
enum  {
	SYNAPSE_BANSHEE_ACTIONS_ADD_TO_PLAYLIST_0_PROPERTY,
	SYNAPSE_BANSHEE_ACTIONS_ADD_TO_PLAYLIST_NUM_PROPERTIES
};
static GParamSpec* synapse_banshee_actions_add_to_playlist_properties[SYNAPSE_BANSHEE_ACTIONS_ADD_TO_PLAYLIST_NUM_PROPERTIES];

#define SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY_NOW (synapse_banshee_actions_play_now_get_type ())
#define SYNAPSE_BANSHEE_ACTIONS_PLAY_NOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY_NOW, SynapseBansheeActionsPlayNow))
#define SYNAPSE_BANSHEE_ACTIONS_PLAY_NOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY_NOW, SynapseBansheeActionsPlayNowClass))
#define SYNAPSE_BANSHEE_ACTIONS_IS_PLAY_NOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY_NOW))
#define SYNAPSE_BANSHEE_ACTIONS_IS_PLAY_NOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY_NOW))
#define SYNAPSE_BANSHEE_ACTIONS_PLAY_NOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY_NOW, SynapseBansheeActionsPlayNowClass))

typedef struct _SynapseBansheeActionsPlayNow SynapseBansheeActionsPlayNow;
typedef struct _SynapseBansheeActionsPlayNowClass SynapseBansheeActionsPlayNowClass;
typedef struct _SynapseBansheeActionsPlayNowPrivate SynapseBansheeActionsPlayNowPrivate;
enum  {
	SYNAPSE_BANSHEE_ACTIONS_PLAY_NOW_0_PROPERTY,
	SYNAPSE_BANSHEE_ACTIONS_PLAY_NOW_NUM_PROPERTIES
};
static GParamSpec* synapse_banshee_actions_play_now_properties[SYNAPSE_BANSHEE_ACTIONS_PLAY_NOW_NUM_PROPERTIES];

struct _SynapseBansheePlayerEngineIface {
	GTypeInterface parent_iface;
	void (*play) (SynapseBansheePlayerEngine* self, GError** error);
	void (*pause) (SynapseBansheePlayerEngine* self, GError** error);
	void (*open) (SynapseBansheePlayerEngine* self, const gchar* uri, GError** error);
};

struct _SynapseBansheePlaybackControllerIface {
	GTypeInterface parent_iface;
	void (*next) (SynapseBansheePlaybackController* self, gboolean restart, GError** error);
	void (*previous) (SynapseBansheePlaybackController* self, gboolean restart, GError** error);
};

struct _SynapseBansheePlayQueueIface {
	GTypeInterface parent_iface;
	void (*enqueue_uri) (SynapseBansheePlayQueue* self, const gchar* uri, gboolean prepend, GError** error);
};

struct _SynapseBansheeActionsPrivate {
	gboolean _enabled;
	GeeList* actions;
	GeeList* matches;
};

struct _SynapseBansheeActionsSearchData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	SynapseBansheeActions* self;
	SynapseQuery q;
	SynapseResultSet* result;
	SynapseQuery _tmp0_;
	SynapseResultSet* _result_;
	SynapseResultSet* _tmp1_;
	GeeList* matchers;
	SynapseQuery _tmp2_;
	const gchar* _tmp3_;
	GeeList* _tmp4_;
	GeeList* _action_list;
	GeeList* _tmp5_;
	gint _action_size;
	GeeList* _tmp6_;
	gint _tmp7_;
	gint _tmp8_;
	gint _action_index;
	gint _tmp9_;
	gint _tmp10_;
	SynapseBansheeActionsBansheeControlMatch* action;
	GeeList* _tmp11_;
	gpointer _tmp12_;
	SynapseBansheeActionsBansheeControlMatch* _tmp13_;
	GeeList* _matcher_list;
	GeeList* _tmp14_;
	gint _matcher_size;
	GeeList* _tmp15_;
	gint _tmp16_;
	gint _tmp17_;
	gint _matcher_index;
	gint _tmp18_;
	gint _tmp19_;
	GeeMapEntry* matcher;
	GeeList* _tmp20_;
	gpointer _tmp21_;
	GeeMapEntry* _tmp22_;
	gconstpointer _tmp23_;
	gconstpointer _tmp24_;
	SynapseBansheeActionsBansheeControlMatch* _tmp25_;
	const gchar* _tmp26_;
	const gchar* _tmp27_;
	SynapseResultSet* _tmp28_;
	SynapseBansheeActionsBansheeControlMatch* _tmp29_;
	GeeMapEntry* _tmp30_;
	gconstpointer _tmp31_;
	gconstpointer _tmp32_;
	GError* _inner_error0_;
};

struct _SynapseBansheeActionsBansheeAction {
	SynapseAction parent_instance;
	SynapseBansheeActionsBansheeActionPrivate * priv;
};

struct _SynapseBansheeActionsBansheeActionClass {
	SynapseActionClass parent_class;
	gint (*get_relevancy) (SynapseBansheeActionsBansheeAction* self);
	gboolean (*action_available) (SynapseBansheeActionsBansheeAction* self);
};

struct _SynapseBansheeActionsBansheeControlMatch {
	SynapseActionMatch parent_instance;
	SynapseBansheeActionsBansheeControlMatchPrivate * priv;
};

struct _SynapseBansheeActionsBansheeControlMatchClass {
	SynapseActionMatchClass parent_class;
	gboolean (*action_available) (SynapseBansheeActionsBansheeControlMatch* self);
};

struct _SynapseBansheeActionsPlay {
	SynapseBansheeActionsBansheeControlMatch parent_instance;
	SynapseBansheeActionsPlayPrivate * priv;
};

struct _SynapseBansheeActionsPlayClass {
	SynapseBansheeActionsBansheeControlMatchClass parent_class;
};

struct _SynapseBansheeActionsPause {
	SynapseBansheeActionsBansheeControlMatch parent_instance;
	SynapseBansheeActionsPausePrivate * priv;
};

struct _SynapseBansheeActionsPauseClass {
	SynapseBansheeActionsBansheeControlMatchClass parent_class;
};

struct _SynapseBansheeActionsNext {
	SynapseBansheeActionsBansheeControlMatch parent_instance;
	SynapseBansheeActionsNextPrivate * priv;
};

struct _SynapseBansheeActionsNextClass {
	SynapseBansheeActionsBansheeControlMatchClass parent_class;
};

struct _SynapseBansheeActionsPrevious {
	SynapseBansheeActionsBansheeControlMatch parent_instance;
	SynapseBansheeActionsPreviousPrivate * priv;
};

struct _SynapseBansheeActionsPreviousClass {
	SynapseBansheeActionsBansheeControlMatchClass parent_class;
};

struct _SynapseBansheeActionsAddToPlaylist {
	SynapseBansheeActionsBansheeAction parent_instance;
	SynapseBansheeActionsAddToPlaylistPrivate * priv;
};

struct _SynapseBansheeActionsAddToPlaylistClass {
	SynapseBansheeActionsBansheeActionClass parent_class;
};

struct _SynapseBansheeActionsPlayNow {
	SynapseBansheeActionsBansheeAction parent_instance;
	SynapseBansheeActionsPlayNowPrivate * priv;
};

struct _SynapseBansheeActionsPlayNowClass {
	SynapseBansheeActionsBansheeActionClass parent_class;
};

static gint SynapseBansheeActions_private_offset;
static gpointer synapse_banshee_actions_parent_class = NULL;
static gpointer synapse_banshee_actions_banshee_action_parent_class = NULL;
static gpointer synapse_banshee_actions_banshee_control_match_parent_class = NULL;
static gpointer synapse_banshee_actions_play_parent_class = NULL;
static gpointer synapse_banshee_actions_pause_parent_class = NULL;
static gpointer synapse_banshee_actions_next_parent_class = NULL;
static gpointer synapse_banshee_actions_previous_parent_class = NULL;
static gpointer synapse_banshee_actions_add_to_playlist_parent_class = NULL;
static gpointer synapse_banshee_actions_play_now_parent_class = NULL;
static SynapseActivatableIface * synapse_banshee_actions_synapse_activatable_parent_iface = NULL;
static SynapseItemProviderIface * synapse_banshee_actions_synapse_item_provider_parent_iface = NULL;
static SynapseActionProviderIface * synapse_banshee_actions_synapse_action_provider_parent_iface = NULL;

VALA_EXTERN GType synapse_banshee_player_engine_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint synapse_banshee_player_engine_register_object (void* object,
                                                     GDBusConnection* connection,
                                                     const gchar* path,
                                                     GError** error);
VALA_EXTERN GType synapse_banshee_player_engine_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void synapse_banshee_player_engine_play (SynapseBansheePlayerEngine* self,
                                         GError** error);
VALA_EXTERN void synapse_banshee_player_engine_pause (SynapseBansheePlayerEngine* self,
                                          GError** error);
VALA_EXTERN void synapse_banshee_player_engine_open (SynapseBansheePlayerEngine* self,
                                         const gchar* uri,
                                         GError** error);
static GType synapse_banshee_player_engine_get_type_once (void);
static void synapse_banshee_player_engine_proxy_g_signal (GDBusProxy* proxy,
                                                   const gchar* sender_name,
                                                   const gchar* signal_name,
                                                   GVariant* parameters);
static void synapse_banshee_player_engine_proxy_play (SynapseBansheePlayerEngine* self,
                                               GError** error);
static void synapse_banshee_player_engine_proxy_pause (SynapseBansheePlayerEngine* self,
                                                GError** error);
static void synapse_banshee_player_engine_proxy_open (SynapseBansheePlayerEngine* self,
                                               const gchar* uri,
                                               GError** error);
static void synapse_banshee_player_engine_proxy_synapse_banshee_player_engine_interface_init (SynapseBansheePlayerEngineIface* iface);
static void _dbus_synapse_banshee_player_engine_play (SynapseBansheePlayerEngine* self,
                                               GVariant* _parameters_,
                                               GDBusMethodInvocation* invocation);
static void _dbus_synapse_banshee_player_engine_pause (SynapseBansheePlayerEngine* self,
                                                GVariant* _parameters_,
                                                GDBusMethodInvocation* invocation);
static void _dbus_synapse_banshee_player_engine_open (SynapseBansheePlayerEngine* self,
                                               GVariant* _parameters_,
                                               GDBusMethodInvocation* invocation);
static void synapse_banshee_player_engine_dbus_interface_method_call (GDBusConnection* connection,
                                                               const gchar* sender,
                                                               const gchar* object_path,
                                                               const gchar* interface_name,
                                                               const gchar* method_name,
                                                               GVariant* parameters,
                                                               GDBusMethodInvocation* invocation,
                                                               gpointer user_data);
static GVariant* synapse_banshee_player_engine_dbus_interface_get_property (GDBusConnection* connection,
                                                                     const gchar* sender,
                                                                     const gchar* object_path,
                                                                     const gchar* interface_name,
                                                                     const gchar* property_name,
                                                                     GError** error,
                                                                     gpointer user_data);
static gboolean synapse_banshee_player_engine_dbus_interface_set_property (GDBusConnection* connection,
                                                                    const gchar* sender,
                                                                    const gchar* object_path,
                                                                    const gchar* interface_name,
                                                                    const gchar* property_name,
                                                                    GVariant* value,
                                                                    GError** error,
                                                                    gpointer user_data);
static void _synapse_banshee_player_engine_unregister_object (gpointer user_data);
VALA_EXTERN GType synapse_banshee_playback_controller_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint synapse_banshee_playback_controller_register_object (void* object,
                                                           GDBusConnection* connection,
                                                           const gchar* path,
                                                           GError** error);
VALA_EXTERN GType synapse_banshee_playback_controller_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void synapse_banshee_playback_controller_next (SynapseBansheePlaybackController* self,
                                               gboolean restart,
                                               GError** error);
VALA_EXTERN void synapse_banshee_playback_controller_previous (SynapseBansheePlaybackController* self,
                                                   gboolean restart,
                                                   GError** error);
static GType synapse_banshee_playback_controller_get_type_once (void);
static void synapse_banshee_playback_controller_proxy_g_signal (GDBusProxy* proxy,
                                                         const gchar* sender_name,
                                                         const gchar* signal_name,
                                                         GVariant* parameters);
static void synapse_banshee_playback_controller_proxy_next (SynapseBansheePlaybackController* self,
                                                     gboolean restart,
                                                     GError** error);
static void synapse_banshee_playback_controller_proxy_previous (SynapseBansheePlaybackController* self,
                                                         gboolean restart,
                                                         GError** error);
static void synapse_banshee_playback_controller_proxy_synapse_banshee_playback_controller_interface_init (SynapseBansheePlaybackControllerIface* iface);
static void _dbus_synapse_banshee_playback_controller_next (SynapseBansheePlaybackController* self,
                                                     GVariant* _parameters_,
                                                     GDBusMethodInvocation* invocation);
static void _dbus_synapse_banshee_playback_controller_previous (SynapseBansheePlaybackController* self,
                                                         GVariant* _parameters_,
                                                         GDBusMethodInvocation* invocation);
static void synapse_banshee_playback_controller_dbus_interface_method_call (GDBusConnection* connection,
                                                                     const gchar* sender,
                                                                     const gchar* object_path,
                                                                     const gchar* interface_name,
                                                                     const gchar* method_name,
                                                                     GVariant* parameters,
                                                                     GDBusMethodInvocation* invocation,
                                                                     gpointer user_data);
static GVariant* synapse_banshee_playback_controller_dbus_interface_get_property (GDBusConnection* connection,
                                                                           const gchar* sender,
                                                                           const gchar* object_path,
                                                                           const gchar* interface_name,
                                                                           const gchar* property_name,
                                                                           GError** error,
                                                                           gpointer user_data);
static gboolean synapse_banshee_playback_controller_dbus_interface_set_property (GDBusConnection* connection,
                                                                          const gchar* sender,
                                                                          const gchar* object_path,
                                                                          const gchar* interface_name,
                                                                          const gchar* property_name,
                                                                          GVariant* value,
                                                                          GError** error,
                                                                          gpointer user_data);
static void _synapse_banshee_playback_controller_unregister_object (gpointer user_data);
VALA_EXTERN GType synapse_banshee_play_queue_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint synapse_banshee_play_queue_register_object (void* object,
                                                  GDBusConnection* connection,
                                                  const gchar* path,
                                                  GError** error);
VALA_EXTERN GType synapse_banshee_play_queue_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void synapse_banshee_play_queue_enqueue_uri (SynapseBansheePlayQueue* self,
                                             const gchar* uri,
                                             gboolean prepend,
                                             GError** error);
static GType synapse_banshee_play_queue_get_type_once (void);
static void synapse_banshee_play_queue_proxy_g_signal (GDBusProxy* proxy,
                                                const gchar* sender_name,
                                                const gchar* signal_name,
                                                GVariant* parameters);
static void synapse_banshee_play_queue_proxy_enqueue_uri (SynapseBansheePlayQueue* self,
                                                   const gchar* uri,
                                                   gboolean prepend,
                                                   GError** error);
static void synapse_banshee_play_queue_proxy_synapse_banshee_play_queue_interface_init (SynapseBansheePlayQueueIface* iface);
static void _dbus_synapse_banshee_play_queue_enqueue_uri (SynapseBansheePlayQueue* self,
                                                   GVariant* _parameters_,
                                                   GDBusMethodInvocation* invocation);
static void synapse_banshee_play_queue_dbus_interface_method_call (GDBusConnection* connection,
                                                            const gchar* sender,
                                                            const gchar* object_path,
                                                            const gchar* interface_name,
                                                            const gchar* method_name,
                                                            GVariant* parameters,
                                                            GDBusMethodInvocation* invocation,
                                                            gpointer user_data);
static GVariant* synapse_banshee_play_queue_dbus_interface_get_property (GDBusConnection* connection,
                                                                  const gchar* sender,
                                                                  const gchar* object_path,
                                                                  const gchar* interface_name,
                                                                  const gchar* property_name,
                                                                  GError** error,
                                                                  gpointer user_data);
static gboolean synapse_banshee_play_queue_dbus_interface_set_property (GDBusConnection* connection,
                                                                 const gchar* sender,
                                                                 const gchar* object_path,
                                                                 const gchar* interface_name,
                                                                 const gchar* property_name,
                                                                 GVariant* value,
                                                                 GError** error,
                                                                 gpointer user_data);
static void _synapse_banshee_play_queue_unregister_object (gpointer user_data);
static GType synapse_banshee_actions_banshee_action_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static GType synapse_banshee_actions_banshee_control_match_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static void synapse_banshee_actions_real_activate (SynapseActivatable* base);
static void synapse_banshee_actions_real_deactivate (SynapseActivatable* base);
static void synapse_banshee_actions_register_plugin (void);
static void _synapse_banshee_actions_register_plugin_synapse_plugin_register_func (void);
static void synapse_banshee_actions_real_search_data_free (gpointer _data);
static void synapse_banshee_actions_real_search (SynapseItemProvider* base,
                                          SynapseQuery* q,
                                          GAsyncReadyCallback _callback_,
                                          gpointer _user_data_);
static gboolean synapse_banshee_actions_real_search_co (SynapseBansheeActionsSearchData* _data_);
static gboolean synapse_banshee_actions_banshee_control_match_action_available (SynapseBansheeActionsBansheeControlMatch* self);
static SynapseResultSet* synapse_banshee_actions_real_find_for_match (SynapseActionProvider* base,
                                                               SynapseQuery* query,
                                                               SynapseMatch* match);
static gint synapse_banshee_actions_banshee_action_get_relevancy (SynapseBansheeActionsBansheeAction* self);
static gboolean synapse_banshee_actions_banshee_action_action_available (SynapseBansheeActionsBansheeAction* self);
static gint synapse_banshee_actions_banshee_action_real_get_relevancy (SynapseBansheeActionsBansheeAction* self);
static gboolean synapse_banshee_actions_banshee_action_real_action_available (SynapseBansheeActionsBansheeAction* self);
static SynapseBansheeActionsBansheeAction* synapse_banshee_actions_banshee_action_construct (GType object_type);
static GType synapse_banshee_actions_banshee_action_get_type_once (void);
static gboolean synapse_banshee_actions_banshee_control_match_real_action_available (SynapseBansheeActionsBansheeControlMatch* self);
static SynapseBansheeActionsBansheeControlMatch* synapse_banshee_actions_banshee_control_match_construct (GType object_type);
static GType synapse_banshee_actions_banshee_control_match_get_type_once (void);
static GType synapse_banshee_actions_play_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static SynapseBansheeActionsPlay* synapse_banshee_actions_play_new (void);
static SynapseBansheeActionsPlay* synapse_banshee_actions_play_construct (GType object_type);
static void synapse_banshee_actions_play_real_do_action (SynapseActionMatch* base);
static gboolean synapse_banshee_actions_play_real_action_available (SynapseBansheeActionsBansheeControlMatch* base);
static GType synapse_banshee_actions_play_get_type_once (void);
static GType synapse_banshee_actions_pause_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static SynapseBansheeActionsPause* synapse_banshee_actions_pause_new (void);
static SynapseBansheeActionsPause* synapse_banshee_actions_pause_construct (GType object_type);
static void synapse_banshee_actions_pause_real_do_action (SynapseActionMatch* base);
static GType synapse_banshee_actions_pause_get_type_once (void);
static GType synapse_banshee_actions_next_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static SynapseBansheeActionsNext* synapse_banshee_actions_next_new (void);
static SynapseBansheeActionsNext* synapse_banshee_actions_next_construct (GType object_type);
static void synapse_banshee_actions_next_real_do_action (SynapseActionMatch* base);
static GType synapse_banshee_actions_next_get_type_once (void);
static GType synapse_banshee_actions_previous_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static SynapseBansheeActionsPrevious* synapse_banshee_actions_previous_new (void);
static SynapseBansheeActionsPrevious* synapse_banshee_actions_previous_construct (GType object_type);
static void synapse_banshee_actions_previous_real_do_action (SynapseActionMatch* base);
static GType synapse_banshee_actions_previous_get_type_once (void);
static GType synapse_banshee_actions_add_to_playlist_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static SynapseBansheeActionsAddToPlaylist* synapse_banshee_actions_add_to_playlist_new (void);
static SynapseBansheeActionsAddToPlaylist* synapse_banshee_actions_add_to_playlist_construct (GType object_type);
static void synapse_banshee_actions_add_to_playlist_real_do_execute (SynapseAction* base,
                                                              SynapseMatch* match,
                                                              SynapseMatch* target);
static gboolean synapse_banshee_actions_add_to_playlist_real_valid_for_match (SynapseAction* base,
                                                                       SynapseMatch* match);
static GType synapse_banshee_actions_add_to_playlist_get_type_once (void);
static GType synapse_banshee_actions_play_now_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static SynapseBansheeActionsPlayNow* synapse_banshee_actions_play_now_new (void);
static SynapseBansheeActionsPlayNow* synapse_banshee_actions_play_now_construct (GType object_type);
static void synapse_banshee_actions_play_now_real_do_execute (SynapseAction* base,
                                                       SynapseMatch* match,
                                                       SynapseMatch* target);
static gboolean synapse_banshee_actions_play_now_real_valid_for_match (SynapseAction* base,
                                                                SynapseMatch* match);
static GType synapse_banshee_actions_play_now_get_type_once (void);
static GObject * synapse_banshee_actions_constructor (GType type,
                                               guint n_construct_properties,
                                               GObjectConstructParam * construct_properties);
static void synapse_banshee_actions_finalize (GObject * obj);
static GType synapse_banshee_actions_get_type_once (void);
static void _vala_synapse_banshee_actions_get_property (GObject * object,
                                                 guint property_id,
                                                 GValue * value,
                                                 GParamSpec * pspec);
static void _vala_synapse_banshee_actions_set_property (GObject * object,
                                                 guint property_id,
                                                 const GValue * value,
                                                 GParamSpec * pspec);

static const GDBusArgInfo * const _synapse_banshee_player_engine_dbus_arg_info_play_in[] = {NULL};
static const GDBusArgInfo * const _synapse_banshee_player_engine_dbus_arg_info_play_out[] = {NULL};
static const GDBusMethodInfo _synapse_banshee_player_engine_dbus_method_info_play = {-1, "Play", (GDBusArgInfo **) (&_synapse_banshee_player_engine_dbus_arg_info_play_in), (GDBusArgInfo **) (&_synapse_banshee_player_engine_dbus_arg_info_play_out), NULL};
static const GDBusArgInfo * const _synapse_banshee_player_engine_dbus_arg_info_pause_in[] = {NULL};
static const GDBusArgInfo * const _synapse_banshee_player_engine_dbus_arg_info_pause_out[] = {NULL};
static const GDBusMethodInfo _synapse_banshee_player_engine_dbus_method_info_pause = {-1, "Pause", (GDBusArgInfo **) (&_synapse_banshee_player_engine_dbus_arg_info_pause_in), (GDBusArgInfo **) (&_synapse_banshee_player_engine_dbus_arg_info_pause_out), NULL};
static const GDBusArgInfo _synapse_banshee_player_engine_dbus_arg_info_open_uri = {-1, "uri", "s", NULL};
static const GDBusArgInfo * const _synapse_banshee_player_engine_dbus_arg_info_open_in[] = {&_synapse_banshee_player_engine_dbus_arg_info_open_uri, NULL};
static const GDBusArgInfo * const _synapse_banshee_player_engine_dbus_arg_info_open_out[] = {NULL};
static const GDBusMethodInfo _synapse_banshee_player_engine_dbus_method_info_open = {-1, "Open", (GDBusArgInfo **) (&_synapse_banshee_player_engine_dbus_arg_info_open_in), (GDBusArgInfo **) (&_synapse_banshee_player_engine_dbus_arg_info_open_out), NULL};
static const GDBusMethodInfo * const _synapse_banshee_player_engine_dbus_method_info[] = {&_synapse_banshee_player_engine_dbus_method_info_play, &_synapse_banshee_player_engine_dbus_method_info_pause, &_synapse_banshee_player_engine_dbus_method_info_open, NULL};
static const GDBusSignalInfo * const _synapse_banshee_player_engine_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo * const _synapse_banshee_player_engine_dbus_property_info[] = {NULL};
static const GDBusInterfaceInfo _synapse_banshee_player_engine_dbus_interface_info = {-1, "org.bansheeproject.Banshee.PlayerEngine", (GDBusMethodInfo **) (&_synapse_banshee_player_engine_dbus_method_info), (GDBusSignalInfo **) (&_synapse_banshee_player_engine_dbus_signal_info), (GDBusPropertyInfo **) (&_synapse_banshee_player_engine_dbus_property_info), NULL};
static const GDBusInterfaceVTable _synapse_banshee_player_engine_dbus_interface_vtable = {synapse_banshee_player_engine_dbus_interface_method_call, synapse_banshee_player_engine_dbus_interface_get_property, synapse_banshee_player_engine_dbus_interface_set_property};
static const GDBusArgInfo _synapse_banshee_playback_controller_dbus_arg_info_next_restart = {-1, "restart", "b", NULL};
static const GDBusArgInfo * const _synapse_banshee_playback_controller_dbus_arg_info_next_in[] = {&_synapse_banshee_playback_controller_dbus_arg_info_next_restart, NULL};
static const GDBusArgInfo * const _synapse_banshee_playback_controller_dbus_arg_info_next_out[] = {NULL};
static const GDBusMethodInfo _synapse_banshee_playback_controller_dbus_method_info_next = {-1, "Next", (GDBusArgInfo **) (&_synapse_banshee_playback_controller_dbus_arg_info_next_in), (GDBusArgInfo **) (&_synapse_banshee_playback_controller_dbus_arg_info_next_out), NULL};
static const GDBusArgInfo _synapse_banshee_playback_controller_dbus_arg_info_previous_restart = {-1, "restart", "b", NULL};
static const GDBusArgInfo * const _synapse_banshee_playback_controller_dbus_arg_info_previous_in[] = {&_synapse_banshee_playback_controller_dbus_arg_info_previous_restart, NULL};
static const GDBusArgInfo * const _synapse_banshee_playback_controller_dbus_arg_info_previous_out[] = {NULL};
static const GDBusMethodInfo _synapse_banshee_playback_controller_dbus_method_info_previous = {-1, "Previous", (GDBusArgInfo **) (&_synapse_banshee_playback_controller_dbus_arg_info_previous_in), (GDBusArgInfo **) (&_synapse_banshee_playback_controller_dbus_arg_info_previous_out), NULL};
static const GDBusMethodInfo * const _synapse_banshee_playback_controller_dbus_method_info[] = {&_synapse_banshee_playback_controller_dbus_method_info_next, &_synapse_banshee_playback_controller_dbus_method_info_previous, NULL};
static const GDBusSignalInfo * const _synapse_banshee_playback_controller_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo * const _synapse_banshee_playback_controller_dbus_property_info[] = {NULL};
static const GDBusInterfaceInfo _synapse_banshee_playback_controller_dbus_interface_info = {-1, "org.bansheeproject.Banshee.PlaybackController", (GDBusMethodInfo **) (&_synapse_banshee_playback_controller_dbus_method_info), (GDBusSignalInfo **) (&_synapse_banshee_playback_controller_dbus_signal_info), (GDBusPropertyInfo **) (&_synapse_banshee_playback_controller_dbus_property_info), NULL};
static const GDBusInterfaceVTable _synapse_banshee_playback_controller_dbus_interface_vtable = {synapse_banshee_playback_controller_dbus_interface_method_call, synapse_banshee_playback_controller_dbus_interface_get_property, synapse_banshee_playback_controller_dbus_interface_set_property};
static const GDBusArgInfo _synapse_banshee_play_queue_dbus_arg_info_enqueue_uri_uri = {-1, "uri", "s", NULL};
static const GDBusArgInfo _synapse_banshee_play_queue_dbus_arg_info_enqueue_uri_prepend = {-1, "prepend", "b", NULL};
static const GDBusArgInfo * const _synapse_banshee_play_queue_dbus_arg_info_enqueue_uri_in[] = {&_synapse_banshee_play_queue_dbus_arg_info_enqueue_uri_uri, &_synapse_banshee_play_queue_dbus_arg_info_enqueue_uri_prepend, NULL};
static const GDBusArgInfo * const _synapse_banshee_play_queue_dbus_arg_info_enqueue_uri_out[] = {NULL};
static const GDBusMethodInfo _synapse_banshee_play_queue_dbus_method_info_enqueue_uri = {-1, "EnqueueUri", (GDBusArgInfo **) (&_synapse_banshee_play_queue_dbus_arg_info_enqueue_uri_in), (GDBusArgInfo **) (&_synapse_banshee_play_queue_dbus_arg_info_enqueue_uri_out), NULL};
static const GDBusMethodInfo * const _synapse_banshee_play_queue_dbus_method_info[] = {&_synapse_banshee_play_queue_dbus_method_info_enqueue_uri, NULL};
static const GDBusSignalInfo * const _synapse_banshee_play_queue_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo * const _synapse_banshee_play_queue_dbus_property_info[] = {NULL};
static const GDBusInterfaceInfo _synapse_banshee_play_queue_dbus_interface_info = {-1, "org.bansheeproject.Banshee.PlayQueue", (GDBusMethodInfo **) (&_synapse_banshee_play_queue_dbus_method_info), (GDBusSignalInfo **) (&_synapse_banshee_play_queue_dbus_signal_info), (GDBusPropertyInfo **) (&_synapse_banshee_play_queue_dbus_property_info), NULL};
static const GDBusInterfaceVTable _synapse_banshee_play_queue_dbus_interface_vtable = {synapse_banshee_play_queue_dbus_interface_method_call, synapse_banshee_play_queue_dbus_interface_get_property, synapse_banshee_play_queue_dbus_interface_set_property};

void
synapse_banshee_player_engine_play (SynapseBansheePlayerEngine* self,
                                    GError** error)
{
	SynapseBansheePlayerEngineIface* _iface_;
#line 29 "banshee-plugin.vala"
	g_return_if_fail (self != NULL);
#line 29 "banshee-plugin.vala"
	_iface_ = SYNAPSE_BANSHEE_PLAYER_ENGINE_GET_INTERFACE (self);
#line 29 "banshee-plugin.vala"
	if (_iface_->play) {
#line 29 "banshee-plugin.vala"
		_iface_->play (self, error);
#line 683 "banshee-plugin.c"
	}
}

void
synapse_banshee_player_engine_pause (SynapseBansheePlayerEngine* self,
                                     GError** error)
{
	SynapseBansheePlayerEngineIface* _iface_;
#line 30 "banshee-plugin.vala"
	g_return_if_fail (self != NULL);
#line 30 "banshee-plugin.vala"
	_iface_ = SYNAPSE_BANSHEE_PLAYER_ENGINE_GET_INTERFACE (self);
#line 30 "banshee-plugin.vala"
	if (_iface_->pause) {
#line 30 "banshee-plugin.vala"
		_iface_->pause (self, error);
#line 700 "banshee-plugin.c"
	}
}

void
synapse_banshee_player_engine_open (SynapseBansheePlayerEngine* self,
                                    const gchar* uri,
                                    GError** error)
{
	SynapseBansheePlayerEngineIface* _iface_;
#line 31 "banshee-plugin.vala"
	g_return_if_fail (self != NULL);
#line 31 "banshee-plugin.vala"
	_iface_ = SYNAPSE_BANSHEE_PLAYER_ENGINE_GET_INTERFACE (self);
#line 31 "banshee-plugin.vala"
	if (_iface_->open) {
#line 31 "banshee-plugin.vala"
		_iface_->open (self, uri, error);
#line 718 "banshee-plugin.c"
	}
}

static void
synapse_banshee_player_engine_default_init (SynapseBansheePlayerEngineIface * iface,
                                            gpointer iface_data)
{
}

static GType
synapse_banshee_player_engine_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseBansheePlayerEngineIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_banshee_player_engine_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType synapse_banshee_player_engine_type_id;
	synapse_banshee_player_engine_type_id = g_type_register_static (G_TYPE_INTERFACE, "SynapseBansheePlayerEngine", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (synapse_banshee_player_engine_type_id, G_TYPE_OBJECT);
	g_type_set_qdata (synapse_banshee_player_engine_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) synapse_banshee_player_engine_proxy_get_type);
	g_type_set_qdata (synapse_banshee_player_engine_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.bansheeproject.Banshee.PlayerEngine");
	g_type_set_qdata (synapse_banshee_player_engine_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_synapse_banshee_player_engine_dbus_interface_info));
	g_type_set_qdata (synapse_banshee_player_engine_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) synapse_banshee_player_engine_register_object);
	return synapse_banshee_player_engine_type_id;
}

GType
synapse_banshee_player_engine_get_type (void)
{
	static volatile gsize synapse_banshee_player_engine_type_id__once = 0;
	if (g_once_init_enter (&synapse_banshee_player_engine_type_id__once)) {
		GType synapse_banshee_player_engine_type_id;
		synapse_banshee_player_engine_type_id = synapse_banshee_player_engine_get_type_once ();
		g_once_init_leave (&synapse_banshee_player_engine_type_id__once, synapse_banshee_player_engine_type_id);
	}
	return synapse_banshee_player_engine_type_id__once;
}

G_DEFINE_TYPE_EXTENDED (SynapseBansheePlayerEngineProxy, synapse_banshee_player_engine_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (SYNAPSE_TYPE_BANSHEE_PLAYER_ENGINE, synapse_banshee_player_engine_proxy_synapse_banshee_player_engine_interface_init) )
static void
synapse_banshee_player_engine_proxy_class_init (SynapseBansheePlayerEngineProxyClass* klass)
{
	G_DBUS_PROXY_CLASS (klass)->g_signal = synapse_banshee_player_engine_proxy_g_signal;
}

static void
synapse_banshee_player_engine_proxy_g_signal (GDBusProxy* proxy,
                                              const gchar* sender_name,
                                              const gchar* signal_name,
                                              GVariant* parameters)
{
}

static void
synapse_banshee_player_engine_proxy_init (SynapseBansheePlayerEngineProxy* self)
{
	g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_synapse_banshee_player_engine_dbus_interface_info));
}

static void
synapse_banshee_player_engine_proxy_play (SynapseBansheePlayerEngine* self,
                                          GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.bansheeproject.Banshee.PlayerEngine", "Play");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
synapse_banshee_player_engine_proxy_pause (SynapseBansheePlayerEngine* self,
                                           GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.bansheeproject.Banshee.PlayerEngine", "Pause");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
synapse_banshee_player_engine_proxy_open (SynapseBansheePlayerEngine* self,
                                          const gchar* uri,
                                          GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.bansheeproject.Banshee.PlayerEngine", "Open");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (uri));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
synapse_banshee_player_engine_proxy_synapse_banshee_player_engine_interface_init (SynapseBansheePlayerEngineIface* iface)
{
	iface->play = synapse_banshee_player_engine_proxy_play;
	iface->pause = synapse_banshee_player_engine_proxy_pause;
	iface->open = synapse_banshee_player_engine_proxy_open;
}

static void
_dbus_synapse_banshee_player_engine_play (SynapseBansheePlayerEngine* self,
                                          GVariant* _parameters_,
                                          GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	synapse_banshee_player_engine_play (self, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}

static void
_dbus_synapse_banshee_player_engine_pause (SynapseBansheePlayerEngine* self,
                                           GVariant* _parameters_,
                                           GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	synapse_banshee_player_engine_pause (self, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}

static void
_dbus_synapse_banshee_player_engine_open (SynapseBansheePlayerEngine* self,
                                          GVariant* _parameters_,
                                          GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gchar* uri = NULL;
	GVariant* _tmp0_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp0_ = g_variant_iter_next_value (&_arguments_iter);
	uri = g_variant_dup_string (_tmp0_, NULL);
	g_variant_unref (_tmp0_);
	synapse_banshee_player_engine_open (self, uri, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (uri);
	;
}

static void
synapse_banshee_player_engine_dbus_interface_method_call (GDBusConnection* connection,
                                                          const gchar* sender,
                                                          const gchar* object_path,
                                                          const gchar* interface_name,
                                                          const gchar* method_name,
                                                          GVariant* parameters,
                                                          GDBusMethodInvocation* invocation,
                                                          gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "Play") == 0) {
		_dbus_synapse_banshee_player_engine_play (object, parameters, invocation);
	} else if (strcmp (method_name, "Pause") == 0) {
		_dbus_synapse_banshee_player_engine_pause (object, parameters, invocation);
	} else if (strcmp (method_name, "Open") == 0) {
		_dbus_synapse_banshee_player_engine_open (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}

static GVariant*
synapse_banshee_player_engine_dbus_interface_get_property (GDBusConnection* connection,
                                                           const gchar* sender,
                                                           const gchar* object_path,
                                                           const gchar* interface_name,
                                                           const gchar* property_name,
                                                           GError** error,
                                                           gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return NULL;
}

static gboolean
synapse_banshee_player_engine_dbus_interface_set_property (GDBusConnection* connection,
                                                           const gchar* sender,
                                                           const gchar* object_path,
                                                           const gchar* interface_name,
                                                           const gchar* property_name,
                                                           GVariant* value,
                                                           GError** error,
                                                           gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return FALSE;
}

guint
synapse_banshee_player_engine_register_object (gpointer object,
                                               GDBusConnection* connection,
                                               const gchar* path,
                                               GError** error)
{
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_synapse_banshee_player_engine_dbus_interface_info), &_synapse_banshee_player_engine_dbus_interface_vtable, data, _synapse_banshee_player_engine_unregister_object, error);
	if (!result) {
		return 0;
	}
	return result;
}

static void
_synapse_banshee_player_engine_unregister_object (gpointer user_data)
{
	gpointer* data;
	data = user_data;
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}

void
synapse_banshee_playback_controller_next (SynapseBansheePlaybackController* self,
                                          gboolean restart,
                                          GError** error)
{
	SynapseBansheePlaybackControllerIface* _iface_;
#line 39 "banshee-plugin.vala"
	g_return_if_fail (self != NULL);
#line 39 "banshee-plugin.vala"
	_iface_ = SYNAPSE_BANSHEE_PLAYBACK_CONTROLLER_GET_INTERFACE (self);
#line 39 "banshee-plugin.vala"
	if (_iface_->next) {
#line 39 "banshee-plugin.vala"
		_iface_->next (self, restart, error);
#line 1042 "banshee-plugin.c"
	}
}

void
synapse_banshee_playback_controller_previous (SynapseBansheePlaybackController* self,
                                              gboolean restart,
                                              GError** error)
{
	SynapseBansheePlaybackControllerIface* _iface_;
#line 40 "banshee-plugin.vala"
	g_return_if_fail (self != NULL);
#line 40 "banshee-plugin.vala"
	_iface_ = SYNAPSE_BANSHEE_PLAYBACK_CONTROLLER_GET_INTERFACE (self);
#line 40 "banshee-plugin.vala"
	if (_iface_->previous) {
#line 40 "banshee-plugin.vala"
		_iface_->previous (self, restart, error);
#line 1060 "banshee-plugin.c"
	}
}

static void
synapse_banshee_playback_controller_default_init (SynapseBansheePlaybackControllerIface * iface,
                                                  gpointer iface_data)
{
}

static GType
synapse_banshee_playback_controller_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseBansheePlaybackControllerIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_banshee_playback_controller_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType synapse_banshee_playback_controller_type_id;
	synapse_banshee_playback_controller_type_id = g_type_register_static (G_TYPE_INTERFACE, "SynapseBansheePlaybackController", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (synapse_banshee_playback_controller_type_id, G_TYPE_OBJECT);
	g_type_set_qdata (synapse_banshee_playback_controller_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) synapse_banshee_playback_controller_proxy_get_type);
	g_type_set_qdata (synapse_banshee_playback_controller_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.bansheeproject.Banshee.PlaybackController");
	g_type_set_qdata (synapse_banshee_playback_controller_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_synapse_banshee_playback_controller_dbus_interface_info));
	g_type_set_qdata (synapse_banshee_playback_controller_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) synapse_banshee_playback_controller_register_object);
	return synapse_banshee_playback_controller_type_id;
}

GType
synapse_banshee_playback_controller_get_type (void)
{
	static volatile gsize synapse_banshee_playback_controller_type_id__once = 0;
	if (g_once_init_enter (&synapse_banshee_playback_controller_type_id__once)) {
		GType synapse_banshee_playback_controller_type_id;
		synapse_banshee_playback_controller_type_id = synapse_banshee_playback_controller_get_type_once ();
		g_once_init_leave (&synapse_banshee_playback_controller_type_id__once, synapse_banshee_playback_controller_type_id);
	}
	return synapse_banshee_playback_controller_type_id__once;
}

G_DEFINE_TYPE_EXTENDED (SynapseBansheePlaybackControllerProxy, synapse_banshee_playback_controller_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (SYNAPSE_TYPE_BANSHEE_PLAYBACK_CONTROLLER, synapse_banshee_playback_controller_proxy_synapse_banshee_playback_controller_interface_init) )
static void
synapse_banshee_playback_controller_proxy_class_init (SynapseBansheePlaybackControllerProxyClass* klass)
{
	G_DBUS_PROXY_CLASS (klass)->g_signal = synapse_banshee_playback_controller_proxy_g_signal;
}

static void
synapse_banshee_playback_controller_proxy_g_signal (GDBusProxy* proxy,
                                                    const gchar* sender_name,
                                                    const gchar* signal_name,
                                                    GVariant* parameters)
{
}

static void
synapse_banshee_playback_controller_proxy_init (SynapseBansheePlaybackControllerProxy* self)
{
	g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_synapse_banshee_playback_controller_dbus_interface_info));
}

static void
synapse_banshee_playback_controller_proxy_next (SynapseBansheePlaybackController* self,
                                                gboolean restart,
                                                GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.bansheeproject.Banshee.PlaybackController", "Next");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_boolean (restart));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
synapse_banshee_playback_controller_proxy_previous (SynapseBansheePlaybackController* self,
                                                    gboolean restart,
                                                    GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.bansheeproject.Banshee.PlaybackController", "Previous");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_boolean (restart));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
synapse_banshee_playback_controller_proxy_synapse_banshee_playback_controller_interface_init (SynapseBansheePlaybackControllerIface* iface)
{
	iface->next = synapse_banshee_playback_controller_proxy_next;
	iface->previous = synapse_banshee_playback_controller_proxy_previous;
}

static void
_dbus_synapse_banshee_playback_controller_next (SynapseBansheePlaybackController* self,
                                                GVariant* _parameters_,
                                                GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gboolean restart = FALSE;
	GVariant* _tmp1_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp1_ = g_variant_iter_next_value (&_arguments_iter);
	restart = g_variant_get_boolean (_tmp1_);
	g_variant_unref (_tmp1_);
	synapse_banshee_playback_controller_next (self, restart, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}

static void
_dbus_synapse_banshee_playback_controller_previous (SynapseBansheePlaybackController* self,
                                                    GVariant* _parameters_,
                                                    GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gboolean restart = FALSE;
	GVariant* _tmp2_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp2_ = g_variant_iter_next_value (&_arguments_iter);
	restart = g_variant_get_boolean (_tmp2_);
	g_variant_unref (_tmp2_);
	synapse_banshee_playback_controller_previous (self, restart, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}

static void
synapse_banshee_playback_controller_dbus_interface_method_call (GDBusConnection* connection,
                                                                const gchar* sender,
                                                                const gchar* object_path,
                                                                const gchar* interface_name,
                                                                const gchar* method_name,
                                                                GVariant* parameters,
                                                                GDBusMethodInvocation* invocation,
                                                                gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "Next") == 0) {
		_dbus_synapse_banshee_playback_controller_next (object, parameters, invocation);
	} else if (strcmp (method_name, "Previous") == 0) {
		_dbus_synapse_banshee_playback_controller_previous (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}

static GVariant*
synapse_banshee_playback_controller_dbus_interface_get_property (GDBusConnection* connection,
                                                                 const gchar* sender,
                                                                 const gchar* object_path,
                                                                 const gchar* interface_name,
                                                                 const gchar* property_name,
                                                                 GError** error,
                                                                 gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return NULL;
}

static gboolean
synapse_banshee_playback_controller_dbus_interface_set_property (GDBusConnection* connection,
                                                                 const gchar* sender,
                                                                 const gchar* object_path,
                                                                 const gchar* interface_name,
                                                                 const gchar* property_name,
                                                                 GVariant* value,
                                                                 GError** error,
                                                                 gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return FALSE;
}

guint
synapse_banshee_playback_controller_register_object (gpointer object,
                                                     GDBusConnection* connection,
                                                     const gchar* path,
                                                     GError** error)
{
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_synapse_banshee_playback_controller_dbus_interface_info), &_synapse_banshee_playback_controller_dbus_interface_vtable, data, _synapse_banshee_playback_controller_unregister_object, error);
	if (!result) {
		return 0;
	}
	return result;
}

static void
_synapse_banshee_playback_controller_unregister_object (gpointer user_data)
{
	gpointer* data;
	data = user_data;
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}

void
synapse_banshee_play_queue_enqueue_uri (SynapseBansheePlayQueue* self,
                                        const gchar* uri,
                                        gboolean prepend,
                                        GError** error)
{
	SynapseBansheePlayQueueIface* _iface_;
#line 48 "banshee-plugin.vala"
	g_return_if_fail (self != NULL);
#line 48 "banshee-plugin.vala"
	_iface_ = SYNAPSE_BANSHEE_PLAY_QUEUE_GET_INTERFACE (self);
#line 48 "banshee-plugin.vala"
	if (_iface_->enqueue_uri) {
#line 48 "banshee-plugin.vala"
		_iface_->enqueue_uri (self, uri, prepend, error);
#line 1337 "banshee-plugin.c"
	}
}

static void
synapse_banshee_play_queue_default_init (SynapseBansheePlayQueueIface * iface,
                                         gpointer iface_data)
{
}

static GType
synapse_banshee_play_queue_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseBansheePlayQueueIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_banshee_play_queue_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType synapse_banshee_play_queue_type_id;
	synapse_banshee_play_queue_type_id = g_type_register_static (G_TYPE_INTERFACE, "SynapseBansheePlayQueue", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (synapse_banshee_play_queue_type_id, G_TYPE_OBJECT);
	g_type_set_qdata (synapse_banshee_play_queue_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) synapse_banshee_play_queue_proxy_get_type);
	g_type_set_qdata (synapse_banshee_play_queue_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.bansheeproject.Banshee.PlayQueue");
	g_type_set_qdata (synapse_banshee_play_queue_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_synapse_banshee_play_queue_dbus_interface_info));
	g_type_set_qdata (synapse_banshee_play_queue_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) synapse_banshee_play_queue_register_object);
	return synapse_banshee_play_queue_type_id;
}

GType
synapse_banshee_play_queue_get_type (void)
{
	static volatile gsize synapse_banshee_play_queue_type_id__once = 0;
	if (g_once_init_enter (&synapse_banshee_play_queue_type_id__once)) {
		GType synapse_banshee_play_queue_type_id;
		synapse_banshee_play_queue_type_id = synapse_banshee_play_queue_get_type_once ();
		g_once_init_leave (&synapse_banshee_play_queue_type_id__once, synapse_banshee_play_queue_type_id);
	}
	return synapse_banshee_play_queue_type_id__once;
}

G_DEFINE_TYPE_EXTENDED (SynapseBansheePlayQueueProxy, synapse_banshee_play_queue_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (SYNAPSE_TYPE_BANSHEE_PLAY_QUEUE, synapse_banshee_play_queue_proxy_synapse_banshee_play_queue_interface_init) )
static void
synapse_banshee_play_queue_proxy_class_init (SynapseBansheePlayQueueProxyClass* klass)
{
	G_DBUS_PROXY_CLASS (klass)->g_signal = synapse_banshee_play_queue_proxy_g_signal;
}

static void
synapse_banshee_play_queue_proxy_g_signal (GDBusProxy* proxy,
                                           const gchar* sender_name,
                                           const gchar* signal_name,
                                           GVariant* parameters)
{
}

static void
synapse_banshee_play_queue_proxy_init (SynapseBansheePlayQueueProxy* self)
{
	g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_synapse_banshee_play_queue_dbus_interface_info));
}

static void
synapse_banshee_play_queue_proxy_enqueue_uri (SynapseBansheePlayQueue* self,
                                              const gchar* uri,
                                              gboolean prepend,
                                              GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.bansheeproject.Banshee.PlayQueue", "EnqueueUri");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (uri));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_boolean (prepend));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
synapse_banshee_play_queue_proxy_synapse_banshee_play_queue_interface_init (SynapseBansheePlayQueueIface* iface)
{
	iface->enqueue_uri = synapse_banshee_play_queue_proxy_enqueue_uri;
}

static void
_dbus_synapse_banshee_play_queue_enqueue_uri (SynapseBansheePlayQueue* self,
                                              GVariant* _parameters_,
                                              GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gchar* uri = NULL;
	GVariant* _tmp3_;
	gboolean prepend = FALSE;
	GVariant* _tmp4_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp3_ = g_variant_iter_next_value (&_arguments_iter);
	uri = g_variant_dup_string (_tmp3_, NULL);
	g_variant_unref (_tmp3_);
	_tmp4_ = g_variant_iter_next_value (&_arguments_iter);
	prepend = g_variant_get_boolean (_tmp4_);
	g_variant_unref (_tmp4_);
	synapse_banshee_play_queue_enqueue_uri (self, uri, prepend, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (uri);
	;
}

static void
synapse_banshee_play_queue_dbus_interface_method_call (GDBusConnection* connection,
                                                       const gchar* sender,
                                                       const gchar* object_path,
                                                       const gchar* interface_name,
                                                       const gchar* method_name,
                                                       GVariant* parameters,
                                                       GDBusMethodInvocation* invocation,
                                                       gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "EnqueueUri") == 0) {
		_dbus_synapse_banshee_play_queue_enqueue_uri (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}

static GVariant*
synapse_banshee_play_queue_dbus_interface_get_property (GDBusConnection* connection,
                                                        const gchar* sender,
                                                        const gchar* object_path,
                                                        const gchar* interface_name,
                                                        const gchar* property_name,
                                                        GError** error,
                                                        gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return NULL;
}

static gboolean
synapse_banshee_play_queue_dbus_interface_set_property (GDBusConnection* connection,
                                                        const gchar* sender,
                                                        const gchar* object_path,
                                                        const gchar* interface_name,
                                                        const gchar* property_name,
                                                        GVariant* value,
                                                        GError** error,
                                                        gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return FALSE;
}

guint
synapse_banshee_play_queue_register_object (gpointer object,
                                            GDBusConnection* connection,
                                            const gchar* path,
                                            GError** error)
{
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_synapse_banshee_play_queue_dbus_interface_info), &_synapse_banshee_play_queue_dbus_interface_vtable, data, _synapse_banshee_play_queue_unregister_object, error);
	if (!result) {
		return 0;
	}
	return result;
}

static void
_synapse_banshee_play_queue_unregister_object (gpointer user_data)
{
	gpointer* data;
	data = user_data;
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}

static inline gpointer
synapse_banshee_actions_get_instance_private (SynapseBansheeActions* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseBansheeActions_private_offset);
}

static void
synapse_banshee_actions_real_activate (SynapseActivatable* base)
{
	SynapseBansheeActions * self;
#line 55 "banshee-plugin.vala"
	self = (SynapseBansheeActions*) base;
#line 1562 "banshee-plugin.c"
}

static void
synapse_banshee_actions_real_deactivate (SynapseActivatable* base)
{
	SynapseBansheeActions * self;
#line 60 "banshee-plugin.vala"
	self = (SynapseBansheeActions*) base;
#line 1571 "banshee-plugin.c"
}

static void
_synapse_banshee_actions_register_plugin_synapse_plugin_register_func (void)
{
#line 67 "banshee-plugin.vala"
	synapse_banshee_actions_register_plugin ();
#line 1579 "banshee-plugin.c"
}

static void
synapse_banshee_actions_register_plugin (void)
{
	gboolean _tmp0_ = FALSE;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gboolean _tmp3_;
	SynapsePluginRegistry* _tmp6_;
	SynapsePluginRegistry* _tmp7_;
#line 73 "banshee-plugin.vala"
	_tmp1_ = g_find_program_in_path ("banshee");
#line 73 "banshee-plugin.vala"
	_tmp2_ = _tmp1_;
#line 73 "banshee-plugin.vala"
	_tmp3_ = _tmp2_ != NULL;
#line 73 "banshee-plugin.vala"
	_g_free0 (_tmp2_);
#line 73 "banshee-plugin.vala"
	if (_tmp3_) {
#line 73 "banshee-plugin.vala"
		_tmp0_ = TRUE;
#line 1603 "banshee-plugin.c"
	} else {
		gchar* _tmp4_;
		gchar* _tmp5_;
#line 74 "banshee-plugin.vala"
		_tmp4_ = g_find_program_in_path ("banshee-1");
#line 74 "banshee-plugin.vala"
		_tmp5_ = _tmp4_;
#line 74 "banshee-plugin.vala"
		_tmp0_ = _tmp5_ != NULL;
#line 74 "banshee-plugin.vala"
		_g_free0 (_tmp5_);
#line 1615 "banshee-plugin.c"
	}
#line 67 "banshee-plugin.vala"
	_tmp6_ = synapse_plugin_registry_get_default ();
#line 67 "banshee-plugin.vala"
	_tmp7_ = _tmp6_;
#line 67 "banshee-plugin.vala"
	synapse_plugin_registry_register_plugin (_tmp7_, SYNAPSE_TYPE_BANSHEE_ACTIONS, "Banshee", _ ("Control Banshee and add items to playlists."), "banshee", _synapse_banshee_actions_register_plugin_synapse_plugin_register_func, _tmp0_, _ ("Banshee is not installed"));
#line 67 "banshee-plugin.vala"
	_g_object_unref0 (_tmp7_);
#line 1625 "banshee-plugin.c"
}

static void
synapse_banshee_actions_real_search_data_free (gpointer _data)
{
	SynapseBansheeActionsSearchData* _data_;
	_data_ = _data;
#line 51 "banshee-plugin.vala"
	synapse_query_destroy (&_data_->q);
#line 51 "banshee-plugin.vala"
	_g_object_unref0 (_data_->result);
#line 51 "banshee-plugin.vala"
	_g_object_unref0 (_data_->self);
#line 51 "banshee-plugin.vala"
	g_slice_free (SynapseBansheeActionsSearchData, _data_);
#line 1641 "banshee-plugin.c"
}

static gpointer
_g_object_ref0 (gpointer self)
{
#line 51 "banshee-plugin.vala"
	return self ? g_object_ref (self) : NULL;
#line 1649 "banshee-plugin.c"
}

static void
synapse_banshee_actions_real_search (SynapseItemProvider* base,
                                     SynapseQuery* q,
                                     GAsyncReadyCallback _callback_,
                                     gpointer _user_data_)
{
	SynapseBansheeActions * self;
	SynapseBansheeActionsSearchData* _data_;
	SynapseBansheeActions* _tmp0_;
	SynapseQuery _tmp1_;
	SynapseQuery _tmp2_;
	SynapseQuery _tmp3_ = {0};
#line 51 "banshee-plugin.vala"
	g_return_if_fail (q != NULL);
#line 51 "banshee-plugin.vala"
	self = (SynapseBansheeActions*) base;
#line 51 "banshee-plugin.vala"
	_data_ = g_slice_new0 (SynapseBansheeActionsSearchData);
#line 51 "banshee-plugin.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
#line 51 "banshee-plugin.vala"
	g_task_set_task_data (_data_->_async_result, _data_, synapse_banshee_actions_real_search_data_free);
#line 51 "banshee-plugin.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 51 "banshee-plugin.vala"
	_data_->self = _tmp0_;
#line 51 "banshee-plugin.vala"
	_tmp1_ = *q;
#line 51 "banshee-plugin.vala"
	_tmp2_ = _tmp1_;
#line 51 "banshee-plugin.vala"
	synapse_query_copy (&_tmp2_, &_tmp3_);
#line 51 "banshee-plugin.vala"
	synapse_query_destroy (&_data_->q);
#line 51 "banshee-plugin.vala"
	_data_->q = _tmp3_;
#line 51 "banshee-plugin.vala"
	synapse_banshee_actions_real_search_co (_data_);
#line 1690 "banshee-plugin.c"
}

static SynapseResultSet*
synapse_banshee_actions_search_finish (SynapseItemProvider* base,
                                       GAsyncResult* _res_,
                                       GError** error)
{
	SynapseResultSet* result;
	SynapseBansheeActionsSearchData* _data_;
#line 51 "banshee-plugin.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
#line 51 "banshee-plugin.vala"
	if (NULL == _data_) {
#line 51 "banshee-plugin.vala"
		return NULL;
#line 1706 "banshee-plugin.c"
	}
#line 51 "banshee-plugin.vala"
	result = _data_->result;
#line 51 "banshee-plugin.vala"
	_data_->result = NULL;
#line 51 "banshee-plugin.vala"
	return result;
#line 1714 "banshee-plugin.c"
}

static gboolean
synapse_banshee_actions_real_search_co (SynapseBansheeActionsSearchData* _data_)
{
#line 291 "banshee-plugin.vala"
	switch (_data_->_state_) {
#line 291 "banshee-plugin.vala"
		case 0:
#line 1724 "banshee-plugin.c"
		goto _state_0;
		default:
#line 291 "banshee-plugin.vala"
		g_assert_not_reached ();
#line 1729 "banshee-plugin.c"
	}
	_state_0:
#line 294 "banshee-plugin.vala"
	_data_->_tmp0_ = _data_->q;
#line 294 "banshee-plugin.vala"
	if (!((_data_->_tmp0_.query_type & SYNAPSE_QUERY_FLAGS_ACTIONS) == SYNAPSE_QUERY_FLAGS_ACTIONS)) {
#line 294 "banshee-plugin.vala"
		_data_->result = NULL;
#line 294 "banshee-plugin.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 294 "banshee-plugin.vala"
		if (_data_->_state_ != 0) {
#line 294 "banshee-plugin.vala"
			while (!g_task_get_completed (_data_->_async_result)) {
#line 294 "banshee-plugin.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 1746 "banshee-plugin.c"
			}
		}
#line 294 "banshee-plugin.vala"
		g_object_unref (_data_->_async_result);
#line 294 "banshee-plugin.vala"
		return FALSE;
#line 1753 "banshee-plugin.c"
	}
#line 296 "banshee-plugin.vala"
	_data_->_tmp1_ = synapse_result_set_new ();
#line 296 "banshee-plugin.vala"
	_data_->_result_ = _data_->_tmp1_;
#line 298 "banshee-plugin.vala"
	_data_->_tmp2_ = _data_->q;
#line 298 "banshee-plugin.vala"
	_data_->_tmp3_ = _data_->_tmp2_.query_string;
#line 298 "banshee-plugin.vala"
	_data_->_tmp4_ = synapse_query_get_matchers_for_query (_data_->_tmp3_, 0, G_REGEX_OPTIMIZE | G_REGEX_CASELESS);
#line 298 "banshee-plugin.vala"
	_data_->matchers = _data_->_tmp4_;
#line 1767 "banshee-plugin.c"
	{
#line 301 "banshee-plugin.vala"
		_data_->_tmp5_ = _data_->self->priv->matches;
#line 301 "banshee-plugin.vala"
		_data_->_action_list = _data_->_tmp5_;
#line 301 "banshee-plugin.vala"
		_data_->_tmp6_ = _data_->_action_list;
#line 301 "banshee-plugin.vala"
		_data_->_tmp7_ = gee_collection_get_size ((GeeCollection*) _data_->_tmp6_);
#line 301 "banshee-plugin.vala"
		_data_->_tmp8_ = _data_->_tmp7_;
#line 301 "banshee-plugin.vala"
		_data_->_action_size = _data_->_tmp8_;
#line 301 "banshee-plugin.vala"
		_data_->_action_index = -1;
#line 301 "banshee-plugin.vala"
		while (TRUE) {
#line 301 "banshee-plugin.vala"
			_data_->_action_index = _data_->_action_index + 1;
#line 301 "banshee-plugin.vala"
			_data_->_tmp9_ = _data_->_action_index;
#line 301 "banshee-plugin.vala"
			_data_->_tmp10_ = _data_->_action_size;
#line 301 "banshee-plugin.vala"
			if (!(_data_->_tmp9_ < _data_->_tmp10_)) {
#line 301 "banshee-plugin.vala"
				break;
#line 1795 "banshee-plugin.c"
			}
#line 301 "banshee-plugin.vala"
			_data_->_tmp11_ = _data_->_action_list;
#line 301 "banshee-plugin.vala"
			_data_->_tmp12_ = gee_list_get (_data_->_tmp11_, _data_->_action_index);
#line 301 "banshee-plugin.vala"
			_data_->action = (SynapseBansheeActionsBansheeControlMatch*) _data_->_tmp12_;
#line 303 "banshee-plugin.vala"
			_data_->_tmp13_ = _data_->action;
#line 303 "banshee-plugin.vala"
			if (!synapse_banshee_actions_banshee_control_match_action_available (_data_->_tmp13_)) {
#line 303 "banshee-plugin.vala"
				_g_object_unref0 (_data_->action);
#line 303 "banshee-plugin.vala"
				continue;
#line 1811 "banshee-plugin.c"
			}
			{
#line 304 "banshee-plugin.vala"
				_data_->_tmp14_ = _data_->matchers;
#line 304 "banshee-plugin.vala"
				_data_->_matcher_list = _data_->_tmp14_;
#line 304 "banshee-plugin.vala"
				_data_->_tmp15_ = _data_->_matcher_list;
#line 304 "banshee-plugin.vala"
				_data_->_tmp16_ = gee_collection_get_size ((GeeCollection*) _data_->_tmp15_);
#line 304 "banshee-plugin.vala"
				_data_->_tmp17_ = _data_->_tmp16_;
#line 304 "banshee-plugin.vala"
				_data_->_matcher_size = _data_->_tmp17_;
#line 304 "banshee-plugin.vala"
				_data_->_matcher_index = -1;
#line 304 "banshee-plugin.vala"
				while (TRUE) {
#line 304 "banshee-plugin.vala"
					_data_->_matcher_index = _data_->_matcher_index + 1;
#line 304 "banshee-plugin.vala"
					_data_->_tmp18_ = _data_->_matcher_index;
#line 304 "banshee-plugin.vala"
					_data_->_tmp19_ = _data_->_matcher_size;
#line 304 "banshee-plugin.vala"
					if (!(_data_->_tmp18_ < _data_->_tmp19_)) {
#line 304 "banshee-plugin.vala"
						break;
#line 1840 "banshee-plugin.c"
					}
#line 304 "banshee-plugin.vala"
					_data_->_tmp20_ = _data_->_matcher_list;
#line 304 "banshee-plugin.vala"
					_data_->_tmp21_ = gee_list_get (_data_->_tmp20_, _data_->_matcher_index);
#line 304 "banshee-plugin.vala"
					_data_->matcher = (GeeMapEntry*) _data_->_tmp21_;
#line 306 "banshee-plugin.vala"
					_data_->_tmp22_ = _data_->matcher;
#line 306 "banshee-plugin.vala"
					_data_->_tmp23_ = gee_map_entry_get_key (_data_->_tmp22_);
#line 306 "banshee-plugin.vala"
					_data_->_tmp24_ = _data_->_tmp23_;
#line 306 "banshee-plugin.vala"
					_data_->_tmp25_ = _data_->action;
#line 306 "banshee-plugin.vala"
					_data_->_tmp26_ = synapse_match_get_title ((SynapseMatch*) _data_->_tmp25_);
#line 306 "banshee-plugin.vala"
					_data_->_tmp27_ = _data_->_tmp26_;
#line 306 "banshee-plugin.vala"
					if (g_regex_match ((GRegex*) _data_->_tmp24_, _data_->_tmp27_, 0, NULL)) {
#line 308 "banshee-plugin.vala"
						_data_->_tmp28_ = _data_->_result_;
#line 308 "banshee-plugin.vala"
						_data_->_tmp29_ = _data_->action;
#line 308 "banshee-plugin.vala"
						_data_->_tmp30_ = _data_->matcher;
#line 308 "banshee-plugin.vala"
						_data_->_tmp31_ = gee_map_entry_get_value (_data_->_tmp30_);
#line 308 "banshee-plugin.vala"
						_data_->_tmp32_ = _data_->_tmp31_;
#line 308 "banshee-plugin.vala"
						synapse_result_set_add (_data_->_tmp28_, (SynapseMatch*) _data_->_tmp29_, ((gint) ((gintptr) _data_->_tmp32_)) - SYNAPSE_MATCH_SCORE_INCREMENT_SMALL);
#line 309 "banshee-plugin.vala"
						_g_object_unref0 (_data_->matcher);
#line 309 "banshee-plugin.vala"
						break;
#line 1878 "banshee-plugin.c"
					}
#line 304 "banshee-plugin.vala"
					_g_object_unref0 (_data_->matcher);
#line 1882 "banshee-plugin.c"
				}
			}
#line 301 "banshee-plugin.vala"
			_g_object_unref0 (_data_->action);
#line 1887 "banshee-plugin.c"
		}
	}
#line 314 "banshee-plugin.vala"
	synapse_query_check_cancellable (&_data_->q, &_data_->_inner_error0_);
#line 314 "banshee-plugin.vala"
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
#line 314 "banshee-plugin.vala"
		if (_data_->_inner_error0_->domain == SYNAPSE_SEARCH_ERROR) {
#line 314 "banshee-plugin.vala"
			g_task_return_error (_data_->_async_result, _data_->_inner_error0_);
#line 314 "banshee-plugin.vala"
			_g_object_unref0 (_data_->matchers);
#line 314 "banshee-plugin.vala"
			_g_object_unref0 (_data_->_result_);
#line 314 "banshee-plugin.vala"
			g_object_unref (_data_->_async_result);
#line 314 "banshee-plugin.vala"
			return FALSE;
#line 1906 "banshee-plugin.c"
		} else {
#line 314 "banshee-plugin.vala"
			_g_object_unref0 (_data_->matchers);
#line 314 "banshee-plugin.vala"
			_g_object_unref0 (_data_->_result_);
#line 314 "banshee-plugin.vala"
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error0_->message, g_quark_to_string (_data_->_inner_error0_->domain), _data_->_inner_error0_->code);
#line 314 "banshee-plugin.vala"
			g_clear_error (&_data_->_inner_error0_);
#line 314 "banshee-plugin.vala"
			g_object_unref (_data_->_async_result);
#line 314 "banshee-plugin.vala"
			return FALSE;
#line 1920 "banshee-plugin.c"
		}
	}
#line 316 "banshee-plugin.vala"
	_data_->result = _data_->_result_;
#line 316 "banshee-plugin.vala"
	_g_object_unref0 (_data_->matchers);
#line 316 "banshee-plugin.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 316 "banshee-plugin.vala"
	if (_data_->_state_ != 0) {
#line 316 "banshee-plugin.vala"
		while (!g_task_get_completed (_data_->_async_result)) {
#line 316 "banshee-plugin.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 1935 "banshee-plugin.c"
		}
	}
#line 316 "banshee-plugin.vala"
	g_object_unref (_data_->_async_result);
#line 316 "banshee-plugin.vala"
	return FALSE;
#line 1942 "banshee-plugin.c"
}

static SynapseResultSet*
synapse_banshee_actions_real_find_for_match (SynapseActionProvider* base,
                                             SynapseQuery* query,
                                             SynapseMatch* match)
{
	SynapseBansheeActions * self;
	gboolean query_empty = FALSE;
	SynapseQuery _tmp0_;
	const gchar* _tmp1_;
	SynapseResultSet* results = NULL;
	SynapseResultSet* _tmp2_;
	SynapseResultSet* result;
#line 319 "banshee-plugin.vala"
	self = (SynapseBansheeActions*) base;
#line 319 "banshee-plugin.vala"
	g_return_val_if_fail (query != NULL, NULL);
#line 319 "banshee-plugin.vala"
	g_return_val_if_fail (match != NULL, NULL);
#line 321 "banshee-plugin.vala"
	_tmp0_ = *query;
#line 321 "banshee-plugin.vala"
	_tmp1_ = _tmp0_.query_string;
#line 321 "banshee-plugin.vala"
	query_empty = g_strcmp0 (_tmp1_, "") == 0;
#line 322 "banshee-plugin.vala"
	_tmp2_ = synapse_result_set_new ();
#line 322 "banshee-plugin.vala"
	results = _tmp2_;
#line 324 "banshee-plugin.vala"
	if (query_empty) {
#line 1975 "banshee-plugin.c"
		{
			GeeList* _action_list = NULL;
			GeeList* _tmp3_;
			gint _action_size = 0;
			GeeList* _tmp4_;
			gint _tmp5_;
			gint _tmp6_;
			gint _action_index = 0;
#line 326 "banshee-plugin.vala"
			_tmp3_ = self->priv->actions;
#line 326 "banshee-plugin.vala"
			_action_list = _tmp3_;
#line 326 "banshee-plugin.vala"
			_tmp4_ = _action_list;
#line 326 "banshee-plugin.vala"
			_tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_);
#line 326 "banshee-plugin.vala"
			_tmp6_ = _tmp5_;
#line 326 "banshee-plugin.vala"
			_action_size = _tmp6_;
#line 326 "banshee-plugin.vala"
			_action_index = -1;
#line 326 "banshee-plugin.vala"
			while (TRUE) {
#line 2000 "banshee-plugin.c"
				gint _tmp7_;
				gint _tmp8_;
				SynapseBansheeActionsBansheeAction* action = NULL;
				GeeList* _tmp9_;
				gpointer _tmp10_;
				SynapseBansheeActionsBansheeAction* _tmp11_;
#line 326 "banshee-plugin.vala"
				_action_index = _action_index + 1;
#line 326 "banshee-plugin.vala"
				_tmp7_ = _action_index;
#line 326 "banshee-plugin.vala"
				_tmp8_ = _action_size;
#line 326 "banshee-plugin.vala"
				if (!(_tmp7_ < _tmp8_)) {
#line 326 "banshee-plugin.vala"
					break;
#line 2017 "banshee-plugin.c"
				}
#line 326 "banshee-plugin.vala"
				_tmp9_ = _action_list;
#line 326 "banshee-plugin.vala"
				_tmp10_ = gee_list_get (_tmp9_, _action_index);
#line 326 "banshee-plugin.vala"
				action = (SynapseBansheeActionsBansheeAction*) _tmp10_;
#line 328 "banshee-plugin.vala"
				_tmp11_ = action;
#line 328 "banshee-plugin.vala"
				if (synapse_action_valid_for_match ((SynapseAction*) _tmp11_, match)) {
#line 2029 "banshee-plugin.c"
					SynapseResultSet* _tmp12_;
					SynapseBansheeActionsBansheeAction* _tmp13_;
					SynapseBansheeActionsBansheeAction* _tmp14_;
#line 330 "banshee-plugin.vala"
					_tmp12_ = results;
#line 330 "banshee-plugin.vala"
					_tmp13_ = action;
#line 330 "banshee-plugin.vala"
					_tmp14_ = action;
#line 330 "banshee-plugin.vala"
					synapse_result_set_add (_tmp12_, (SynapseMatch*) _tmp13_, synapse_banshee_actions_banshee_action_get_relevancy (_tmp14_));
#line 2041 "banshee-plugin.c"
				}
#line 326 "banshee-plugin.vala"
				_g_object_unref0 (action);
#line 2045 "banshee-plugin.c"
			}
		}
	} else {
		GeeList* matchers = NULL;
		SynapseQuery _tmp15_;
		const gchar* _tmp16_;
		GeeList* _tmp17_;
#line 336 "banshee-plugin.vala"
		_tmp15_ = *query;
#line 336 "banshee-plugin.vala"
		_tmp16_ = _tmp15_.query_string;
#line 336 "banshee-plugin.vala"
		_tmp17_ = synapse_query_get_matchers_for_query (_tmp16_, 0, G_REGEX_OPTIMIZE | G_REGEX_CASELESS);
#line 336 "banshee-plugin.vala"
		matchers = _tmp17_;
#line 2061 "banshee-plugin.c"
		{
			GeeList* _action_list = NULL;
			GeeList* _tmp18_;
			gint _action_size = 0;
			GeeList* _tmp19_;
			gint _tmp20_;
			gint _tmp21_;
			gint _action_index = 0;
#line 338 "banshee-plugin.vala"
			_tmp18_ = self->priv->actions;
#line 338 "banshee-plugin.vala"
			_action_list = _tmp18_;
#line 338 "banshee-plugin.vala"
			_tmp19_ = _action_list;
#line 338 "banshee-plugin.vala"
			_tmp20_ = gee_collection_get_size ((GeeCollection*) _tmp19_);
#line 338 "banshee-plugin.vala"
			_tmp21_ = _tmp20_;
#line 338 "banshee-plugin.vala"
			_action_size = _tmp21_;
#line 338 "banshee-plugin.vala"
			_action_index = -1;
#line 338 "banshee-plugin.vala"
			while (TRUE) {
#line 2086 "banshee-plugin.c"
				gint _tmp22_;
				gint _tmp23_;
				SynapseBansheeActionsBansheeAction* action = NULL;
				GeeList* _tmp24_;
				gpointer _tmp25_;
				SynapseBansheeActionsBansheeAction* _tmp26_;
#line 338 "banshee-plugin.vala"
				_action_index = _action_index + 1;
#line 338 "banshee-plugin.vala"
				_tmp22_ = _action_index;
#line 338 "banshee-plugin.vala"
				_tmp23_ = _action_size;
#line 338 "banshee-plugin.vala"
				if (!(_tmp22_ < _tmp23_)) {
#line 338 "banshee-plugin.vala"
					break;
#line 2103 "banshee-plugin.c"
				}
#line 338 "banshee-plugin.vala"
				_tmp24_ = _action_list;
#line 338 "banshee-plugin.vala"
				_tmp25_ = gee_list_get (_tmp24_, _action_index);
#line 338 "banshee-plugin.vala"
				action = (SynapseBansheeActionsBansheeAction*) _tmp25_;
#line 340 "banshee-plugin.vala"
				_tmp26_ = action;
#line 340 "banshee-plugin.vala"
				if (!synapse_action_valid_for_match ((SynapseAction*) _tmp26_, match)) {
#line 340 "banshee-plugin.vala"
					_g_object_unref0 (action);
#line 340 "banshee-plugin.vala"
					continue;
#line 2119 "banshee-plugin.c"
				}
				{
					GeeList* _matcher_list = NULL;
					GeeList* _tmp27_;
					gint _matcher_size = 0;
					GeeList* _tmp28_;
					gint _tmp29_;
					gint _tmp30_;
					gint _matcher_index = 0;
#line 341 "banshee-plugin.vala"
					_tmp27_ = matchers;
#line 341 "banshee-plugin.vala"
					_matcher_list = _tmp27_;
#line 341 "banshee-plugin.vala"
					_tmp28_ = _matcher_list;
#line 341 "banshee-plugin.vala"
					_tmp29_ = gee_collection_get_size ((GeeCollection*) _tmp28_);
#line 341 "banshee-plugin.vala"
					_tmp30_ = _tmp29_;
#line 341 "banshee-plugin.vala"
					_matcher_size = _tmp30_;
#line 341 "banshee-plugin.vala"
					_matcher_index = -1;
#line 341 "banshee-plugin.vala"
					while (TRUE) {
#line 2145 "banshee-plugin.c"
						gint _tmp31_;
						gint _tmp32_;
						GeeMapEntry* matcher = NULL;
						GeeList* _tmp33_;
						gpointer _tmp34_;
						GeeMapEntry* _tmp35_;
						gconstpointer _tmp36_;
						gconstpointer _tmp37_;
						SynapseBansheeActionsBansheeAction* _tmp38_;
						const gchar* _tmp39_;
						const gchar* _tmp40_;
#line 341 "banshee-plugin.vala"
						_matcher_index = _matcher_index + 1;
#line 341 "banshee-plugin.vala"
						_tmp31_ = _matcher_index;
#line 341 "banshee-plugin.vala"
						_tmp32_ = _matcher_size;
#line 341 "banshee-plugin.vala"
						if (!(_tmp31_ < _tmp32_)) {
#line 341 "banshee-plugin.vala"
							break;
#line 2167 "banshee-plugin.c"
						}
#line 341 "banshee-plugin.vala"
						_tmp33_ = _matcher_list;
#line 341 "banshee-plugin.vala"
						_tmp34_ = gee_list_get (_tmp33_, _matcher_index);
#line 341 "banshee-plugin.vala"
						matcher = (GeeMapEntry*) _tmp34_;
#line 343 "banshee-plugin.vala"
						_tmp35_ = matcher;
#line 343 "banshee-plugin.vala"
						_tmp36_ = gee_map_entry_get_key (_tmp35_);
#line 343 "banshee-plugin.vala"
						_tmp37_ = _tmp36_;
#line 343 "banshee-plugin.vala"
						_tmp38_ = action;
#line 343 "banshee-plugin.vala"
						_tmp39_ = synapse_match_get_title ((SynapseMatch*) _tmp38_);
#line 343 "banshee-plugin.vala"
						_tmp40_ = _tmp39_;
#line 343 "banshee-plugin.vala"
						if (g_regex_match ((GRegex*) _tmp37_, _tmp40_, 0, NULL)) {
#line 2189 "banshee-plugin.c"
							SynapseResultSet* _tmp41_;
							SynapseBansheeActionsBansheeAction* _tmp42_;
							GeeMapEntry* _tmp43_;
							gconstpointer _tmp44_;
							gconstpointer _tmp45_;
#line 345 "banshee-plugin.vala"
							_tmp41_ = results;
#line 345 "banshee-plugin.vala"
							_tmp42_ = action;
#line 345 "banshee-plugin.vala"
							_tmp43_ = matcher;
#line 345 "banshee-plugin.vala"
							_tmp44_ = gee_map_entry_get_value (_tmp43_);
#line 345 "banshee-plugin.vala"
							_tmp45_ = _tmp44_;
#line 345 "banshee-plugin.vala"
							synapse_result_set_add (_tmp41_, (SynapseMatch*) _tmp42_, (gint) ((gintptr) _tmp45_));
#line 346 "banshee-plugin.vala"
							_g_object_unref0 (matcher);
#line 346 "banshee-plugin.vala"
							break;
#line 2211 "banshee-plugin.c"
						}
#line 341 "banshee-plugin.vala"
						_g_object_unref0 (matcher);
#line 2215 "banshee-plugin.c"
					}
				}
#line 338 "banshee-plugin.vala"
				_g_object_unref0 (action);
#line 2220 "banshee-plugin.c"
			}
		}
#line 324 "banshee-plugin.vala"
		_g_object_unref0 (matchers);
#line 2225 "banshee-plugin.c"
	}
#line 352 "banshee-plugin.vala"
	result = results;
#line 352 "banshee-plugin.vala"
	return result;
#line 2231 "banshee-plugin.c"
}

SynapseBansheeActions*
synapse_banshee_actions_construct (GType object_type)
{
	SynapseBansheeActions * self = NULL;
#line 51 "banshee-plugin.vala"
	self = (SynapseBansheeActions*) g_object_new (object_type, NULL);
#line 51 "banshee-plugin.vala"
	return self;
#line 2242 "banshee-plugin.c"
}

SynapseBansheeActions*
synapse_banshee_actions_new (void)
{
#line 51 "banshee-plugin.vala"
	return synapse_banshee_actions_construct (SYNAPSE_TYPE_BANSHEE_ACTIONS);
#line 2250 "banshee-plugin.c"
}

static gboolean
synapse_banshee_actions_real_get_enabled (SynapseActivatable* base)
{
	gboolean result;
	SynapseBansheeActions* self;
#line 53 "banshee-plugin.vala"
	self = (SynapseBansheeActions*) base;
#line 53 "banshee-plugin.vala"
	result = self->priv->_enabled;
#line 53 "banshee-plugin.vala"
	return result;
#line 2264 "banshee-plugin.c"
}

static void
synapse_banshee_actions_real_set_enabled (SynapseActivatable* base,
                                          gboolean value)
{
	SynapseBansheeActions* self;
	gboolean old_value;
#line 53 "banshee-plugin.vala"
	self = (SynapseBansheeActions*) base;
#line 53 "banshee-plugin.vala"
	old_value = synapse_banshee_actions_real_get_enabled (base);
#line 53 "banshee-plugin.vala"
	if (old_value != value) {
#line 53 "banshee-plugin.vala"
		self->priv->_enabled = value;
#line 53 "banshee-plugin.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_banshee_actions_properties[SYNAPSE_BANSHEE_ACTIONS_ENABLED_PROPERTY]);
#line 2283 "banshee-plugin.c"
	}
}

static gint
synapse_banshee_actions_banshee_action_real_get_relevancy (SynapseBansheeActionsBansheeAction* self)
{
	gboolean banshee_running = FALSE;
	SynapseDBusService* _tmp0_;
	SynapseDBusService* _tmp1_;
	gboolean _tmp2_;
	gint _tmp3_ = 0;
	gint result;
#line 89 "banshee-plugin.vala"
	_tmp0_ = synapse_dbus_service_get_default ();
#line 89 "banshee-plugin.vala"
	_tmp1_ = _tmp0_;
#line 89 "banshee-plugin.vala"
	_tmp2_ = synapse_dbus_service_name_has_owner (_tmp1_, SYNAPSE_BANSHEE_PLAYER_ENGINE_UNIQUE_NAME);
#line 89 "banshee-plugin.vala"
	_g_object_unref0 (_tmp1_);
#line 89 "banshee-plugin.vala"
	banshee_running = _tmp2_;
#line 90 "banshee-plugin.vala"
	if (banshee_running) {
#line 2308 "banshee-plugin.c"
		gint _tmp4_;
		gint _tmp5_;
#line 90 "banshee-plugin.vala"
		_tmp4_ = synapse_action_get_default_relevancy ((SynapseAction*) self);
#line 90 "banshee-plugin.vala"
		_tmp5_ = _tmp4_;
#line 90 "banshee-plugin.vala"
		_tmp3_ = _tmp5_ + SYNAPSE_MATCH_SCORE_INCREMENT_LARGE;
#line 2317 "banshee-plugin.c"
	} else {
		gint _tmp6_;
		gint _tmp7_;
#line 90 "banshee-plugin.vala"
		_tmp6_ = synapse_action_get_default_relevancy ((SynapseAction*) self);
#line 90 "banshee-plugin.vala"
		_tmp7_ = _tmp6_;
#line 90 "banshee-plugin.vala"
		_tmp3_ = _tmp7_;
#line 2327 "banshee-plugin.c"
	}
#line 90 "banshee-plugin.vala"
	result = _tmp3_;
#line 90 "banshee-plugin.vala"
	return result;
#line 2333 "banshee-plugin.c"
}

gint
synapse_banshee_actions_banshee_action_get_relevancy (SynapseBansheeActionsBansheeAction* self)
{
	SynapseBansheeActionsBansheeActionClass* _klass_;
#line 87 "banshee-plugin.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 87 "banshee-plugin.vala"
	_klass_ = SYNAPSE_BANSHEE_ACTIONS_BANSHEE_ACTION_GET_CLASS (self);
#line 87 "banshee-plugin.vala"
	if (_klass_->get_relevancy) {
#line 87 "banshee-plugin.vala"
		return _klass_->get_relevancy (self);
#line 2348 "banshee-plugin.c"
	}
#line 87 "banshee-plugin.vala"
	return -1;
#line 2352 "banshee-plugin.c"
}

static gboolean
synapse_banshee_actions_banshee_action_real_action_available (SynapseBansheeActionsBansheeAction* self)
{
	SynapseDBusService* _tmp0_;
	SynapseDBusService* _tmp1_;
	gboolean _tmp2_;
	gboolean result;
#line 95 "banshee-plugin.vala"
	_tmp0_ = synapse_dbus_service_get_default ();
#line 95 "banshee-plugin.vala"
	_tmp1_ = _tmp0_;
#line 95 "banshee-plugin.vala"
	_tmp2_ = synapse_dbus_service_name_has_owner (_tmp1_, SYNAPSE_BANSHEE_PLAYER_ENGINE_UNIQUE_NAME);
#line 95 "banshee-plugin.vala"
	_g_object_unref0 (_tmp1_);
#line 95 "banshee-plugin.vala"
	result = _tmp2_;
#line 95 "banshee-plugin.vala"
	return result;
#line 2374 "banshee-plugin.c"
}

gboolean
synapse_banshee_actions_banshee_action_action_available (SynapseBansheeActionsBansheeAction* self)
{
	SynapseBansheeActionsBansheeActionClass* _klass_;
#line 93 "banshee-plugin.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 93 "banshee-plugin.vala"
	_klass_ = SYNAPSE_BANSHEE_ACTIONS_BANSHEE_ACTION_GET_CLASS (self);
#line 93 "banshee-plugin.vala"
	if (_klass_->action_available) {
#line 93 "banshee-plugin.vala"
		return _klass_->action_available (self);
#line 2389 "banshee-plugin.c"
	}
#line 93 "banshee-plugin.vala"
	return FALSE;
#line 2393 "banshee-plugin.c"
}

static SynapseBansheeActionsBansheeAction*
synapse_banshee_actions_banshee_action_construct (GType object_type)
{
	SynapseBansheeActionsBansheeAction * self = NULL;
#line 85 "banshee-plugin.vala"
	self = (SynapseBansheeActionsBansheeAction*) synapse_action_construct (object_type);
#line 85 "banshee-plugin.vala"
	return self;
#line 2404 "banshee-plugin.c"
}

static void
synapse_banshee_actions_banshee_action_class_init (SynapseBansheeActionsBansheeActionClass * klass,
                                                   gpointer klass_data)
{
#line 85 "banshee-plugin.vala"
	synapse_banshee_actions_banshee_action_parent_class = g_type_class_peek_parent (klass);
#line 85 "banshee-plugin.vala"
	((SynapseBansheeActionsBansheeActionClass *) klass)->get_relevancy = (gint (*) (SynapseBansheeActionsBansheeAction*)) synapse_banshee_actions_banshee_action_real_get_relevancy;
#line 85 "banshee-plugin.vala"
	((SynapseBansheeActionsBansheeActionClass *) klass)->action_available = (gboolean (*) (SynapseBansheeActionsBansheeAction*)) synapse_banshee_actions_banshee_action_real_action_available;
#line 2417 "banshee-plugin.c"
}

static void
synapse_banshee_actions_banshee_action_instance_init (SynapseBansheeActionsBansheeAction * self,
                                                      gpointer klass)
{
}

static GType
synapse_banshee_actions_banshee_action_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseBansheeActionsBansheeActionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_banshee_actions_banshee_action_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseBansheeActionsBansheeAction), 0, (GInstanceInitFunc) synapse_banshee_actions_banshee_action_instance_init, NULL };
	GType synapse_banshee_actions_banshee_action_type_id;
	synapse_banshee_actions_banshee_action_type_id = g_type_register_static (SYNAPSE_TYPE_ACTION, "SynapseBansheeActionsBansheeAction", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return synapse_banshee_actions_banshee_action_type_id;
}

static GType
synapse_banshee_actions_banshee_action_get_type (void)
{
	static volatile gsize synapse_banshee_actions_banshee_action_type_id__once = 0;
	if (g_once_init_enter (&synapse_banshee_actions_banshee_action_type_id__once)) {
		GType synapse_banshee_actions_banshee_action_type_id;
		synapse_banshee_actions_banshee_action_type_id = synapse_banshee_actions_banshee_action_get_type_once ();
		g_once_init_leave (&synapse_banshee_actions_banshee_action_type_id__once, synapse_banshee_actions_banshee_action_type_id);
	}
	return synapse_banshee_actions_banshee_action_type_id__once;
}

static gboolean
synapse_banshee_actions_banshee_control_match_real_action_available (SynapseBansheeActionsBansheeControlMatch* self)
{
	SynapseDBusService* _tmp0_;
	SynapseDBusService* _tmp1_;
	gboolean _tmp2_;
	gboolean result;
#line 103 "banshee-plugin.vala"
	_tmp0_ = synapse_dbus_service_get_default ();
#line 103 "banshee-plugin.vala"
	_tmp1_ = _tmp0_;
#line 103 "banshee-plugin.vala"
	_tmp2_ = synapse_dbus_service_name_has_owner (_tmp1_, SYNAPSE_BANSHEE_PLAYER_ENGINE_UNIQUE_NAME);
#line 103 "banshee-plugin.vala"
	_g_object_unref0 (_tmp1_);
#line 103 "banshee-plugin.vala"
	result = _tmp2_;
#line 103 "banshee-plugin.vala"
	return result;
#line 2466 "banshee-plugin.c"
}

gboolean
synapse_banshee_actions_banshee_control_match_action_available (SynapseBansheeActionsBansheeControlMatch* self)
{
	SynapseBansheeActionsBansheeControlMatchClass* _klass_;
#line 101 "banshee-plugin.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 101 "banshee-plugin.vala"
	_klass_ = SYNAPSE_BANSHEE_ACTIONS_BANSHEE_CONTROL_MATCH_GET_CLASS (self);
#line 101 "banshee-plugin.vala"
	if (_klass_->action_available) {
#line 101 "banshee-plugin.vala"
		return _klass_->action_available (self);
#line 2481 "banshee-plugin.c"
	}
#line 101 "banshee-plugin.vala"
	return FALSE;
#line 2485 "banshee-plugin.c"
}

static SynapseBansheeActionsBansheeControlMatch*
synapse_banshee_actions_banshee_control_match_construct (GType object_type)
{
	SynapseBansheeActionsBansheeControlMatch * self = NULL;
#line 99 "banshee-plugin.vala"
	self = (SynapseBansheeActionsBansheeControlMatch*) synapse_action_match_construct (object_type);
#line 99 "banshee-plugin.vala"
	return self;
#line 2496 "banshee-plugin.c"
}

static void
synapse_banshee_actions_banshee_control_match_class_init (SynapseBansheeActionsBansheeControlMatchClass * klass,
                                                          gpointer klass_data)
{
#line 99 "banshee-plugin.vala"
	synapse_banshee_actions_banshee_control_match_parent_class = g_type_class_peek_parent (klass);
#line 99 "banshee-plugin.vala"
	((SynapseBansheeActionsBansheeControlMatchClass *) klass)->action_available = (gboolean (*) (SynapseBansheeActionsBansheeControlMatch*)) synapse_banshee_actions_banshee_control_match_real_action_available;
#line 2507 "banshee-plugin.c"
}

static void
synapse_banshee_actions_banshee_control_match_instance_init (SynapseBansheeActionsBansheeControlMatch * self,
                                                             gpointer klass)
{
}

static GType
synapse_banshee_actions_banshee_control_match_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseBansheeActionsBansheeControlMatchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_banshee_actions_banshee_control_match_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseBansheeActionsBansheeControlMatch), 0, (GInstanceInitFunc) synapse_banshee_actions_banshee_control_match_instance_init, NULL };
	GType synapse_banshee_actions_banshee_control_match_type_id;
	synapse_banshee_actions_banshee_control_match_type_id = g_type_register_static (SYNAPSE_TYPE_ACTION_MATCH, "SynapseBansheeActionsBansheeControlMatch", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return synapse_banshee_actions_banshee_control_match_type_id;
}

static GType
synapse_banshee_actions_banshee_control_match_get_type (void)
{
	static volatile gsize synapse_banshee_actions_banshee_control_match_type_id__once = 0;
	if (g_once_init_enter (&synapse_banshee_actions_banshee_control_match_type_id__once)) {
		GType synapse_banshee_actions_banshee_control_match_type_id;
		synapse_banshee_actions_banshee_control_match_type_id = synapse_banshee_actions_banshee_control_match_get_type_once ();
		g_once_init_leave (&synapse_banshee_actions_banshee_control_match_type_id__once, synapse_banshee_actions_banshee_control_match_type_id);
	}
	return synapse_banshee_actions_banshee_control_match_type_id__once;
}

static SynapseBansheeActionsPlay*
synapse_banshee_actions_play_construct (GType object_type)
{
	SynapseBansheeActionsPlay * self = NULL;
#line 113 "banshee-plugin.vala"
	self = (SynapseBansheeActionsPlay*) g_object_new (object_type, "title", _ ("Play"), "description", _ ("Start playback in Banshee"), "icon-name", "media-playback-start", "has-thumbnail", FALSE, NULL);
#line 111 "banshee-plugin.vala"
	return self;
#line 2545 "banshee-plugin.c"
}

static SynapseBansheeActionsPlay*
synapse_banshee_actions_play_new (void)
{
#line 111 "banshee-plugin.vala"
	return synapse_banshee_actions_play_construct (SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY);
#line 2553 "banshee-plugin.c"
}

static void
synapse_banshee_actions_play_real_do_action (SynapseActionMatch* base)
{
	SynapseBansheeActionsPlay * self;
	GError* _inner_error0_ = NULL;
#line 118 "banshee-plugin.vala"
	self = (SynapseBansheeActionsPlay*) base;
#line 2563 "banshee-plugin.c"
	{
		SynapseBansheePlayerEngine* player = NULL;
		SynapseBansheePlayerEngine* _tmp0_;
		SynapseBansheePlayerEngine* _tmp1_;
#line 121 "banshee-plugin.vala"
		_tmp0_ = (SynapseBansheePlayerEngine*) g_initable_new (SYNAPSE_TYPE_BANSHEE_PLAYER_ENGINE_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_BANSHEE_PLAYER_ENGINE_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_BANSHEE_PLAYER_ENGINE_OBJECT_PATH, "g-interface-name", "org.bansheeproject.Banshee.PlayerEngine", NULL);
#line 121 "banshee-plugin.vala"
		player = (SynapseBansheePlayerEngine*) _tmp0_;
#line 121 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2574 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 125 "banshee-plugin.vala"
		_tmp1_ = player;
#line 125 "banshee-plugin.vala"
		synapse_banshee_player_engine_play (_tmp1_, &_inner_error0_);
#line 125 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 125 "banshee-plugin.vala"
			_g_object_unref0 (player);
#line 2585 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 120 "banshee-plugin.vala"
		_g_object_unref0 (player);
#line 2590 "banshee-plugin.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		FILE* _tmp2_;
		GError* _tmp3_;
		const gchar* _tmp4_;
#line 120 "banshee-plugin.vala"
		e = _inner_error0_;
#line 120 "banshee-plugin.vala"
		_inner_error0_ = NULL;
#line 127 "banshee-plugin.vala"
		_tmp2_ = stderr;
#line 127 "banshee-plugin.vala"
		_tmp3_ = e;
#line 127 "banshee-plugin.vala"
		_tmp4_ = _tmp3_->message;
#line 127 "banshee-plugin.vala"
		fprintf (_tmp2_, "Banshee is not available.\n%s", _tmp4_);
#line 120 "banshee-plugin.vala"
		_g_error_free0 (e);
#line 2613 "banshee-plugin.c"
	}
	__finally0:
#line 120 "banshee-plugin.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 120 "banshee-plugin.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 120 "banshee-plugin.vala"
		g_clear_error (&_inner_error0_);
#line 120 "banshee-plugin.vala"
		return;
#line 2624 "banshee-plugin.c"
	}
}

static gboolean
synapse_banshee_actions_play_real_action_available (SynapseBansheeActionsBansheeControlMatch* base)
{
	SynapseBansheeActionsPlay * self;
	gboolean result;
#line 131 "banshee-plugin.vala"
	self = (SynapseBansheeActionsPlay*) base;
#line 133 "banshee-plugin.vala"
	result = TRUE;
#line 133 "banshee-plugin.vala"
	return result;
#line 2639 "banshee-plugin.c"
}

static void
synapse_banshee_actions_play_class_init (SynapseBansheeActionsPlayClass * klass,
                                         gpointer klass_data)
{
#line 109 "banshee-plugin.vala"
	synapse_banshee_actions_play_parent_class = g_type_class_peek_parent (klass);
#line 109 "banshee-plugin.vala"
	((SynapseActionMatchClass *) klass)->do_action = (void (*) (SynapseActionMatch*)) synapse_banshee_actions_play_real_do_action;
#line 109 "banshee-plugin.vala"
	((SynapseBansheeActionsBansheeControlMatchClass *) klass)->action_available = (gboolean (*) (SynapseBansheeActionsBansheeControlMatch*)) synapse_banshee_actions_play_real_action_available;
#line 2652 "banshee-plugin.c"
}

static void
synapse_banshee_actions_play_instance_init (SynapseBansheeActionsPlay * self,
                                            gpointer klass)
{
}

static GType
synapse_banshee_actions_play_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseBansheeActionsPlayClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_banshee_actions_play_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseBansheeActionsPlay), 0, (GInstanceInitFunc) synapse_banshee_actions_play_instance_init, NULL };
	GType synapse_banshee_actions_play_type_id;
	synapse_banshee_actions_play_type_id = g_type_register_static (SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_CONTROL_MATCH, "SynapseBansheeActionsPlay", &g_define_type_info, 0);
	return synapse_banshee_actions_play_type_id;
}

static GType
synapse_banshee_actions_play_get_type (void)
{
	static volatile gsize synapse_banshee_actions_play_type_id__once = 0;
	if (g_once_init_enter (&synapse_banshee_actions_play_type_id__once)) {
		GType synapse_banshee_actions_play_type_id;
		synapse_banshee_actions_play_type_id = synapse_banshee_actions_play_get_type_once ();
		g_once_init_leave (&synapse_banshee_actions_play_type_id__once, synapse_banshee_actions_play_type_id);
	}
	return synapse_banshee_actions_play_type_id__once;
}

static SynapseBansheeActionsPause*
synapse_banshee_actions_pause_construct (GType object_type)
{
	SynapseBansheeActionsPause * self = NULL;
#line 140 "banshee-plugin.vala"
	self = (SynapseBansheeActionsPause*) g_object_new (object_type, "title", _ ("Pause"), "description", _ ("Pause playback in Banshee"), "icon-name", "media-playback-pause", "has-thumbnail", FALSE, NULL);
#line 138 "banshee-plugin.vala"
	return self;
#line 2690 "banshee-plugin.c"
}

static SynapseBansheeActionsPause*
synapse_banshee_actions_pause_new (void)
{
#line 138 "banshee-plugin.vala"
	return synapse_banshee_actions_pause_construct (SYNAPSE_BANSHEE_ACTIONS_TYPE_PAUSE);
#line 2698 "banshee-plugin.c"
}

static void
synapse_banshee_actions_pause_real_do_action (SynapseActionMatch* base)
{
	SynapseBansheeActionsPause * self;
	GError* _inner_error0_ = NULL;
#line 144 "banshee-plugin.vala"
	self = (SynapseBansheeActionsPause*) base;
#line 2708 "banshee-plugin.c"
	{
		SynapseBansheePlayerEngine* player = NULL;
		SynapseBansheePlayerEngine* _tmp0_;
		SynapseBansheePlayerEngine* _tmp1_;
#line 147 "banshee-plugin.vala"
		_tmp0_ = (SynapseBansheePlayerEngine*) g_initable_new (SYNAPSE_TYPE_BANSHEE_PLAYER_ENGINE_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_BANSHEE_PLAYER_ENGINE_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_BANSHEE_PLAYER_ENGINE_OBJECT_PATH, "g-interface-name", "org.bansheeproject.Banshee.PlayerEngine", NULL);
#line 147 "banshee-plugin.vala"
		player = (SynapseBansheePlayerEngine*) _tmp0_;
#line 147 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2719 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 150 "banshee-plugin.vala"
		_tmp1_ = player;
#line 150 "banshee-plugin.vala"
		synapse_banshee_player_engine_pause (_tmp1_, &_inner_error0_);
#line 150 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 150 "banshee-plugin.vala"
			_g_object_unref0 (player);
#line 2730 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 146 "banshee-plugin.vala"
		_g_object_unref0 (player);
#line 2735 "banshee-plugin.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		FILE* _tmp2_;
		GError* _tmp3_;
		const gchar* _tmp4_;
#line 146 "banshee-plugin.vala"
		e = _inner_error0_;
#line 146 "banshee-plugin.vala"
		_inner_error0_ = NULL;
#line 152 "banshee-plugin.vala"
		_tmp2_ = stderr;
#line 152 "banshee-plugin.vala"
		_tmp3_ = e;
#line 152 "banshee-plugin.vala"
		_tmp4_ = _tmp3_->message;
#line 152 "banshee-plugin.vala"
		fprintf (_tmp2_, "Banshee is not available.\n%s", _tmp4_);
#line 146 "banshee-plugin.vala"
		_g_error_free0 (e);
#line 2758 "banshee-plugin.c"
	}
	__finally0:
#line 146 "banshee-plugin.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 146 "banshee-plugin.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 146 "banshee-plugin.vala"
		g_clear_error (&_inner_error0_);
#line 146 "banshee-plugin.vala"
		return;
#line 2769 "banshee-plugin.c"
	}
}

static void
synapse_banshee_actions_pause_class_init (SynapseBansheeActionsPauseClass * klass,
                                          gpointer klass_data)
{
#line 136 "banshee-plugin.vala"
	synapse_banshee_actions_pause_parent_class = g_type_class_peek_parent (klass);
#line 136 "banshee-plugin.vala"
	((SynapseActionMatchClass *) klass)->do_action = (void (*) (SynapseActionMatch*)) synapse_banshee_actions_pause_real_do_action;
#line 2781 "banshee-plugin.c"
}

static void
synapse_banshee_actions_pause_instance_init (SynapseBansheeActionsPause * self,
                                             gpointer klass)
{
}

static GType
synapse_banshee_actions_pause_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseBansheeActionsPauseClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_banshee_actions_pause_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseBansheeActionsPause), 0, (GInstanceInitFunc) synapse_banshee_actions_pause_instance_init, NULL };
	GType synapse_banshee_actions_pause_type_id;
	synapse_banshee_actions_pause_type_id = g_type_register_static (SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_CONTROL_MATCH, "SynapseBansheeActionsPause", &g_define_type_info, 0);
	return synapse_banshee_actions_pause_type_id;
}

static GType
synapse_banshee_actions_pause_get_type (void)
{
	static volatile gsize synapse_banshee_actions_pause_type_id__once = 0;
	if (g_once_init_enter (&synapse_banshee_actions_pause_type_id__once)) {
		GType synapse_banshee_actions_pause_type_id;
		synapse_banshee_actions_pause_type_id = synapse_banshee_actions_pause_get_type_once ();
		g_once_init_leave (&synapse_banshee_actions_pause_type_id__once, synapse_banshee_actions_pause_type_id);
	}
	return synapse_banshee_actions_pause_type_id__once;
}

static SynapseBansheeActionsNext*
synapse_banshee_actions_next_construct (GType object_type)
{
	SynapseBansheeActionsNext * self = NULL;
#line 160 "banshee-plugin.vala"
	self = (SynapseBansheeActionsNext*) g_object_new (object_type, "title", _ ("Next"), "description", _ ("Plays the next song in Banshee's playlist"), "icon-name", "media-skip-forward", "has-thumbnail", FALSE, NULL);
#line 158 "banshee-plugin.vala"
	return self;
#line 2819 "banshee-plugin.c"
}

static SynapseBansheeActionsNext*
synapse_banshee_actions_next_new (void)
{
#line 158 "banshee-plugin.vala"
	return synapse_banshee_actions_next_construct (SYNAPSE_BANSHEE_ACTIONS_TYPE_NEXT);
#line 2827 "banshee-plugin.c"
}

static void
synapse_banshee_actions_next_real_do_action (SynapseActionMatch* base)
{
	SynapseBansheeActionsNext * self;
	GError* _inner_error0_ = NULL;
#line 165 "banshee-plugin.vala"
	self = (SynapseBansheeActionsNext*) base;
#line 2837 "banshee-plugin.c"
	{
		SynapseBansheePlaybackController* player = NULL;
		SynapseBansheePlaybackController* _tmp0_;
		SynapseBansheePlaybackController* _tmp1_;
#line 168 "banshee-plugin.vala"
		_tmp0_ = (SynapseBansheePlaybackController*) g_initable_new (SYNAPSE_TYPE_BANSHEE_PLAYBACK_CONTROLLER_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_BANSHEE_PLAYBACK_CONTROLLER_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_BANSHEE_PLAYBACK_CONTROLLER_OBJECT_PATH, "g-interface-name", "org.bansheeproject.Banshee.PlaybackController", NULL);
#line 168 "banshee-plugin.vala"
		player = (SynapseBansheePlaybackController*) _tmp0_;
#line 168 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2848 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 172 "banshee-plugin.vala"
		_tmp1_ = player;
#line 172 "banshee-plugin.vala"
		synapse_banshee_playback_controller_next (_tmp1_, FALSE, &_inner_error0_);
#line 172 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 172 "banshee-plugin.vala"
			_g_object_unref0 (player);
#line 2859 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 167 "banshee-plugin.vala"
		_g_object_unref0 (player);
#line 2864 "banshee-plugin.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		FILE* _tmp2_;
		GError* _tmp3_;
		const gchar* _tmp4_;
#line 167 "banshee-plugin.vala"
		e = _inner_error0_;
#line 167 "banshee-plugin.vala"
		_inner_error0_ = NULL;
#line 174 "banshee-plugin.vala"
		_tmp2_ = stderr;
#line 174 "banshee-plugin.vala"
		_tmp3_ = e;
#line 174 "banshee-plugin.vala"
		_tmp4_ = _tmp3_->message;
#line 174 "banshee-plugin.vala"
		fprintf (_tmp2_, "Banshee is not available.\n%s", _tmp4_);
#line 167 "banshee-plugin.vala"
		_g_error_free0 (e);
#line 2887 "banshee-plugin.c"
	}
	__finally0:
#line 167 "banshee-plugin.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 167 "banshee-plugin.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 167 "banshee-plugin.vala"
		g_clear_error (&_inner_error0_);
#line 167 "banshee-plugin.vala"
		return;
#line 2898 "banshee-plugin.c"
	}
}

static void
synapse_banshee_actions_next_class_init (SynapseBansheeActionsNextClass * klass,
                                         gpointer klass_data)
{
#line 156 "banshee-plugin.vala"
	synapse_banshee_actions_next_parent_class = g_type_class_peek_parent (klass);
#line 156 "banshee-plugin.vala"
	((SynapseActionMatchClass *) klass)->do_action = (void (*) (SynapseActionMatch*)) synapse_banshee_actions_next_real_do_action;
#line 2910 "banshee-plugin.c"
}

static void
synapse_banshee_actions_next_instance_init (SynapseBansheeActionsNext * self,
                                            gpointer klass)
{
}

static GType
synapse_banshee_actions_next_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseBansheeActionsNextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_banshee_actions_next_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseBansheeActionsNext), 0, (GInstanceInitFunc) synapse_banshee_actions_next_instance_init, NULL };
	GType synapse_banshee_actions_next_type_id;
	synapse_banshee_actions_next_type_id = g_type_register_static (SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_CONTROL_MATCH, "SynapseBansheeActionsNext", &g_define_type_info, 0);
	return synapse_banshee_actions_next_type_id;
}

static GType
synapse_banshee_actions_next_get_type (void)
{
	static volatile gsize synapse_banshee_actions_next_type_id__once = 0;
	if (g_once_init_enter (&synapse_banshee_actions_next_type_id__once)) {
		GType synapse_banshee_actions_next_type_id;
		synapse_banshee_actions_next_type_id = synapse_banshee_actions_next_get_type_once ();
		g_once_init_leave (&synapse_banshee_actions_next_type_id__once, synapse_banshee_actions_next_type_id);
	}
	return synapse_banshee_actions_next_type_id__once;
}

static SynapseBansheeActionsPrevious*
synapse_banshee_actions_previous_construct (GType object_type)
{
	SynapseBansheeActionsPrevious * self = NULL;
#line 182 "banshee-plugin.vala"
	self = (SynapseBansheeActionsPrevious*) g_object_new (object_type, "title", _ ("Previous"), "description", _ ("Plays the previous song in Banshee's playlist"), "icon-name", "media-skip-backward", "has-thumbnail", FALSE, NULL);
#line 180 "banshee-plugin.vala"
	return self;
#line 2948 "banshee-plugin.c"
}

static SynapseBansheeActionsPrevious*
synapse_banshee_actions_previous_new (void)
{
#line 180 "banshee-plugin.vala"
	return synapse_banshee_actions_previous_construct (SYNAPSE_BANSHEE_ACTIONS_TYPE_PREVIOUS);
#line 2956 "banshee-plugin.c"
}

static void
synapse_banshee_actions_previous_real_do_action (SynapseActionMatch* base)
{
	SynapseBansheeActionsPrevious * self;
	GError* _inner_error0_ = NULL;
#line 187 "banshee-plugin.vala"
	self = (SynapseBansheeActionsPrevious*) base;
#line 2966 "banshee-plugin.c"
	{
		SynapseBansheePlaybackController* player = NULL;
		SynapseBansheePlaybackController* _tmp0_;
		SynapseBansheePlaybackController* _tmp1_;
#line 190 "banshee-plugin.vala"
		_tmp0_ = (SynapseBansheePlaybackController*) g_initable_new (SYNAPSE_TYPE_BANSHEE_PLAYBACK_CONTROLLER_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_BANSHEE_PLAYBACK_CONTROLLER_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_BANSHEE_PLAYBACK_CONTROLLER_OBJECT_PATH, "g-interface-name", "org.bansheeproject.Banshee.PlaybackController", NULL);
#line 190 "banshee-plugin.vala"
		player = (SynapseBansheePlaybackController*) _tmp0_;
#line 190 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2977 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 193 "banshee-plugin.vala"
		_tmp1_ = player;
#line 193 "banshee-plugin.vala"
		synapse_banshee_playback_controller_previous (_tmp1_, FALSE, &_inner_error0_);
#line 193 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 193 "banshee-plugin.vala"
			_g_object_unref0 (player);
#line 2988 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 189 "banshee-plugin.vala"
		_g_object_unref0 (player);
#line 2993 "banshee-plugin.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		FILE* _tmp2_;
		GError* _tmp3_;
		const gchar* _tmp4_;
#line 189 "banshee-plugin.vala"
		e = _inner_error0_;
#line 189 "banshee-plugin.vala"
		_inner_error0_ = NULL;
#line 195 "banshee-plugin.vala"
		_tmp2_ = stderr;
#line 195 "banshee-plugin.vala"
		_tmp3_ = e;
#line 195 "banshee-plugin.vala"
		_tmp4_ = _tmp3_->message;
#line 195 "banshee-plugin.vala"
		fprintf (_tmp2_, "Banshee is not available.\n%s", _tmp4_);
#line 189 "banshee-plugin.vala"
		_g_error_free0 (e);
#line 3016 "banshee-plugin.c"
	}
	__finally0:
#line 189 "banshee-plugin.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 189 "banshee-plugin.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 189 "banshee-plugin.vala"
		g_clear_error (&_inner_error0_);
#line 189 "banshee-plugin.vala"
		return;
#line 3027 "banshee-plugin.c"
	}
}

static void
synapse_banshee_actions_previous_class_init (SynapseBansheeActionsPreviousClass * klass,
                                             gpointer klass_data)
{
#line 178 "banshee-plugin.vala"
	synapse_banshee_actions_previous_parent_class = g_type_class_peek_parent (klass);
#line 178 "banshee-plugin.vala"
	((SynapseActionMatchClass *) klass)->do_action = (void (*) (SynapseActionMatch*)) synapse_banshee_actions_previous_real_do_action;
#line 3039 "banshee-plugin.c"
}

static void
synapse_banshee_actions_previous_instance_init (SynapseBansheeActionsPrevious * self,
                                                gpointer klass)
{
}

static GType
synapse_banshee_actions_previous_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseBansheeActionsPreviousClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_banshee_actions_previous_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseBansheeActionsPrevious), 0, (GInstanceInitFunc) synapse_banshee_actions_previous_instance_init, NULL };
	GType synapse_banshee_actions_previous_type_id;
	synapse_banshee_actions_previous_type_id = g_type_register_static (SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_CONTROL_MATCH, "SynapseBansheeActionsPrevious", &g_define_type_info, 0);
	return synapse_banshee_actions_previous_type_id;
}

static GType
synapse_banshee_actions_previous_get_type (void)
{
	static volatile gsize synapse_banshee_actions_previous_type_id__once = 0;
	if (g_once_init_enter (&synapse_banshee_actions_previous_type_id__once)) {
		GType synapse_banshee_actions_previous_type_id;
		synapse_banshee_actions_previous_type_id = synapse_banshee_actions_previous_get_type_once ();
		g_once_init_leave (&synapse_banshee_actions_previous_type_id__once, synapse_banshee_actions_previous_type_id);
	}
	return synapse_banshee_actions_previous_type_id__once;
}

static SynapseBansheeActionsAddToPlaylist*
synapse_banshee_actions_add_to_playlist_construct (GType object_type)
{
	SynapseBansheeActionsAddToPlaylist * self = NULL;
#line 204 "banshee-plugin.vala"
	self = (SynapseBansheeActionsAddToPlaylist*) g_object_new (object_type, "title", _ ("Enqueue in Banshee"), "description", _ ("Add the song to Banshee playlist"), "icon-name", "media-playback-start", "has-thumbnail", FALSE, "default-relevancy", SYNAPSE_MATCH_SCORE_AVERAGE, NULL);
#line 202 "banshee-plugin.vala"
	return self;
#line 3077 "banshee-plugin.c"
}

static SynapseBansheeActionsAddToPlaylist*
synapse_banshee_actions_add_to_playlist_new (void)
{
#line 202 "banshee-plugin.vala"
	return synapse_banshee_actions_add_to_playlist_construct (SYNAPSE_BANSHEE_ACTIONS_TYPE_ADD_TO_PLAYLIST);
#line 3085 "banshee-plugin.c"
}

static void
synapse_banshee_actions_add_to_playlist_real_do_execute (SynapseAction* base,
                                                         SynapseMatch* match,
                                                         SynapseMatch* target)
{
	SynapseBansheeActionsAddToPlaylist * self;
	SynapseUriMatch* uri = NULL;
	SynapseUriMatch* _tmp0_;
	gboolean _tmp1_ = FALSE;
	SynapseUriMatch* _tmp2_;
	SynapseQueryFlags _tmp3_;
	SynapseQueryFlags _tmp4_;
	GError* _inner_error0_ = NULL;
#line 210 "banshee-plugin.vala"
	self = (SynapseBansheeActionsAddToPlaylist*) base;
#line 210 "banshee-plugin.vala"
	g_return_if_fail (match != NULL);
#line 212 "banshee-plugin.vala"
	uri = G_TYPE_CHECK_INSTANCE_TYPE (match, SYNAPSE_TYPE_URI_MATCH) ? ((SynapseUriMatch*) match) : NULL;
#line 213 "banshee-plugin.vala"
	_tmp0_ = uri;
#line 213 "banshee-plugin.vala"
	g_return_if_fail (_tmp0_ != NULL);
#line 214 "banshee-plugin.vala"
	_tmp2_ = uri;
#line 214 "banshee-plugin.vala"
	_tmp3_ = synapse_uri_match_get_file_type (_tmp2_);
#line 214 "banshee-plugin.vala"
	_tmp4_ = _tmp3_;
#line 214 "banshee-plugin.vala"
	if ((_tmp4_ & SYNAPSE_QUERY_FLAGS_AUDIO) != 0) {
#line 214 "banshee-plugin.vala"
		_tmp1_ = TRUE;
#line 3121 "banshee-plugin.c"
	} else {
		SynapseUriMatch* _tmp5_;
		SynapseQueryFlags _tmp6_;
		SynapseQueryFlags _tmp7_;
#line 215 "banshee-plugin.vala"
		_tmp5_ = uri;
#line 215 "banshee-plugin.vala"
		_tmp6_ = synapse_uri_match_get_file_type (_tmp5_);
#line 215 "banshee-plugin.vala"
		_tmp7_ = _tmp6_;
#line 215 "banshee-plugin.vala"
		_tmp1_ = (_tmp7_ & SYNAPSE_QUERY_FLAGS_VIDEO) != 0;
#line 3134 "banshee-plugin.c"
	}
#line 214 "banshee-plugin.vala"
	g_return_if_fail (_tmp1_);
#line 3138 "banshee-plugin.c"
	{
		SynapseBansheePlayQueue* player = NULL;
		SynapseBansheePlayQueue* _tmp8_;
		SynapseBansheePlayQueue* _tmp9_;
		SynapseUriMatch* _tmp10_;
		const gchar* _tmp11_;
		const gchar* _tmp12_;
#line 217 "banshee-plugin.vala"
		_tmp8_ = (SynapseBansheePlayQueue*) g_initable_new (SYNAPSE_TYPE_BANSHEE_PLAY_QUEUE_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_BANSHEE_PLAY_QUEUE_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_BANSHEE_PLAY_QUEUE_OBJECT_PATH, "g-interface-name", "org.bansheeproject.Banshee.PlayQueue", NULL);
#line 217 "banshee-plugin.vala"
		player = (SynapseBansheePlayQueue*) _tmp8_;
#line 217 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 3152 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 221 "banshee-plugin.vala"
		_tmp9_ = player;
#line 221 "banshee-plugin.vala"
		_tmp10_ = uri;
#line 221 "banshee-plugin.vala"
		_tmp11_ = synapse_uri_match_get_uri (_tmp10_);
#line 221 "banshee-plugin.vala"
		_tmp12_ = _tmp11_;
#line 221 "banshee-plugin.vala"
		synapse_banshee_play_queue_enqueue_uri (_tmp9_, _tmp12_, FALSE, &_inner_error0_);
#line 221 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 221 "banshee-plugin.vala"
			_g_object_unref0 (player);
#line 3169 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 216 "banshee-plugin.vala"
		_g_object_unref0 (player);
#line 3174 "banshee-plugin.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		FILE* _tmp13_;
		GError* _tmp14_;
		const gchar* _tmp15_;
#line 216 "banshee-plugin.vala"
		e = _inner_error0_;
#line 216 "banshee-plugin.vala"
		_inner_error0_ = NULL;
#line 223 "banshee-plugin.vala"
		_tmp13_ = stderr;
#line 223 "banshee-plugin.vala"
		_tmp14_ = e;
#line 223 "banshee-plugin.vala"
		_tmp15_ = _tmp14_->message;
#line 223 "banshee-plugin.vala"
		fprintf (_tmp13_, "Banshee is not available.\n%s", _tmp15_);
#line 216 "banshee-plugin.vala"
		_g_error_free0 (e);
#line 3197 "banshee-plugin.c"
	}
	__finally0:
#line 216 "banshee-plugin.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 216 "banshee-plugin.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 216 "banshee-plugin.vala"
		g_clear_error (&_inner_error0_);
#line 216 "banshee-plugin.vala"
		return;
#line 3208 "banshee-plugin.c"
	}
}

static gboolean
synapse_banshee_actions_add_to_playlist_real_valid_for_match (SynapseAction* base,
                                                              SynapseMatch* match)
{
	SynapseBansheeActionsAddToPlaylist * self;
	SynapseUriMatch* uri_match = NULL;
	SynapseUriMatch* _tmp0_;
	gboolean _tmp1_ = FALSE;
	SynapseUriMatch* _tmp2_;
	SynapseQueryFlags _tmp3_;
	SynapseQueryFlags _tmp4_;
	gboolean result;
#line 227 "banshee-plugin.vala"
	self = (SynapseBansheeActionsAddToPlaylist*) base;
#line 227 "banshee-plugin.vala"
	g_return_val_if_fail (match != NULL, FALSE);
#line 229 "banshee-plugin.vala"
	uri_match = G_TYPE_CHECK_INSTANCE_TYPE (match, SYNAPSE_TYPE_URI_MATCH) ? ((SynapseUriMatch*) match) : NULL;
#line 230 "banshee-plugin.vala"
	_tmp0_ = uri_match;
#line 230 "banshee-plugin.vala"
	if (_tmp0_ == NULL) {
#line 231 "banshee-plugin.vala"
		result = FALSE;
#line 231 "banshee-plugin.vala"
		return result;
#line 3238 "banshee-plugin.c"
	}
#line 233 "banshee-plugin.vala"
	_tmp2_ = uri_match;
#line 233 "banshee-plugin.vala"
	_tmp3_ = synapse_uri_match_get_file_type (_tmp2_);
#line 233 "banshee-plugin.vala"
	_tmp4_ = _tmp3_;
#line 233 "banshee-plugin.vala"
	if ((_tmp4_ & SYNAPSE_QUERY_FLAGS_AUDIO) != 0) {
#line 233 "banshee-plugin.vala"
		_tmp1_ = TRUE;
#line 3250 "banshee-plugin.c"
	} else {
		SynapseUriMatch* _tmp5_;
		SynapseQueryFlags _tmp6_;
		SynapseQueryFlags _tmp7_;
#line 234 "banshee-plugin.vala"
		_tmp5_ = uri_match;
#line 234 "banshee-plugin.vala"
		_tmp6_ = synapse_uri_match_get_file_type (_tmp5_);
#line 234 "banshee-plugin.vala"
		_tmp7_ = _tmp6_;
#line 234 "banshee-plugin.vala"
		_tmp1_ = (_tmp7_ & SYNAPSE_QUERY_FLAGS_VIDEO) != 0;
#line 3263 "banshee-plugin.c"
	}
#line 233 "banshee-plugin.vala"
	result = _tmp1_;
#line 233 "banshee-plugin.vala"
	return result;
#line 3269 "banshee-plugin.c"
}

static void
synapse_banshee_actions_add_to_playlist_class_init (SynapseBansheeActionsAddToPlaylistClass * klass,
                                                    gpointer klass_data)
{
#line 200 "banshee-plugin.vala"
	synapse_banshee_actions_add_to_playlist_parent_class = g_type_class_peek_parent (klass);
#line 200 "banshee-plugin.vala"
	((SynapseActionClass *) klass)->do_execute = (void (*) (SynapseAction*, SynapseMatch*, SynapseMatch*)) synapse_banshee_actions_add_to_playlist_real_do_execute;
#line 200 "banshee-plugin.vala"
	((SynapseActionClass *) klass)->valid_for_match = (gboolean (*) (SynapseAction*, SynapseMatch*)) synapse_banshee_actions_add_to_playlist_real_valid_for_match;
#line 3282 "banshee-plugin.c"
}

static void
synapse_banshee_actions_add_to_playlist_instance_init (SynapseBansheeActionsAddToPlaylist * self,
                                                       gpointer klass)
{
}

static GType
synapse_banshee_actions_add_to_playlist_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseBansheeActionsAddToPlaylistClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_banshee_actions_add_to_playlist_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseBansheeActionsAddToPlaylist), 0, (GInstanceInitFunc) synapse_banshee_actions_add_to_playlist_instance_init, NULL };
	GType synapse_banshee_actions_add_to_playlist_type_id;
	synapse_banshee_actions_add_to_playlist_type_id = g_type_register_static (SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_ACTION, "SynapseBansheeActionsAddToPlaylist", &g_define_type_info, 0);
	return synapse_banshee_actions_add_to_playlist_type_id;
}

static GType
synapse_banshee_actions_add_to_playlist_get_type (void)
{
	static volatile gsize synapse_banshee_actions_add_to_playlist_type_id__once = 0;
	if (g_once_init_enter (&synapse_banshee_actions_add_to_playlist_type_id__once)) {
		GType synapse_banshee_actions_add_to_playlist_type_id;
		synapse_banshee_actions_add_to_playlist_type_id = synapse_banshee_actions_add_to_playlist_get_type_once ();
		g_once_init_leave (&synapse_banshee_actions_add_to_playlist_type_id__once, synapse_banshee_actions_add_to_playlist_type_id);
	}
	return synapse_banshee_actions_add_to_playlist_type_id__once;
}

static SynapseBansheeActionsPlayNow*
synapse_banshee_actions_play_now_construct (GType object_type)
{
	SynapseBansheeActionsPlayNow * self = NULL;
#line 241 "banshee-plugin.vala"
	self = (SynapseBansheeActionsPlayNow*) g_object_new (object_type, "title", _ ("Play in Banshee"), "description", _ ("Clears the current playlist and plays the song"), "icon-name", "media-playback-start", "has-thumbnail", FALSE, "default-relevancy", SYNAPSE_MATCH_SCORE_ABOVE_AVERAGE, NULL);
#line 239 "banshee-plugin.vala"
	return self;
#line 3320 "banshee-plugin.c"
}

static SynapseBansheeActionsPlayNow*
synapse_banshee_actions_play_now_new (void)
{
#line 239 "banshee-plugin.vala"
	return synapse_banshee_actions_play_now_construct (SYNAPSE_BANSHEE_ACTIONS_TYPE_PLAY_NOW);
#line 3328 "banshee-plugin.c"
}

static void
synapse_banshee_actions_play_now_real_do_execute (SynapseAction* base,
                                                  SynapseMatch* match,
                                                  SynapseMatch* target)
{
	SynapseBansheeActionsPlayNow * self;
	SynapseUriMatch* uri = NULL;
	SynapseUriMatch* _tmp0_;
	gboolean _tmp1_ = FALSE;
	SynapseUriMatch* _tmp2_;
	SynapseQueryFlags _tmp3_;
	SynapseQueryFlags _tmp4_;
	GError* _inner_error0_ = NULL;
#line 247 "banshee-plugin.vala"
	self = (SynapseBansheeActionsPlayNow*) base;
#line 247 "banshee-plugin.vala"
	g_return_if_fail (match != NULL);
#line 249 "banshee-plugin.vala"
	uri = G_TYPE_CHECK_INSTANCE_TYPE (match, SYNAPSE_TYPE_URI_MATCH) ? ((SynapseUriMatch*) match) : NULL;
#line 250 "banshee-plugin.vala"
	_tmp0_ = uri;
#line 250 "banshee-plugin.vala"
	g_return_if_fail (_tmp0_ != NULL);
#line 251 "banshee-plugin.vala"
	_tmp2_ = uri;
#line 251 "banshee-plugin.vala"
	_tmp3_ = synapse_uri_match_get_file_type (_tmp2_);
#line 251 "banshee-plugin.vala"
	_tmp4_ = _tmp3_;
#line 251 "banshee-plugin.vala"
	if ((_tmp4_ & SYNAPSE_QUERY_FLAGS_AUDIO) != 0) {
#line 251 "banshee-plugin.vala"
		_tmp1_ = TRUE;
#line 3364 "banshee-plugin.c"
	} else {
		SynapseUriMatch* _tmp5_;
		SynapseQueryFlags _tmp6_;
		SynapseQueryFlags _tmp7_;
#line 252 "banshee-plugin.vala"
		_tmp5_ = uri;
#line 252 "banshee-plugin.vala"
		_tmp6_ = synapse_uri_match_get_file_type (_tmp5_);
#line 252 "banshee-plugin.vala"
		_tmp7_ = _tmp6_;
#line 252 "banshee-plugin.vala"
		_tmp1_ = (_tmp7_ & SYNAPSE_QUERY_FLAGS_VIDEO) != 0;
#line 3377 "banshee-plugin.c"
	}
#line 251 "banshee-plugin.vala"
	g_return_if_fail (_tmp1_);
#line 3381 "banshee-plugin.c"
	{
		SynapseBansheePlayerEngine* player = NULL;
		SynapseBansheePlayerEngine* _tmp8_;
		SynapseBansheePlayerEngine* _tmp9_;
		SynapseUriMatch* _tmp10_;
		const gchar* _tmp11_;
		const gchar* _tmp12_;
		SynapseBansheePlayerEngine* _tmp13_;
#line 254 "banshee-plugin.vala"
		_tmp8_ = (SynapseBansheePlayerEngine*) g_initable_new (SYNAPSE_TYPE_BANSHEE_PLAYER_ENGINE_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_BANSHEE_PLAYER_ENGINE_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_BANSHEE_PLAYER_ENGINE_OBJECT_PATH, "g-interface-name", "org.bansheeproject.Banshee.PlayerEngine", NULL);
#line 254 "banshee-plugin.vala"
		player = (SynapseBansheePlayerEngine*) _tmp8_;
#line 254 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 3396 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 257 "banshee-plugin.vala"
		_tmp9_ = player;
#line 257 "banshee-plugin.vala"
		_tmp10_ = uri;
#line 257 "banshee-plugin.vala"
		_tmp11_ = synapse_uri_match_get_uri (_tmp10_);
#line 257 "banshee-plugin.vala"
		_tmp12_ = _tmp11_;
#line 257 "banshee-plugin.vala"
		synapse_banshee_player_engine_open (_tmp9_, _tmp12_, &_inner_error0_);
#line 257 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 257 "banshee-plugin.vala"
			_g_object_unref0 (player);
#line 3413 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 258 "banshee-plugin.vala"
		_tmp13_ = player;
#line 258 "banshee-plugin.vala"
		synapse_banshee_player_engine_play (_tmp13_, &_inner_error0_);
#line 258 "banshee-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 258 "banshee-plugin.vala"
			_g_object_unref0 (player);
#line 3424 "banshee-plugin.c"
			goto __catch0_g_error;
		}
#line 253 "banshee-plugin.vala"
		_g_object_unref0 (player);
#line 3429 "banshee-plugin.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		FILE* _tmp14_;
		GError* _tmp15_;
		const gchar* _tmp16_;
#line 253 "banshee-plugin.vala"
		e = _inner_error0_;
#line 253 "banshee-plugin.vala"
		_inner_error0_ = NULL;
#line 260 "banshee-plugin.vala"
		_tmp14_ = stderr;
#line 260 "banshee-plugin.vala"
		_tmp15_ = e;
#line 260 "banshee-plugin.vala"
		_tmp16_ = _tmp15_->message;
#line 260 "banshee-plugin.vala"
		fprintf (_tmp14_, "Banshee is not available.\n%s", _tmp16_);
#line 253 "banshee-plugin.vala"
		_g_error_free0 (e);
#line 3452 "banshee-plugin.c"
	}
	__finally0:
#line 253 "banshee-plugin.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 253 "banshee-plugin.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 253 "banshee-plugin.vala"
		g_clear_error (&_inner_error0_);
#line 253 "banshee-plugin.vala"
		return;
#line 3463 "banshee-plugin.c"
	}
}

static gboolean
synapse_banshee_actions_play_now_real_valid_for_match (SynapseAction* base,
                                                       SynapseMatch* match)
{
	SynapseBansheeActionsPlayNow * self;
	SynapseUriMatch* uri_match = NULL;
	SynapseUriMatch* _tmp0_;
	gboolean _tmp1_ = FALSE;
	SynapseUriMatch* _tmp2_;
	SynapseQueryFlags _tmp3_;
	SynapseQueryFlags _tmp4_;
	gboolean result;
#line 264 "banshee-plugin.vala"
	self = (SynapseBansheeActionsPlayNow*) base;
#line 264 "banshee-plugin.vala"
	g_return_val_if_fail (match != NULL, FALSE);
#line 266 "banshee-plugin.vala"
	uri_match = G_TYPE_CHECK_INSTANCE_TYPE (match, SYNAPSE_TYPE_URI_MATCH) ? ((SynapseUriMatch*) match) : NULL;
#line 267 "banshee-plugin.vala"
	_tmp0_ = uri_match;
#line 267 "banshee-plugin.vala"
	if (_tmp0_ == NULL) {
#line 268 "banshee-plugin.vala"
		result = FALSE;
#line 268 "banshee-plugin.vala"
		return result;
#line 3493 "banshee-plugin.c"
	}
#line 270 "banshee-plugin.vala"
	_tmp2_ = uri_match;
#line 270 "banshee-plugin.vala"
	_tmp3_ = synapse_uri_match_get_file_type (_tmp2_);
#line 270 "banshee-plugin.vala"
	_tmp4_ = _tmp3_;
#line 270 "banshee-plugin.vala"
	if ((_tmp4_ & SYNAPSE_QUERY_FLAGS_AUDIO) != 0) {
#line 270 "banshee-plugin.vala"
		_tmp1_ = TRUE;
#line 3505 "banshee-plugin.c"
	} else {
		SynapseUriMatch* _tmp5_;
		SynapseQueryFlags _tmp6_;
		SynapseQueryFlags _tmp7_;
#line 271 "banshee-plugin.vala"
		_tmp5_ = uri_match;
#line 271 "banshee-plugin.vala"
		_tmp6_ = synapse_uri_match_get_file_type (_tmp5_);
#line 271 "banshee-plugin.vala"
		_tmp7_ = _tmp6_;
#line 271 "banshee-plugin.vala"
		_tmp1_ = (_tmp7_ & SYNAPSE_QUERY_FLAGS_VIDEO) != 0;
#line 3518 "banshee-plugin.c"
	}
#line 270 "banshee-plugin.vala"
	result = _tmp1_;
#line 270 "banshee-plugin.vala"
	return result;
#line 3524 "banshee-plugin.c"
}

static void
synapse_banshee_actions_play_now_class_init (SynapseBansheeActionsPlayNowClass * klass,
                                             gpointer klass_data)
{
#line 237 "banshee-plugin.vala"
	synapse_banshee_actions_play_now_parent_class = g_type_class_peek_parent (klass);
#line 237 "banshee-plugin.vala"
	((SynapseActionClass *) klass)->do_execute = (void (*) (SynapseAction*, SynapseMatch*, SynapseMatch*)) synapse_banshee_actions_play_now_real_do_execute;
#line 237 "banshee-plugin.vala"
	((SynapseActionClass *) klass)->valid_for_match = (gboolean (*) (SynapseAction*, SynapseMatch*)) synapse_banshee_actions_play_now_real_valid_for_match;
#line 3537 "banshee-plugin.c"
}

static void
synapse_banshee_actions_play_now_instance_init (SynapseBansheeActionsPlayNow * self,
                                                gpointer klass)
{
}

static GType
synapse_banshee_actions_play_now_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseBansheeActionsPlayNowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_banshee_actions_play_now_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseBansheeActionsPlayNow), 0, (GInstanceInitFunc) synapse_banshee_actions_play_now_instance_init, NULL };
	GType synapse_banshee_actions_play_now_type_id;
	synapse_banshee_actions_play_now_type_id = g_type_register_static (SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_ACTION, "SynapseBansheeActionsPlayNow", &g_define_type_info, 0);
	return synapse_banshee_actions_play_now_type_id;
}

static GType
synapse_banshee_actions_play_now_get_type (void)
{
	static volatile gsize synapse_banshee_actions_play_now_type_id__once = 0;
	if (g_once_init_enter (&synapse_banshee_actions_play_now_type_id__once)) {
		GType synapse_banshee_actions_play_now_type_id;
		synapse_banshee_actions_play_now_type_id = synapse_banshee_actions_play_now_get_type_once ();
		g_once_init_leave (&synapse_banshee_actions_play_now_type_id__once, synapse_banshee_actions_play_now_type_id);
	}
	return synapse_banshee_actions_play_now_type_id__once;
}

static GObject *
synapse_banshee_actions_constructor (GType type,
                                     guint n_construct_properties,
                                     GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	SynapseBansheeActions * self;
	GeeArrayList* _tmp0_;
	GeeArrayList* _tmp1_;
	GeeList* _tmp2_;
	SynapseBansheeActionsPlayNow* _tmp3_;
	SynapseBansheeActionsPlayNow* _tmp4_;
	GeeList* _tmp5_;
	SynapseBansheeActionsAddToPlaylist* _tmp6_;
	SynapseBansheeActionsAddToPlaylist* _tmp7_;
	GeeList* _tmp8_;
	SynapseBansheeActionsPlay* _tmp9_;
	SynapseBansheeActionsPlay* _tmp10_;
	GeeList* _tmp11_;
	SynapseBansheeActionsPause* _tmp12_;
	SynapseBansheeActionsPause* _tmp13_;
	GeeList* _tmp14_;
	SynapseBansheeActionsPrevious* _tmp15_;
	SynapseBansheeActionsPrevious* _tmp16_;
	GeeList* _tmp17_;
	SynapseBansheeActionsNext* _tmp18_;
	SynapseBansheeActionsNext* _tmp19_;
#line 277 "banshee-plugin.vala"
	parent_class = G_OBJECT_CLASS (synapse_banshee_actions_parent_class);
#line 277 "banshee-plugin.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 277 "banshee-plugin.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_TYPE_BANSHEE_ACTIONS, SynapseBansheeActions);
#line 279 "banshee-plugin.vala"
	_tmp0_ = gee_array_list_new (SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_ACTION, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 279 "banshee-plugin.vala"
	_g_object_unref0 (self->priv->actions);
#line 279 "banshee-plugin.vala"
	self->priv->actions = (GeeList*) _tmp0_;
#line 280 "banshee-plugin.vala"
	_tmp1_ = gee_array_list_new (SYNAPSE_BANSHEE_ACTIONS_TYPE_BANSHEE_CONTROL_MATCH, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 280 "banshee-plugin.vala"
	_g_object_unref0 (self->priv->matches);
#line 280 "banshee-plugin.vala"
	self->priv->matches = (GeeList*) _tmp1_;
#line 282 "banshee-plugin.vala"
	_tmp2_ = self->priv->actions;
#line 282 "banshee-plugin.vala"
	_tmp3_ = synapse_banshee_actions_play_now_new ();
#line 282 "banshee-plugin.vala"
	_tmp4_ = _tmp3_;
#line 282 "banshee-plugin.vala"
	gee_collection_add ((GeeCollection*) _tmp2_, (SynapseBansheeActionsBansheeAction*) _tmp4_);
#line 282 "banshee-plugin.vala"
	_g_object_unref0 (_tmp4_);
#line 283 "banshee-plugin.vala"
	_tmp5_ = self->priv->actions;
#line 283 "banshee-plugin.vala"
	_tmp6_ = synapse_banshee_actions_add_to_playlist_new ();
#line 283 "banshee-plugin.vala"
	_tmp7_ = _tmp6_;
#line 283 "banshee-plugin.vala"
	gee_collection_add ((GeeCollection*) _tmp5_, (SynapseBansheeActionsBansheeAction*) _tmp7_);
#line 283 "banshee-plugin.vala"
	_g_object_unref0 (_tmp7_);
#line 285 "banshee-plugin.vala"
	_tmp8_ = self->priv->matches;
#line 285 "banshee-plugin.vala"
	_tmp9_ = synapse_banshee_actions_play_new ();
#line 285 "banshee-plugin.vala"
	_tmp10_ = _tmp9_;
#line 285 "banshee-plugin.vala"
	gee_collection_add ((GeeCollection*) _tmp8_, (SynapseBansheeActionsBansheeControlMatch*) _tmp10_);
#line 285 "banshee-plugin.vala"
	_g_object_unref0 (_tmp10_);
#line 286 "banshee-plugin.vala"
	_tmp11_ = self->priv->matches;
#line 286 "banshee-plugin.vala"
	_tmp12_ = synapse_banshee_actions_pause_new ();
#line 286 "banshee-plugin.vala"
	_tmp13_ = _tmp12_;
#line 286 "banshee-plugin.vala"
	gee_collection_add ((GeeCollection*) _tmp11_, (SynapseBansheeActionsBansheeControlMatch*) _tmp13_);
#line 286 "banshee-plugin.vala"
	_g_object_unref0 (_tmp13_);
#line 287 "banshee-plugin.vala"
	_tmp14_ = self->priv->matches;
#line 287 "banshee-plugin.vala"
	_tmp15_ = synapse_banshee_actions_previous_new ();
#line 287 "banshee-plugin.vala"
	_tmp16_ = _tmp15_;
#line 287 "banshee-plugin.vala"
	gee_collection_add ((GeeCollection*) _tmp14_, (SynapseBansheeActionsBansheeControlMatch*) _tmp16_);
#line 287 "banshee-plugin.vala"
	_g_object_unref0 (_tmp16_);
#line 288 "banshee-plugin.vala"
	_tmp17_ = self->priv->matches;
#line 288 "banshee-plugin.vala"
	_tmp18_ = synapse_banshee_actions_next_new ();
#line 288 "banshee-plugin.vala"
	_tmp19_ = _tmp18_;
#line 288 "banshee-plugin.vala"
	gee_collection_add ((GeeCollection*) _tmp17_, (SynapseBansheeActionsBansheeControlMatch*) _tmp19_);
#line 288 "banshee-plugin.vala"
	_g_object_unref0 (_tmp19_);
#line 277 "banshee-plugin.vala"
	return obj;
#line 3675 "banshee-plugin.c"
}

static void
synapse_banshee_actions_class_init (SynapseBansheeActionsClass * klass,
                                    gpointer klass_data)
{
#line 51 "banshee-plugin.vala"
	synapse_banshee_actions_parent_class = g_type_class_peek_parent (klass);
#line 51 "banshee-plugin.vala"
	g_type_class_adjust_private_offset (klass, &SynapseBansheeActions_private_offset);
#line 51 "banshee-plugin.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_banshee_actions_get_property;
#line 51 "banshee-plugin.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_banshee_actions_set_property;
#line 51 "banshee-plugin.vala"
	G_OBJECT_CLASS (klass)->constructor = synapse_banshee_actions_constructor;
#line 51 "banshee-plugin.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_banshee_actions_finalize;
#line 51 "banshee-plugin.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_BANSHEE_ACTIONS_ENABLED_PROPERTY, synapse_banshee_actions_properties[SYNAPSE_BANSHEE_ACTIONS_ENABLED_PROPERTY] = g_param_spec_boolean ("enabled", "enabled", "enabled", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 82 "banshee-plugin.vala"
	synapse_banshee_actions_register_plugin ();
#line 3698 "banshee-plugin.c"
}

static void
synapse_banshee_actions_synapse_activatable_interface_init (SynapseActivatableIface * iface,
                                                            gpointer iface_data)
{
#line 51 "banshee-plugin.vala"
	synapse_banshee_actions_synapse_activatable_parent_iface = g_type_interface_peek_parent (iface);
#line 51 "banshee-plugin.vala"
	iface->activate = (void (*) (SynapseActivatable*)) synapse_banshee_actions_real_activate;
#line 51 "banshee-plugin.vala"
	iface->deactivate = (void (*) (SynapseActivatable*)) synapse_banshee_actions_real_deactivate;
#line 51 "banshee-plugin.vala"
	iface->get_enabled = synapse_banshee_actions_real_get_enabled;
#line 51 "banshee-plugin.vala"
	iface->set_enabled = synapse_banshee_actions_real_set_enabled;
#line 3715 "banshee-plugin.c"
}

static void
synapse_banshee_actions_synapse_item_provider_interface_init (SynapseItemProviderIface * iface,
                                                              gpointer iface_data)
{
#line 51 "banshee-plugin.vala"
	synapse_banshee_actions_synapse_item_provider_parent_iface = g_type_interface_peek_parent (iface);
#line 51 "banshee-plugin.vala"
	iface->search = (void (*) (SynapseItemProvider*, SynapseQuery*, GAsyncReadyCallback, gpointer)) synapse_banshee_actions_real_search;
#line 51 "banshee-plugin.vala"
	iface->search_finish = (SynapseResultSet* (*) (SynapseItemProvider*, GAsyncResult*, GError**)) synapse_banshee_actions_search_finish;
#line 3728 "banshee-plugin.c"
}

static void
synapse_banshee_actions_synapse_action_provider_interface_init (SynapseActionProviderIface * iface,
                                                                gpointer iface_data)
{
#line 51 "banshee-plugin.vala"
	synapse_banshee_actions_synapse_action_provider_parent_iface = g_type_interface_peek_parent (iface);
#line 51 "banshee-plugin.vala"
	iface->find_for_match = (SynapseResultSet* (*) (SynapseActionProvider*, SynapseQuery*, SynapseMatch*)) synapse_banshee_actions_real_find_for_match;
#line 3739 "banshee-plugin.c"
}

static void
synapse_banshee_actions_instance_init (SynapseBansheeActions * self,
                                       gpointer klass)
{
#line 51 "banshee-plugin.vala"
	self->priv = synapse_banshee_actions_get_instance_private (self);
#line 53 "banshee-plugin.vala"
	self->priv->_enabled = TRUE;
#line 3750 "banshee-plugin.c"
}

static void
synapse_banshee_actions_finalize (GObject * obj)
{
	SynapseBansheeActions * self;
#line 51 "banshee-plugin.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_TYPE_BANSHEE_ACTIONS, SynapseBansheeActions);
#line 274 "banshee-plugin.vala"
	_g_object_unref0 (self->priv->actions);
#line 275 "banshee-plugin.vala"
	_g_object_unref0 (self->priv->matches);
#line 51 "banshee-plugin.vala"
	G_OBJECT_CLASS (synapse_banshee_actions_parent_class)->finalize (obj);
#line 3765 "banshee-plugin.c"
}

static GType
synapse_banshee_actions_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseBansheeActionsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_banshee_actions_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseBansheeActions), 0, (GInstanceInitFunc) synapse_banshee_actions_instance_init, NULL };
	static const GInterfaceInfo synapse_activatable_info = { (GInterfaceInitFunc) synapse_banshee_actions_synapse_activatable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	static const GInterfaceInfo synapse_item_provider_info = { (GInterfaceInitFunc) synapse_banshee_actions_synapse_item_provider_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	static const GInterfaceInfo synapse_action_provider_info = { (GInterfaceInitFunc) synapse_banshee_actions_synapse_action_provider_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType synapse_banshee_actions_type_id;
	synapse_banshee_actions_type_id = g_type_register_static (G_TYPE_OBJECT, "SynapseBansheeActions", &g_define_type_info, 0);
	g_type_add_interface_static (synapse_banshee_actions_type_id, SYNAPSE_TYPE_ACTIVATABLE, &synapse_activatable_info);
	g_type_add_interface_static (synapse_banshee_actions_type_id, SYNAPSE_TYPE_ITEM_PROVIDER, &synapse_item_provider_info);
	g_type_add_interface_static (synapse_banshee_actions_type_id, SYNAPSE_TYPE_ACTION_PROVIDER, &synapse_action_provider_info);
	SynapseBansheeActions_private_offset = g_type_add_instance_private (synapse_banshee_actions_type_id, sizeof (SynapseBansheeActionsPrivate));
	return synapse_banshee_actions_type_id;
}

GType
synapse_banshee_actions_get_type (void)
{
	static volatile gsize synapse_banshee_actions_type_id__once = 0;
	if (g_once_init_enter (&synapse_banshee_actions_type_id__once)) {
		GType synapse_banshee_actions_type_id;
		synapse_banshee_actions_type_id = synapse_banshee_actions_get_type_once ();
		g_once_init_leave (&synapse_banshee_actions_type_id__once, synapse_banshee_actions_type_id);
	}
	return synapse_banshee_actions_type_id__once;
}

static void
_vala_synapse_banshee_actions_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec)
{
	SynapseBansheeActions * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_TYPE_BANSHEE_ACTIONS, SynapseBansheeActions);
#line 51 "banshee-plugin.vala"
	switch (property_id) {
#line 51 "banshee-plugin.vala"
		case SYNAPSE_BANSHEE_ACTIONS_ENABLED_PROPERTY:
#line 51 "banshee-plugin.vala"
		g_value_set_boolean (value, synapse_activatable_get_enabled ((SynapseActivatable*) self));
#line 51 "banshee-plugin.vala"
		break;
#line 3812 "banshee-plugin.c"
		default:
#line 51 "banshee-plugin.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 51 "banshee-plugin.vala"
		break;
#line 3818 "banshee-plugin.c"
	}
}

static void
_vala_synapse_banshee_actions_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec)
{
	SynapseBansheeActions * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_TYPE_BANSHEE_ACTIONS, SynapseBansheeActions);
#line 51 "banshee-plugin.vala"
	switch (property_id) {
#line 51 "banshee-plugin.vala"
		case SYNAPSE_BANSHEE_ACTIONS_ENABLED_PROPERTY:
#line 51 "banshee-plugin.vala"
		synapse_activatable_set_enabled ((SynapseActivatable*) self, g_value_get_boolean (value));
#line 51 "banshee-plugin.vala"
		break;
#line 3838 "banshee-plugin.c"
		default:
#line 51 "banshee-plugin.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 51 "banshee-plugin.vala"
		break;
#line 3844 "banshee-plugin.c"
	}
}

