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

/*
 * Copyright (C) 2010 Michal Hruby <michal.mhr@gmail.com>
 * Copyright (C) 2010 Alberto Aldegheri <albyrock87+dev@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 <stdlib.h>
#include <string.h>
#include <glib.h>
#include "plugins.h"
#include <gee.h>
#include <synapse-core.h>
#include <glib/gi18n-lib.h>

#define SYNAPSE_RHYTHMBOX_PLAY_QUEUE_UNIQUE_NAME "org.gnome.Rhythmbox3"
#define SYNAPSE_RHYTHMBOX_PLAY_QUEUE_OBJECT_PATH "/org/gnome/Rhythmbox3/PlayQueue"
#define SYNAPSE_RHYTHMBOX_PLAYER_UNIQUE_NAME "org.gnome.Rhythmbox3"
#define SYNAPSE_RHYTHMBOX_PLAYER_OBJECT_PATH "/org/mpris/MediaPlayer2"
#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_RHYTHMBOX_PLAY_QUEUE (synapse_rhythmbox_play_queue_get_type ())
#define SYNAPSE_RHYTHMBOX_PLAY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_TYPE_RHYTHMBOX_PLAY_QUEUE, SynapseRhythmboxPlayQueue))
#define SYNAPSE_IS_RHYTHMBOX_PLAY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_TYPE_RHYTHMBOX_PLAY_QUEUE))
#define SYNAPSE_RHYTHMBOX_PLAY_QUEUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SYNAPSE_TYPE_RHYTHMBOX_PLAY_QUEUE, SynapseRhythmboxPlayQueueIface))

typedef struct _SynapseRhythmboxPlayQueue SynapseRhythmboxPlayQueue;
typedef struct _SynapseRhythmboxPlayQueueIface SynapseRhythmboxPlayQueueIface;

#define SYNAPSE_TYPE_RHYTHMBOX_PLAY_QUEUE_PROXY (synapse_rhythmbox_play_queue_proxy_get_type ())
typedef GDBusProxy SynapseRhythmboxPlayQueueProxy;
typedef GDBusProxyClass SynapseRhythmboxPlayQueueProxyClass;
#define _g_free0(var) (var = (g_free (var), NULL))

#define SYNAPSE_TYPE_RHYTHMBOX_PLAYER (synapse_rhythmbox_player_get_type ())
#define SYNAPSE_RHYTHMBOX_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_TYPE_RHYTHMBOX_PLAYER, SynapseRhythmboxPlayer))
#define SYNAPSE_IS_RHYTHMBOX_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_TYPE_RHYTHMBOX_PLAYER))
#define SYNAPSE_RHYTHMBOX_PLAYER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SYNAPSE_TYPE_RHYTHMBOX_PLAYER, SynapseRhythmboxPlayerIface))

typedef struct _SynapseRhythmboxPlayer SynapseRhythmboxPlayer;
typedef struct _SynapseRhythmboxPlayerIface SynapseRhythmboxPlayerIface;

#define SYNAPSE_TYPE_RHYTHMBOX_PLAYER_PROXY (synapse_rhythmbox_player_proxy_get_type ())
typedef GDBusProxy SynapseRhythmboxPlayerProxy;
typedef GDBusProxyClass SynapseRhythmboxPlayerProxyClass;

#define SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_ACTION (synapse_rhythmbox_actions_rhythmbox_action_get_type ())
#define SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_ACTION, SynapseRhythmboxActionsRhythmboxAction))
#define SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_ACTION, SynapseRhythmboxActionsRhythmboxActionClass))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_RHYTHMBOX_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_ACTION))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_RHYTHMBOX_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_ACTION))
#define SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_ACTION, SynapseRhythmboxActionsRhythmboxActionClass))

typedef struct _SynapseRhythmboxActionsRhythmboxAction SynapseRhythmboxActionsRhythmboxAction;
typedef struct _SynapseRhythmboxActionsRhythmboxActionClass SynapseRhythmboxActionsRhythmboxActionClass;

#define SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_CONTROL_MATCH (synapse_rhythmbox_actions_rhythmbox_control_match_get_type ())
#define SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_CONTROL_MATCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_CONTROL_MATCH, SynapseRhythmboxActionsRhythmboxControlMatch))
#define SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_CONTROL_MATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_CONTROL_MATCH, SynapseRhythmboxActionsRhythmboxControlMatchClass))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_RHYTHMBOX_CONTROL_MATCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_CONTROL_MATCH))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_RHYTHMBOX_CONTROL_MATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_CONTROL_MATCH))
#define SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_CONTROL_MATCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_CONTROL_MATCH, SynapseRhythmboxActionsRhythmboxControlMatchClass))

typedef struct _SynapseRhythmboxActionsRhythmboxControlMatch SynapseRhythmboxActionsRhythmboxControlMatch;
typedef struct _SynapseRhythmboxActionsRhythmboxControlMatchClass SynapseRhythmboxActionsRhythmboxControlMatchClass;
enum  {
	SYNAPSE_RHYTHMBOX_ACTIONS_0_PROPERTY,
	SYNAPSE_RHYTHMBOX_ACTIONS_ENABLED_PROPERTY,
	SYNAPSE_RHYTHMBOX_ACTIONS_NUM_PROPERTIES
};
static GParamSpec* synapse_rhythmbox_actions_properties[SYNAPSE_RHYTHMBOX_ACTIONS_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY_NOW (synapse_rhythmbox_actions_play_now_get_type ())
#define SYNAPSE_RHYTHMBOX_ACTIONS_PLAY_NOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY_NOW, SynapseRhythmboxActionsPlayNow))
#define SYNAPSE_RHYTHMBOX_ACTIONS_PLAY_NOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY_NOW, SynapseRhythmboxActionsPlayNowClass))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_PLAY_NOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY_NOW))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_PLAY_NOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY_NOW))
#define SYNAPSE_RHYTHMBOX_ACTIONS_PLAY_NOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY_NOW, SynapseRhythmboxActionsPlayNowClass))

typedef struct _SynapseRhythmboxActionsPlayNow SynapseRhythmboxActionsPlayNow;
typedef struct _SynapseRhythmboxActionsPlayNowClass SynapseRhythmboxActionsPlayNowClass;

#define SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_ADD_TO_PLAYLIST (synapse_rhythmbox_actions_add_to_playlist_get_type ())
#define SYNAPSE_RHYTHMBOX_ACTIONS_ADD_TO_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_ADD_TO_PLAYLIST, SynapseRhythmboxActionsAddToPlaylist))
#define SYNAPSE_RHYTHMBOX_ACTIONS_ADD_TO_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_ADD_TO_PLAYLIST, SynapseRhythmboxActionsAddToPlaylistClass))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_ADD_TO_PLAYLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_ADD_TO_PLAYLIST))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_ADD_TO_PLAYLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_ADD_TO_PLAYLIST))
#define SYNAPSE_RHYTHMBOX_ACTIONS_ADD_TO_PLAYLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_ADD_TO_PLAYLIST, SynapseRhythmboxActionsAddToPlaylistClass))

typedef struct _SynapseRhythmboxActionsAddToPlaylist SynapseRhythmboxActionsAddToPlaylist;
typedef struct _SynapseRhythmboxActionsAddToPlaylistClass SynapseRhythmboxActionsAddToPlaylistClass;

#define SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY (synapse_rhythmbox_actions_play_get_type ())
#define SYNAPSE_RHYTHMBOX_ACTIONS_PLAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY, SynapseRhythmboxActionsPlay))
#define SYNAPSE_RHYTHMBOX_ACTIONS_PLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY, SynapseRhythmboxActionsPlayClass))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_PLAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_PLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY))
#define SYNAPSE_RHYTHMBOX_ACTIONS_PLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY, SynapseRhythmboxActionsPlayClass))

typedef struct _SynapseRhythmboxActionsPlay SynapseRhythmboxActionsPlay;
typedef struct _SynapseRhythmboxActionsPlayClass SynapseRhythmboxActionsPlayClass;

#define SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PAUSE (synapse_rhythmbox_actions_pause_get_type ())
#define SYNAPSE_RHYTHMBOX_ACTIONS_PAUSE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PAUSE, SynapseRhythmboxActionsPause))
#define SYNAPSE_RHYTHMBOX_ACTIONS_PAUSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PAUSE, SynapseRhythmboxActionsPauseClass))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_PAUSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PAUSE))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_PAUSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PAUSE))
#define SYNAPSE_RHYTHMBOX_ACTIONS_PAUSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PAUSE, SynapseRhythmboxActionsPauseClass))

typedef struct _SynapseRhythmboxActionsPause SynapseRhythmboxActionsPause;
typedef struct _SynapseRhythmboxActionsPauseClass SynapseRhythmboxActionsPauseClass;

#define SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PREVIOUS (synapse_rhythmbox_actions_previous_get_type ())
#define SYNAPSE_RHYTHMBOX_ACTIONS_PREVIOUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PREVIOUS, SynapseRhythmboxActionsPrevious))
#define SYNAPSE_RHYTHMBOX_ACTIONS_PREVIOUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PREVIOUS, SynapseRhythmboxActionsPreviousClass))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_PREVIOUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PREVIOUS))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_PREVIOUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PREVIOUS))
#define SYNAPSE_RHYTHMBOX_ACTIONS_PREVIOUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PREVIOUS, SynapseRhythmboxActionsPreviousClass))

typedef struct _SynapseRhythmboxActionsPrevious SynapseRhythmboxActionsPrevious;
typedef struct _SynapseRhythmboxActionsPreviousClass SynapseRhythmboxActionsPreviousClass;

#define SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_NEXT (synapse_rhythmbox_actions_next_get_type ())
#define SYNAPSE_RHYTHMBOX_ACTIONS_NEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_NEXT, SynapseRhythmboxActionsNext))
#define SYNAPSE_RHYTHMBOX_ACTIONS_NEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_NEXT, SynapseRhythmboxActionsNextClass))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_NEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_NEXT))
#define SYNAPSE_RHYTHMBOX_ACTIONS_IS_NEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_NEXT))
#define SYNAPSE_RHYTHMBOX_ACTIONS_NEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_NEXT, SynapseRhythmboxActionsNextClass))

typedef struct _SynapseRhythmboxActionsNext SynapseRhythmboxActionsNext;
typedef struct _SynapseRhythmboxActionsNextClass SynapseRhythmboxActionsNextClass;
typedef struct _SynapseRhythmboxActionsSearchData SynapseRhythmboxActionsSearchData;
typedef struct _SynapseRhythmboxActionsRhythmboxActionPrivate SynapseRhythmboxActionsRhythmboxActionPrivate;
enum  {
	SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_ACTION_0_PROPERTY,
	SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_ACTION_NUM_PROPERTIES
};
static GParamSpec* synapse_rhythmbox_actions_rhythmbox_action_properties[SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_ACTION_NUM_PROPERTIES];
typedef struct _SynapseRhythmboxActionsRhythmboxControlMatchPrivate SynapseRhythmboxActionsRhythmboxControlMatchPrivate;
enum  {
	SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_CONTROL_MATCH_0_PROPERTY,
	SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_CONTROL_MATCH_NUM_PROPERTIES
};
static GParamSpec* synapse_rhythmbox_actions_rhythmbox_control_match_properties[SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_CONTROL_MATCH_NUM_PROPERTIES];
typedef struct _SynapseRhythmboxActionsPlayPrivate SynapseRhythmboxActionsPlayPrivate;
enum  {
	SYNAPSE_RHYTHMBOX_ACTIONS_PLAY_0_PROPERTY,
	SYNAPSE_RHYTHMBOX_ACTIONS_PLAY_NUM_PROPERTIES
};
static GParamSpec* synapse_rhythmbox_actions_play_properties[SYNAPSE_RHYTHMBOX_ACTIONS_PLAY_NUM_PROPERTIES];
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
typedef struct _SynapseRhythmboxActionsPausePrivate SynapseRhythmboxActionsPausePrivate;
enum  {
	SYNAPSE_RHYTHMBOX_ACTIONS_PAUSE_0_PROPERTY,
	SYNAPSE_RHYTHMBOX_ACTIONS_PAUSE_NUM_PROPERTIES
};
static GParamSpec* synapse_rhythmbox_actions_pause_properties[SYNAPSE_RHYTHMBOX_ACTIONS_PAUSE_NUM_PROPERTIES];
typedef struct _SynapseRhythmboxActionsNextPrivate SynapseRhythmboxActionsNextPrivate;
enum  {
	SYNAPSE_RHYTHMBOX_ACTIONS_NEXT_0_PROPERTY,
	SYNAPSE_RHYTHMBOX_ACTIONS_NEXT_NUM_PROPERTIES
};
static GParamSpec* synapse_rhythmbox_actions_next_properties[SYNAPSE_RHYTHMBOX_ACTIONS_NEXT_NUM_PROPERTIES];
typedef struct _SynapseRhythmboxActionsPreviousPrivate SynapseRhythmboxActionsPreviousPrivate;
enum  {
	SYNAPSE_RHYTHMBOX_ACTIONS_PREVIOUS_0_PROPERTY,
	SYNAPSE_RHYTHMBOX_ACTIONS_PREVIOUS_NUM_PROPERTIES
};
static GParamSpec* synapse_rhythmbox_actions_previous_properties[SYNAPSE_RHYTHMBOX_ACTIONS_PREVIOUS_NUM_PROPERTIES];
typedef struct _SynapseRhythmboxActionsAddToPlaylistPrivate SynapseRhythmboxActionsAddToPlaylistPrivate;
enum  {
	SYNAPSE_RHYTHMBOX_ACTIONS_ADD_TO_PLAYLIST_0_PROPERTY,
	SYNAPSE_RHYTHMBOX_ACTIONS_ADD_TO_PLAYLIST_NUM_PROPERTIES
};
static GParamSpec* synapse_rhythmbox_actions_add_to_playlist_properties[SYNAPSE_RHYTHMBOX_ACTIONS_ADD_TO_PLAYLIST_NUM_PROPERTIES];
typedef struct _SynapseRhythmboxActionsPlayNowPrivate SynapseRhythmboxActionsPlayNowPrivate;
enum  {
	SYNAPSE_RHYTHMBOX_ACTIONS_PLAY_NOW_0_PROPERTY,
	SYNAPSE_RHYTHMBOX_ACTIONS_PLAY_NOW_NUM_PROPERTIES
};
static GParamSpec* synapse_rhythmbox_actions_play_now_properties[SYNAPSE_RHYTHMBOX_ACTIONS_PLAY_NOW_NUM_PROPERTIES];

struct _SynapseRhythmboxPlayQueueIface {
	GTypeInterface parent_iface;
	void (*add_to_queue) (SynapseRhythmboxPlayQueue* self, const gchar* uri, GError** error);
};

struct _SynapseRhythmboxPlayerIface {
	GTypeInterface parent_iface;
	void (*next) (SynapseRhythmboxPlayer* self, GError** error);
	void (*open_uri) (SynapseRhythmboxPlayer* self, const gchar* uri, GError** error);
	void (*pause) (SynapseRhythmboxPlayer* self, GError** error);
	void (*play) (SynapseRhythmboxPlayer* self, GError** error);
	void (*previous) (SynapseRhythmboxPlayer* self, GError** error);
	gchar* (*get_playback_status) (SynapseRhythmboxPlayer* self);
};

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

struct _SynapseRhythmboxActionsSearchData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	SynapseRhythmboxActions* 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_;
	SynapseRhythmboxActionsRhythmboxControlMatch* action;
	GeeList* _tmp11_;
	gpointer _tmp12_;
	SynapseRhythmboxActionsRhythmboxControlMatch* _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_;
	SynapseRhythmboxActionsRhythmboxControlMatch* _tmp25_;
	const gchar* _tmp26_;
	const gchar* _tmp27_;
	SynapseResultSet* _tmp28_;
	SynapseRhythmboxActionsRhythmboxControlMatch* _tmp29_;
	GeeMapEntry* _tmp30_;
	gconstpointer _tmp31_;
	gconstpointer _tmp32_;
	GError* _inner_error0_;
};

struct _SynapseRhythmboxActionsRhythmboxAction {
	SynapseAction parent_instance;
	SynapseRhythmboxActionsRhythmboxActionPrivate * priv;
};

struct _SynapseRhythmboxActionsRhythmboxActionClass {
	SynapseActionClass parent_class;
	gint (*get_relevancy) (SynapseRhythmboxActionsRhythmboxAction* self);
	gboolean (*action_available) (SynapseRhythmboxActionsRhythmboxAction* self);
};

struct _SynapseRhythmboxActionsRhythmboxControlMatch {
	SynapseActionMatch parent_instance;
	SynapseRhythmboxActionsRhythmboxControlMatchPrivate * priv;
};

struct _SynapseRhythmboxActionsRhythmboxControlMatchClass {
	SynapseActionMatchClass parent_class;
	gboolean (*action_available) (SynapseRhythmboxActionsRhythmboxControlMatch* self);
};

struct _SynapseRhythmboxActionsPlay {
	SynapseRhythmboxActionsRhythmboxControlMatch parent_instance;
	SynapseRhythmboxActionsPlayPrivate * priv;
};

struct _SynapseRhythmboxActionsPlayClass {
	SynapseRhythmboxActionsRhythmboxControlMatchClass parent_class;
};

struct _SynapseRhythmboxActionsPause {
	SynapseRhythmboxActionsRhythmboxControlMatch parent_instance;
	SynapseRhythmboxActionsPausePrivate * priv;
};

struct _SynapseRhythmboxActionsPauseClass {
	SynapseRhythmboxActionsRhythmboxControlMatchClass parent_class;
};

struct _SynapseRhythmboxActionsNext {
	SynapseRhythmboxActionsRhythmboxControlMatch parent_instance;
	SynapseRhythmboxActionsNextPrivate * priv;
};

struct _SynapseRhythmboxActionsNextClass {
	SynapseRhythmboxActionsRhythmboxControlMatchClass parent_class;
};

struct _SynapseRhythmboxActionsPrevious {
	SynapseRhythmboxActionsRhythmboxControlMatch parent_instance;
	SynapseRhythmboxActionsPreviousPrivate * priv;
};

struct _SynapseRhythmboxActionsPreviousClass {
	SynapseRhythmboxActionsRhythmboxControlMatchClass parent_class;
};

struct _SynapseRhythmboxActionsAddToPlaylist {
	SynapseRhythmboxActionsRhythmboxAction parent_instance;
	SynapseRhythmboxActionsAddToPlaylistPrivate * priv;
};

struct _SynapseRhythmboxActionsAddToPlaylistClass {
	SynapseRhythmboxActionsRhythmboxActionClass parent_class;
};

struct _SynapseRhythmboxActionsPlayNow {
	SynapseRhythmboxActionsRhythmboxAction parent_instance;
	SynapseRhythmboxActionsPlayNowPrivate * priv;
};

struct _SynapseRhythmboxActionsPlayNowClass {
	SynapseRhythmboxActionsRhythmboxActionClass parent_class;
};

static gint SynapseRhythmboxActions_private_offset;
static gpointer synapse_rhythmbox_actions_parent_class = NULL;
static gpointer synapse_rhythmbox_actions_rhythmbox_action_parent_class = NULL;
static gpointer synapse_rhythmbox_actions_rhythmbox_control_match_parent_class = NULL;
static gpointer synapse_rhythmbox_actions_play_parent_class = NULL;
static gpointer synapse_rhythmbox_actions_pause_parent_class = NULL;
static gpointer synapse_rhythmbox_actions_next_parent_class = NULL;
static gpointer synapse_rhythmbox_actions_previous_parent_class = NULL;
static gpointer synapse_rhythmbox_actions_add_to_playlist_parent_class = NULL;
static gpointer synapse_rhythmbox_actions_play_now_parent_class = NULL;
static SynapseActivatableIface * synapse_rhythmbox_actions_synapse_activatable_parent_iface = NULL;
static SynapseItemProviderIface * synapse_rhythmbox_actions_synapse_item_provider_parent_iface = NULL;
static SynapseActionProviderIface * synapse_rhythmbox_actions_synapse_action_provider_parent_iface = NULL;

VALA_EXTERN GType synapse_rhythmbox_play_queue_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint synapse_rhythmbox_play_queue_register_object (void* object,
                                                    GDBusConnection* connection,
                                                    const gchar* path,
                                                    GError** error);
VALA_EXTERN GType synapse_rhythmbox_play_queue_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void synapse_rhythmbox_play_queue_add_to_queue (SynapseRhythmboxPlayQueue* self,
                                                const gchar* uri,
                                                GError** error);
static GType synapse_rhythmbox_play_queue_get_type_once (void);
static void synapse_rhythmbox_play_queue_proxy_g_signal (GDBusProxy* proxy,
                                                  const gchar* sender_name,
                                                  const gchar* signal_name,
                                                  GVariant* parameters);
static void synapse_rhythmbox_play_queue_proxy_add_to_queue (SynapseRhythmboxPlayQueue* self,
                                                      const gchar* uri,
                                                      GError** error);
static void synapse_rhythmbox_play_queue_proxy_synapse_rhythmbox_play_queue_interface_init (SynapseRhythmboxPlayQueueIface* iface);
static void _dbus_synapse_rhythmbox_play_queue_add_to_queue (SynapseRhythmboxPlayQueue* self,
                                                      GVariant* _parameters_,
                                                      GDBusMethodInvocation* invocation);
static void synapse_rhythmbox_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_rhythmbox_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_rhythmbox_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_rhythmbox_play_queue_unregister_object (gpointer user_data);
VALA_EXTERN GType synapse_rhythmbox_player_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint synapse_rhythmbox_player_register_object (void* object,
                                                GDBusConnection* connection,
                                                const gchar* path,
                                                GError** error);
VALA_EXTERN GType synapse_rhythmbox_player_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void synapse_rhythmbox_player_next (SynapseRhythmboxPlayer* self,
                                    GError** error);
VALA_EXTERN void synapse_rhythmbox_player_open_uri (SynapseRhythmboxPlayer* self,
                                        const gchar* uri,
                                        GError** error);
VALA_EXTERN void synapse_rhythmbox_player_pause (SynapseRhythmboxPlayer* self,
                                     GError** error);
VALA_EXTERN void synapse_rhythmbox_player_play (SynapseRhythmboxPlayer* self,
                                    GError** error);
VALA_EXTERN void synapse_rhythmbox_player_previous (SynapseRhythmboxPlayer* self,
                                        GError** error);
VALA_EXTERN gchar* synapse_rhythmbox_player_get_playback_status (SynapseRhythmboxPlayer* self);
static GType synapse_rhythmbox_player_get_type_once (void);
static void synapse_rhythmbox_player_proxy_g_signal (GDBusProxy* proxy,
                                              const gchar* sender_name,
                                              const gchar* signal_name,
                                              GVariant* parameters);
static void synapse_rhythmbox_player_proxy_next (SynapseRhythmboxPlayer* self,
                                          GError** error);
static void synapse_rhythmbox_player_proxy_open_uri (SynapseRhythmboxPlayer* self,
                                              const gchar* uri,
                                              GError** error);
static void synapse_rhythmbox_player_proxy_pause (SynapseRhythmboxPlayer* self,
                                           GError** error);
static void synapse_rhythmbox_player_proxy_play (SynapseRhythmboxPlayer* self,
                                          GError** error);
static void synapse_rhythmbox_player_proxy_previous (SynapseRhythmboxPlayer* self,
                                              GError** error);
static gchar* synapse_rhythmbox_player_dbus_proxy_get_playback_status (SynapseRhythmboxPlayer* self);
static void synapse_rhythmbox_player_proxy_synapse_rhythmbox_player_interface_init (SynapseRhythmboxPlayerIface* iface);
static void _dbus_synapse_rhythmbox_player_next (SynapseRhythmboxPlayer* self,
                                          GVariant* _parameters_,
                                          GDBusMethodInvocation* invocation);
static void _dbus_synapse_rhythmbox_player_open_uri (SynapseRhythmboxPlayer* self,
                                              GVariant* _parameters_,
                                              GDBusMethodInvocation* invocation);
static void _dbus_synapse_rhythmbox_player_pause (SynapseRhythmboxPlayer* self,
                                           GVariant* _parameters_,
                                           GDBusMethodInvocation* invocation);
static void _dbus_synapse_rhythmbox_player_play (SynapseRhythmboxPlayer* self,
                                          GVariant* _parameters_,
                                          GDBusMethodInvocation* invocation);
static void _dbus_synapse_rhythmbox_player_previous (SynapseRhythmboxPlayer* self,
                                              GVariant* _parameters_,
                                              GDBusMethodInvocation* invocation);
static void synapse_rhythmbox_player_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_rhythmbox_player_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 GVariant* _dbus_synapse_rhythmbox_player_get_playback_status (SynapseRhythmboxPlayer* self);
static gboolean synapse_rhythmbox_player_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_rhythmbox_player_unregister_object (gpointer user_data);
static GType synapse_rhythmbox_actions_rhythmbox_action_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static GType synapse_rhythmbox_actions_rhythmbox_control_match_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static void synapse_rhythmbox_actions_real_activate (SynapseActivatable* base);
static SynapseRhythmboxActionsPlayNow* synapse_rhythmbox_actions_play_now_new (void);
static SynapseRhythmboxActionsPlayNow* synapse_rhythmbox_actions_play_now_construct (GType object_type);
static GType synapse_rhythmbox_actions_play_now_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static SynapseRhythmboxActionsAddToPlaylist* synapse_rhythmbox_actions_add_to_playlist_new (void);
static SynapseRhythmboxActionsAddToPlaylist* synapse_rhythmbox_actions_add_to_playlist_construct (GType object_type);
static GType synapse_rhythmbox_actions_add_to_playlist_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static SynapseRhythmboxActionsPlay* synapse_rhythmbox_actions_play_new (void);
static SynapseRhythmboxActionsPlay* synapse_rhythmbox_actions_play_construct (GType object_type);
static GType synapse_rhythmbox_actions_play_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static SynapseRhythmboxActionsPause* synapse_rhythmbox_actions_pause_new (void);
static SynapseRhythmboxActionsPause* synapse_rhythmbox_actions_pause_construct (GType object_type);
static GType synapse_rhythmbox_actions_pause_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static SynapseRhythmboxActionsPrevious* synapse_rhythmbox_actions_previous_new (void);
static SynapseRhythmboxActionsPrevious* synapse_rhythmbox_actions_previous_construct (GType object_type);
static GType synapse_rhythmbox_actions_previous_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static SynapseRhythmboxActionsNext* synapse_rhythmbox_actions_next_new (void);
static SynapseRhythmboxActionsNext* synapse_rhythmbox_actions_next_construct (GType object_type);
static GType synapse_rhythmbox_actions_next_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static void synapse_rhythmbox_actions_real_deactivate (SynapseActivatable* base);
static void synapse_rhythmbox_actions_register_plugin (void);
static void _synapse_rhythmbox_actions_register_plugin_synapse_plugin_register_func (void);
static void synapse_rhythmbox_actions_real_search_data_free (gpointer _data);
static void synapse_rhythmbox_actions_real_search (SynapseItemProvider* base,
                                            SynapseQuery* q,
                                            GAsyncReadyCallback _callback_,
                                            gpointer _user_data_);
static gboolean synapse_rhythmbox_actions_real_search_co (SynapseRhythmboxActionsSearchData* _data_);
static gboolean synapse_rhythmbox_actions_rhythmbox_control_match_action_available (SynapseRhythmboxActionsRhythmboxControlMatch* self);
static SynapseResultSet* synapse_rhythmbox_actions_real_find_for_match (SynapseActionProvider* base,
                                                                 SynapseQuery* query,
                                                                 SynapseMatch* match);
static gint synapse_rhythmbox_actions_rhythmbox_action_get_relevancy (SynapseRhythmboxActionsRhythmboxAction* self);
static gboolean synapse_rhythmbox_actions_rhythmbox_action_action_available (SynapseRhythmboxActionsRhythmboxAction* self);
static gint synapse_rhythmbox_actions_rhythmbox_action_real_get_relevancy (SynapseRhythmboxActionsRhythmboxAction* self);
static gboolean synapse_rhythmbox_actions_rhythmbox_action_real_action_available (SynapseRhythmboxActionsRhythmboxAction* self);
static SynapseRhythmboxActionsRhythmboxAction* synapse_rhythmbox_actions_rhythmbox_action_construct (GType object_type);
static GType synapse_rhythmbox_actions_rhythmbox_action_get_type_once (void);
static gboolean synapse_rhythmbox_actions_rhythmbox_control_match_real_action_available (SynapseRhythmboxActionsRhythmboxControlMatch* self);
static SynapseRhythmboxActionsRhythmboxControlMatch* synapse_rhythmbox_actions_rhythmbox_control_match_construct (GType object_type);
static GType synapse_rhythmbox_actions_rhythmbox_control_match_get_type_once (void);
static void synapse_rhythmbox_actions_play_real_do_action (SynapseActionMatch* base);
static GType synapse_rhythmbox_actions_play_get_type_once (void);
static void synapse_rhythmbox_actions_pause_real_do_action (SynapseActionMatch* base);
static GType synapse_rhythmbox_actions_pause_get_type_once (void);
static void synapse_rhythmbox_actions_next_real_do_action (SynapseActionMatch* base);
static GType synapse_rhythmbox_actions_next_get_type_once (void);
static void synapse_rhythmbox_actions_previous_real_do_action (SynapseActionMatch* base);
static GType synapse_rhythmbox_actions_previous_get_type_once (void);
static void synapse_rhythmbox_actions_add_to_playlist_real_do_execute (SynapseAction* base,
                                                                SynapseMatch* match,
                                                                SynapseMatch* target);
static gboolean synapse_rhythmbox_actions_add_to_playlist_real_valid_for_match (SynapseAction* base,
                                                                         SynapseMatch* match);
static GType synapse_rhythmbox_actions_add_to_playlist_get_type_once (void);
static void synapse_rhythmbox_actions_play_now_real_do_execute (SynapseAction* base,
                                                         SynapseMatch* match,
                                                         SynapseMatch* target);
static gboolean synapse_rhythmbox_actions_play_now_real_valid_for_match (SynapseAction* base,
                                                                  SynapseMatch* match);
static GType synapse_rhythmbox_actions_play_now_get_type_once (void);
static GObject * synapse_rhythmbox_actions_constructor (GType type,
                                                 guint n_construct_properties,
                                                 GObjectConstructParam * construct_properties);
static void synapse_rhythmbox_actions_finalize (GObject * obj);
static GType synapse_rhythmbox_actions_get_type_once (void);
static void _vala_synapse_rhythmbox_actions_get_property (GObject * object,
                                                   guint property_id,
                                                   GValue * value,
                                                   GParamSpec * pspec);
static void _vala_synapse_rhythmbox_actions_set_property (GObject * object,
                                                   guint property_id,
                                                   const GValue * value,
                                                   GParamSpec * pspec);

static const GDBusArgInfo _synapse_rhythmbox_play_queue_dbus_arg_info_add_to_queue_uri = {-1, "uri", "s", NULL};
static const GDBusArgInfo * const _synapse_rhythmbox_play_queue_dbus_arg_info_add_to_queue_in[] = {&_synapse_rhythmbox_play_queue_dbus_arg_info_add_to_queue_uri, NULL};
static const GDBusArgInfo * const _synapse_rhythmbox_play_queue_dbus_arg_info_add_to_queue_out[] = {NULL};
static const GDBusMethodInfo _synapse_rhythmbox_play_queue_dbus_method_info_add_to_queue = {-1, "AddToQueue", (GDBusArgInfo **) (&_synapse_rhythmbox_play_queue_dbus_arg_info_add_to_queue_in), (GDBusArgInfo **) (&_synapse_rhythmbox_play_queue_dbus_arg_info_add_to_queue_out), NULL};
static const GDBusMethodInfo * const _synapse_rhythmbox_play_queue_dbus_method_info[] = {&_synapse_rhythmbox_play_queue_dbus_method_info_add_to_queue, NULL};
static const GDBusSignalInfo * const _synapse_rhythmbox_play_queue_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo * const _synapse_rhythmbox_play_queue_dbus_property_info[] = {NULL};
static const GDBusInterfaceInfo _synapse_rhythmbox_play_queue_dbus_interface_info = {-1, "org.gnome.Rhythmbox3.PlayQueue", (GDBusMethodInfo **) (&_synapse_rhythmbox_play_queue_dbus_method_info), (GDBusSignalInfo **) (&_synapse_rhythmbox_play_queue_dbus_signal_info), (GDBusPropertyInfo **) (&_synapse_rhythmbox_play_queue_dbus_property_info), NULL};
static const GDBusInterfaceVTable _synapse_rhythmbox_play_queue_dbus_interface_vtable = {synapse_rhythmbox_play_queue_dbus_interface_method_call, synapse_rhythmbox_play_queue_dbus_interface_get_property, synapse_rhythmbox_play_queue_dbus_interface_set_property};
static const GDBusArgInfo * const _synapse_rhythmbox_player_dbus_arg_info_next_in[] = {NULL};
static const GDBusArgInfo * const _synapse_rhythmbox_player_dbus_arg_info_next_out[] = {NULL};
static const GDBusMethodInfo _synapse_rhythmbox_player_dbus_method_info_next = {-1, "Next", (GDBusArgInfo **) (&_synapse_rhythmbox_player_dbus_arg_info_next_in), (GDBusArgInfo **) (&_synapse_rhythmbox_player_dbus_arg_info_next_out), NULL};
static const GDBusArgInfo _synapse_rhythmbox_player_dbus_arg_info_open_uri_uri = {-1, "uri", "s", NULL};
static const GDBusArgInfo * const _synapse_rhythmbox_player_dbus_arg_info_open_uri_in[] = {&_synapse_rhythmbox_player_dbus_arg_info_open_uri_uri, NULL};
static const GDBusArgInfo * const _synapse_rhythmbox_player_dbus_arg_info_open_uri_out[] = {NULL};
static const GDBusMethodInfo _synapse_rhythmbox_player_dbus_method_info_open_uri = {-1, "OpenUri", (GDBusArgInfo **) (&_synapse_rhythmbox_player_dbus_arg_info_open_uri_in), (GDBusArgInfo **) (&_synapse_rhythmbox_player_dbus_arg_info_open_uri_out), NULL};
static const GDBusArgInfo * const _synapse_rhythmbox_player_dbus_arg_info_pause_in[] = {NULL};
static const GDBusArgInfo * const _synapse_rhythmbox_player_dbus_arg_info_pause_out[] = {NULL};
static const GDBusMethodInfo _synapse_rhythmbox_player_dbus_method_info_pause = {-1, "Pause", (GDBusArgInfo **) (&_synapse_rhythmbox_player_dbus_arg_info_pause_in), (GDBusArgInfo **) (&_synapse_rhythmbox_player_dbus_arg_info_pause_out), NULL};
static const GDBusArgInfo * const _synapse_rhythmbox_player_dbus_arg_info_play_in[] = {NULL};
static const GDBusArgInfo * const _synapse_rhythmbox_player_dbus_arg_info_play_out[] = {NULL};
static const GDBusMethodInfo _synapse_rhythmbox_player_dbus_method_info_play = {-1, "Play", (GDBusArgInfo **) (&_synapse_rhythmbox_player_dbus_arg_info_play_in), (GDBusArgInfo **) (&_synapse_rhythmbox_player_dbus_arg_info_play_out), NULL};
static const GDBusArgInfo * const _synapse_rhythmbox_player_dbus_arg_info_previous_in[] = {NULL};
static const GDBusArgInfo * const _synapse_rhythmbox_player_dbus_arg_info_previous_out[] = {NULL};
static const GDBusMethodInfo _synapse_rhythmbox_player_dbus_method_info_previous = {-1, "Previous", (GDBusArgInfo **) (&_synapse_rhythmbox_player_dbus_arg_info_previous_in), (GDBusArgInfo **) (&_synapse_rhythmbox_player_dbus_arg_info_previous_out), NULL};
static const GDBusMethodInfo * const _synapse_rhythmbox_player_dbus_method_info[] = {&_synapse_rhythmbox_player_dbus_method_info_next, &_synapse_rhythmbox_player_dbus_method_info_open_uri, &_synapse_rhythmbox_player_dbus_method_info_pause, &_synapse_rhythmbox_player_dbus_method_info_play, &_synapse_rhythmbox_player_dbus_method_info_previous, NULL};
static const GDBusSignalInfo * const _synapse_rhythmbox_player_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo _synapse_rhythmbox_player_dbus_property_info_playback_status = {-1, "PlaybackStatus", "s", G_DBUS_PROPERTY_INFO_FLAGS_READABLE, NULL};
static const GDBusPropertyInfo * const _synapse_rhythmbox_player_dbus_property_info[] = {&_synapse_rhythmbox_player_dbus_property_info_playback_status, NULL};
static const GDBusInterfaceInfo _synapse_rhythmbox_player_dbus_interface_info = {-1, "org.mpris.MediaPlayer2.Player", (GDBusMethodInfo **) (&_synapse_rhythmbox_player_dbus_method_info), (GDBusSignalInfo **) (&_synapse_rhythmbox_player_dbus_signal_info), (GDBusPropertyInfo **) (&_synapse_rhythmbox_player_dbus_property_info), NULL};
static const GDBusInterfaceVTable _synapse_rhythmbox_player_dbus_interface_vtable = {synapse_rhythmbox_player_dbus_interface_method_call, synapse_rhythmbox_player_dbus_interface_get_property, synapse_rhythmbox_player_dbus_interface_set_property};

void
synapse_rhythmbox_play_queue_add_to_queue (SynapseRhythmboxPlayQueue* self,
                                           const gchar* uri,
                                           GError** error)
{
	SynapseRhythmboxPlayQueueIface* _iface_;
#line 30 "rhythmbox-plugin.vala"
	g_return_if_fail (self != NULL);
#line 30 "rhythmbox-plugin.vala"
	_iface_ = SYNAPSE_RHYTHMBOX_PLAY_QUEUE_GET_INTERFACE (self);
#line 30 "rhythmbox-plugin.vala"
	if (_iface_->add_to_queue) {
#line 30 "rhythmbox-plugin.vala"
		_iface_->add_to_queue (self, uri, error);
#line 620 "rhythmbox-plugin.c"
	}
}

static void
synapse_rhythmbox_play_queue_default_init (SynapseRhythmboxPlayQueueIface * iface,
                                           gpointer iface_data)
{
}

static GType
synapse_rhythmbox_play_queue_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseRhythmboxPlayQueueIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_rhythmbox_play_queue_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType synapse_rhythmbox_play_queue_type_id;
	synapse_rhythmbox_play_queue_type_id = g_type_register_static (G_TYPE_INTERFACE, "SynapseRhythmboxPlayQueue", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (synapse_rhythmbox_play_queue_type_id, G_TYPE_OBJECT);
	g_type_set_qdata (synapse_rhythmbox_play_queue_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) synapse_rhythmbox_play_queue_proxy_get_type);
	g_type_set_qdata (synapse_rhythmbox_play_queue_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.gnome.Rhythmbox3.PlayQueue");
	g_type_set_qdata (synapse_rhythmbox_play_queue_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_synapse_rhythmbox_play_queue_dbus_interface_info));
	g_type_set_qdata (synapse_rhythmbox_play_queue_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) synapse_rhythmbox_play_queue_register_object);
	return synapse_rhythmbox_play_queue_type_id;
}

GType
synapse_rhythmbox_play_queue_get_type (void)
{
	static volatile gsize synapse_rhythmbox_play_queue_type_id__once = 0;
	if (g_once_init_enter (&synapse_rhythmbox_play_queue_type_id__once)) {
		GType synapse_rhythmbox_play_queue_type_id;
		synapse_rhythmbox_play_queue_type_id = synapse_rhythmbox_play_queue_get_type_once ();
		g_once_init_leave (&synapse_rhythmbox_play_queue_type_id__once, synapse_rhythmbox_play_queue_type_id);
	}
	return synapse_rhythmbox_play_queue_type_id__once;
}

G_DEFINE_TYPE_EXTENDED (SynapseRhythmboxPlayQueueProxy, synapse_rhythmbox_play_queue_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (SYNAPSE_TYPE_RHYTHMBOX_PLAY_QUEUE, synapse_rhythmbox_play_queue_proxy_synapse_rhythmbox_play_queue_interface_init) )
static void
synapse_rhythmbox_play_queue_proxy_class_init (SynapseRhythmboxPlayQueueProxyClass* klass)
{
#line 24 "pastebin-plugin.vala"
	G_DBUS_PROXY_CLASS (klass)->g_signal = synapse_rhythmbox_play_queue_proxy_g_signal;
#line 662 "rhythmbox-plugin.c"
}

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

static void
synapse_rhythmbox_play_queue_proxy_init (SynapseRhythmboxPlayQueueProxy* self)
{
#line 24 "pastebin-plugin.vala"
	g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_synapse_rhythmbox_play_queue_dbus_interface_info));
#line 678 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_play_queue_proxy_add_to_queue (SynapseRhythmboxPlayQueue* self,
                                                 const gchar* uri,
                                                 GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
#line 24 "pastebin-plugin.vala"
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.gnome.Rhythmbox3.PlayQueue", "AddToQueue");
#line 24 "pastebin-plugin.vala"
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (uri));
#line 24 "pastebin-plugin.vala"
	_arguments = g_variant_builder_end (&_arguments_builder);
#line 24 "pastebin-plugin.vala"
	g_dbus_message_set_body (_message, _arguments);
#line 24 "pastebin-plugin.vala"
	_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);
#line 24 "pastebin-plugin.vala"
	g_object_unref (_message);
#line 24 "pastebin-plugin.vala"
	if (!_reply_message) {
#line 24 "pastebin-plugin.vala"
		return;
#line 708 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	if (g_dbus_message_to_gerror (_reply_message, error)) {
#line 24 "pastebin-plugin.vala"
		g_object_unref (_reply_message);
#line 24 "pastebin-plugin.vala"
		return;
#line 716 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	g_object_unref (_reply_message);
#line 720 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_play_queue_proxy_synapse_rhythmbox_play_queue_interface_init (SynapseRhythmboxPlayQueueIface* iface)
{
#line 24 "pastebin-plugin.vala"
	iface->add_to_queue = synapse_rhythmbox_play_queue_proxy_add_to_queue;
#line 728 "rhythmbox-plugin.c"
}

static void
_dbus_synapse_rhythmbox_play_queue_add_to_queue (SynapseRhythmboxPlayQueue* self,
                                                 GVariant* _parameters_,
                                                 GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gchar* uri = NULL;
	GVariant* _tmp72_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
#line 24 "pastebin-plugin.vala"
	g_variant_iter_init (&_arguments_iter, _parameters_);
#line 24 "pastebin-plugin.vala"
	_tmp72_ = g_variant_iter_next_value (&_arguments_iter);
#line 24 "pastebin-plugin.vala"
	uri = g_variant_dup_string (_tmp72_, NULL);
#line 24 "pastebin-plugin.vala"
	g_variant_unref (_tmp72_);
#line 24 "pastebin-plugin.vala"
	synapse_rhythmbox_play_queue_add_to_queue (self, uri, &error);
#line 24 "pastebin-plugin.vala"
	if (error) {
#line 24 "pastebin-plugin.vala"
		g_dbus_method_invocation_take_error (invocation, error);
#line 757 "rhythmbox-plugin.c"
		goto _error;
	}
#line 24 "pastebin-plugin.vala"
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
#line 24 "pastebin-plugin.vala"
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
	_reply = g_variant_builder_end (&_reply_builder);
#line 24 "pastebin-plugin.vala"
	g_dbus_message_set_body (_reply_message, _reply);
#line 24 "pastebin-plugin.vala"
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
#line 24 "pastebin-plugin.vala"
	g_object_unref (invocation);
#line 24 "pastebin-plugin.vala"
	g_object_unref (_reply_message);
#line 774 "rhythmbox-plugin.c"
	_error:
#line 24 "pastebin-plugin.vala"
	_g_free0 (uri);
#line 778 "rhythmbox-plugin.c"
	;
}

static void
synapse_rhythmbox_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];
#line 24 "pastebin-plugin.vala"
	if (strcmp (method_name, "AddToQueue") == 0) {
#line 24 "pastebin-plugin.vala"
		_dbus_synapse_rhythmbox_play_queue_add_to_queue (object, parameters, invocation);
#line 800 "rhythmbox-plugin.c"
	} else {
#line 24 "pastebin-plugin.vala"
		g_object_unref (invocation);
#line 804 "rhythmbox-plugin.c"
	}
}

static GVariant*
synapse_rhythmbox_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];
#line 24 "pastebin-plugin.vala"
	return NULL;
#line 823 "rhythmbox-plugin.c"
}

static gboolean
synapse_rhythmbox_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];
#line 24 "pastebin-plugin.vala"
	return FALSE;
#line 842 "rhythmbox-plugin.c"
}

guint
synapse_rhythmbox_play_queue_register_object (gpointer object,
                                              GDBusConnection* connection,
                                              const gchar* path,
                                              GError** error)
{
	guint result;
	gpointer *data;
#line 24 "pastebin-plugin.vala"
	data = g_new (gpointer, 3);
#line 24 "pastebin-plugin.vala"
	data[0] = g_object_ref (object);
#line 24 "pastebin-plugin.vala"
	data[1] = g_object_ref (connection);
#line 24 "pastebin-plugin.vala"
	data[2] = g_strdup (path);
#line 24 "pastebin-plugin.vala"
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_synapse_rhythmbox_play_queue_dbus_interface_info), &_synapse_rhythmbox_play_queue_dbus_interface_vtable, data, _synapse_rhythmbox_play_queue_unregister_object, error);
#line 24 "pastebin-plugin.vala"
	if (!result) {
#line 24 "pastebin-plugin.vala"
		return 0;
#line 867 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	return result;
#line 871 "rhythmbox-plugin.c"
}

static void
_synapse_rhythmbox_play_queue_unregister_object (gpointer user_data)
{
	gpointer* data;
	data = user_data;
#line 24 "pastebin-plugin.vala"
	g_object_unref (data[0]);
#line 24 "pastebin-plugin.vala"
	g_object_unref (data[1]);
#line 24 "pastebin-plugin.vala"
	g_free (data[2]);
#line 24 "pastebin-plugin.vala"
	g_free (data);
#line 887 "rhythmbox-plugin.c"
}

void
synapse_rhythmbox_player_next (SynapseRhythmboxPlayer* self,
                               GError** error)
{
	SynapseRhythmboxPlayerIface* _iface_;
#line 42 "rhythmbox-plugin.vala"
	g_return_if_fail (self != NULL);
#line 42 "rhythmbox-plugin.vala"
	_iface_ = SYNAPSE_RHYTHMBOX_PLAYER_GET_INTERFACE (self);
#line 42 "rhythmbox-plugin.vala"
	if (_iface_->next) {
#line 42 "rhythmbox-plugin.vala"
		_iface_->next (self, error);
#line 903 "rhythmbox-plugin.c"
	}
}

void
synapse_rhythmbox_player_open_uri (SynapseRhythmboxPlayer* self,
                                   const gchar* uri,
                                   GError** error)
{
	SynapseRhythmboxPlayerIface* _iface_;
#line 43 "rhythmbox-plugin.vala"
	g_return_if_fail (self != NULL);
#line 43 "rhythmbox-plugin.vala"
	_iface_ = SYNAPSE_RHYTHMBOX_PLAYER_GET_INTERFACE (self);
#line 43 "rhythmbox-plugin.vala"
	if (_iface_->open_uri) {
#line 43 "rhythmbox-plugin.vala"
		_iface_->open_uri (self, uri, error);
#line 921 "rhythmbox-plugin.c"
	}
}

void
synapse_rhythmbox_player_pause (SynapseRhythmboxPlayer* self,
                                GError** error)
{
	SynapseRhythmboxPlayerIface* _iface_;
#line 44 "rhythmbox-plugin.vala"
	g_return_if_fail (self != NULL);
#line 44 "rhythmbox-plugin.vala"
	_iface_ = SYNAPSE_RHYTHMBOX_PLAYER_GET_INTERFACE (self);
#line 44 "rhythmbox-plugin.vala"
	if (_iface_->pause) {
#line 44 "rhythmbox-plugin.vala"
		_iface_->pause (self, error);
#line 938 "rhythmbox-plugin.c"
	}
}

void
synapse_rhythmbox_player_play (SynapseRhythmboxPlayer* self,
                               GError** error)
{
	SynapseRhythmboxPlayerIface* _iface_;
#line 45 "rhythmbox-plugin.vala"
	g_return_if_fail (self != NULL);
#line 45 "rhythmbox-plugin.vala"
	_iface_ = SYNAPSE_RHYTHMBOX_PLAYER_GET_INTERFACE (self);
#line 45 "rhythmbox-plugin.vala"
	if (_iface_->play) {
#line 45 "rhythmbox-plugin.vala"
		_iface_->play (self, error);
#line 955 "rhythmbox-plugin.c"
	}
}

void
synapse_rhythmbox_player_previous (SynapseRhythmboxPlayer* self,
                                   GError** error)
{
	SynapseRhythmboxPlayerIface* _iface_;
#line 47 "rhythmbox-plugin.vala"
	g_return_if_fail (self != NULL);
#line 47 "rhythmbox-plugin.vala"
	_iface_ = SYNAPSE_RHYTHMBOX_PLAYER_GET_INTERFACE (self);
#line 47 "rhythmbox-plugin.vala"
	if (_iface_->previous) {
#line 47 "rhythmbox-plugin.vala"
		_iface_->previous (self, error);
#line 972 "rhythmbox-plugin.c"
	}
}

gchar*
synapse_rhythmbox_player_get_playback_status (SynapseRhythmboxPlayer* self)
{
	SynapseRhythmboxPlayerIface* _iface_;
#line 40 "rhythmbox-plugin.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 40 "rhythmbox-plugin.vala"
	_iface_ = SYNAPSE_RHYTHMBOX_PLAYER_GET_INTERFACE (self);
#line 40 "rhythmbox-plugin.vala"
	if (_iface_->get_playback_status) {
#line 40 "rhythmbox-plugin.vala"
		return _iface_->get_playback_status (self);
#line 988 "rhythmbox-plugin.c"
	}
#line 40 "rhythmbox-plugin.vala"
	return NULL;
#line 992 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_player_default_init (SynapseRhythmboxPlayerIface * iface,
                                       gpointer iface_data)
{
}

static GType
synapse_rhythmbox_player_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseRhythmboxPlayerIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_rhythmbox_player_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType synapse_rhythmbox_player_type_id;
	synapse_rhythmbox_player_type_id = g_type_register_static (G_TYPE_INTERFACE, "SynapseRhythmboxPlayer", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (synapse_rhythmbox_player_type_id, G_TYPE_OBJECT);
	g_type_set_qdata (synapse_rhythmbox_player_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) synapse_rhythmbox_player_proxy_get_type);
	g_type_set_qdata (synapse_rhythmbox_player_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.mpris.MediaPlayer2.Player");
	g_type_set_qdata (synapse_rhythmbox_player_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_synapse_rhythmbox_player_dbus_interface_info));
	g_type_set_qdata (synapse_rhythmbox_player_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) synapse_rhythmbox_player_register_object);
	return synapse_rhythmbox_player_type_id;
}

GType
synapse_rhythmbox_player_get_type (void)
{
	static volatile gsize synapse_rhythmbox_player_type_id__once = 0;
	if (g_once_init_enter (&synapse_rhythmbox_player_type_id__once)) {
		GType synapse_rhythmbox_player_type_id;
		synapse_rhythmbox_player_type_id = synapse_rhythmbox_player_get_type_once ();
		g_once_init_leave (&synapse_rhythmbox_player_type_id__once, synapse_rhythmbox_player_type_id);
	}
	return synapse_rhythmbox_player_type_id__once;
}

G_DEFINE_TYPE_EXTENDED (SynapseRhythmboxPlayerProxy, synapse_rhythmbox_player_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (SYNAPSE_TYPE_RHYTHMBOX_PLAYER, synapse_rhythmbox_player_proxy_synapse_rhythmbox_player_interface_init) )
static void
synapse_rhythmbox_player_proxy_class_init (SynapseRhythmboxPlayerProxyClass* klass)
{
#line 24 "pastebin-plugin.vala"
	G_DBUS_PROXY_CLASS (klass)->g_signal = synapse_rhythmbox_player_proxy_g_signal;
#line 1033 "rhythmbox-plugin.c"
}

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

static void
synapse_rhythmbox_player_proxy_init (SynapseRhythmboxPlayerProxy* self)
{
#line 24 "pastebin-plugin.vala"
	g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_synapse_rhythmbox_player_dbus_interface_info));
#line 1049 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_player_proxy_next (SynapseRhythmboxPlayer* self,
                                     GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
#line 24 "pastebin-plugin.vala"
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.mpris.MediaPlayer2.Player", "Next");
#line 24 "pastebin-plugin.vala"
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
	_arguments = g_variant_builder_end (&_arguments_builder);
#line 24 "pastebin-plugin.vala"
	g_dbus_message_set_body (_message, _arguments);
#line 24 "pastebin-plugin.vala"
	_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);
#line 24 "pastebin-plugin.vala"
	g_object_unref (_message);
#line 24 "pastebin-plugin.vala"
	if (!_reply_message) {
#line 24 "pastebin-plugin.vala"
		return;
#line 1076 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	if (g_dbus_message_to_gerror (_reply_message, error)) {
#line 24 "pastebin-plugin.vala"
		g_object_unref (_reply_message);
#line 24 "pastebin-plugin.vala"
		return;
#line 1084 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	g_object_unref (_reply_message);
#line 1088 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_player_proxy_open_uri (SynapseRhythmboxPlayer* self,
                                         const gchar* uri,
                                         GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
#line 24 "pastebin-plugin.vala"
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.mpris.MediaPlayer2.Player", "OpenUri");
#line 24 "pastebin-plugin.vala"
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (uri));
#line 24 "pastebin-plugin.vala"
	_arguments = g_variant_builder_end (&_arguments_builder);
#line 24 "pastebin-plugin.vala"
	g_dbus_message_set_body (_message, _arguments);
#line 24 "pastebin-plugin.vala"
	_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);
#line 24 "pastebin-plugin.vala"
	g_object_unref (_message);
#line 24 "pastebin-plugin.vala"
	if (!_reply_message) {
#line 24 "pastebin-plugin.vala"
		return;
#line 1118 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	if (g_dbus_message_to_gerror (_reply_message, error)) {
#line 24 "pastebin-plugin.vala"
		g_object_unref (_reply_message);
#line 24 "pastebin-plugin.vala"
		return;
#line 1126 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	g_object_unref (_reply_message);
#line 1130 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_player_proxy_pause (SynapseRhythmboxPlayer* self,
                                      GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
#line 24 "pastebin-plugin.vala"
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.mpris.MediaPlayer2.Player", "Pause");
#line 24 "pastebin-plugin.vala"
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
	_arguments = g_variant_builder_end (&_arguments_builder);
#line 24 "pastebin-plugin.vala"
	g_dbus_message_set_body (_message, _arguments);
#line 24 "pastebin-plugin.vala"
	_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);
#line 24 "pastebin-plugin.vala"
	g_object_unref (_message);
#line 24 "pastebin-plugin.vala"
	if (!_reply_message) {
#line 24 "pastebin-plugin.vala"
		return;
#line 1157 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	if (g_dbus_message_to_gerror (_reply_message, error)) {
#line 24 "pastebin-plugin.vala"
		g_object_unref (_reply_message);
#line 24 "pastebin-plugin.vala"
		return;
#line 1165 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	g_object_unref (_reply_message);
#line 1169 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_player_proxy_play (SynapseRhythmboxPlayer* self,
                                     GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
#line 24 "pastebin-plugin.vala"
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.mpris.MediaPlayer2.Player", "Play");
#line 24 "pastebin-plugin.vala"
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
	_arguments = g_variant_builder_end (&_arguments_builder);
#line 24 "pastebin-plugin.vala"
	g_dbus_message_set_body (_message, _arguments);
#line 24 "pastebin-plugin.vala"
	_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);
#line 24 "pastebin-plugin.vala"
	g_object_unref (_message);
#line 24 "pastebin-plugin.vala"
	if (!_reply_message) {
#line 24 "pastebin-plugin.vala"
		return;
#line 1196 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	if (g_dbus_message_to_gerror (_reply_message, error)) {
#line 24 "pastebin-plugin.vala"
		g_object_unref (_reply_message);
#line 24 "pastebin-plugin.vala"
		return;
#line 1204 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	g_object_unref (_reply_message);
#line 1208 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_player_proxy_previous (SynapseRhythmboxPlayer* self,
                                         GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	GDBusMessage *_reply_message;
#line 24 "pastebin-plugin.vala"
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.mpris.MediaPlayer2.Player", "Previous");
#line 24 "pastebin-plugin.vala"
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
	_arguments = g_variant_builder_end (&_arguments_builder);
#line 24 "pastebin-plugin.vala"
	g_dbus_message_set_body (_message, _arguments);
#line 24 "pastebin-plugin.vala"
	_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);
#line 24 "pastebin-plugin.vala"
	g_object_unref (_message);
#line 24 "pastebin-plugin.vala"
	if (!_reply_message) {
#line 24 "pastebin-plugin.vala"
		return;
#line 1235 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	if (g_dbus_message_to_gerror (_reply_message, error)) {
#line 24 "pastebin-plugin.vala"
		g_object_unref (_reply_message);
#line 24 "pastebin-plugin.vala"
		return;
#line 1243 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	g_object_unref (_reply_message);
#line 1247 "rhythmbox-plugin.c"
}

static gchar*
synapse_rhythmbox_player_dbus_proxy_get_playback_status (SynapseRhythmboxPlayer* self)
{
	GVariant *_inner_reply;
	gchar* _result;
#line 24 "pastebin-plugin.vala"
	_inner_reply = g_dbus_proxy_get_cached_property ((GDBusProxy *) self, "PlaybackStatus");
#line 24 "pastebin-plugin.vala"
	if (!_inner_reply) {
#line 1259 "rhythmbox-plugin.c"
		GVariant *_arguments;
		GVariant *_reply;
		GVariantBuilder _arguments_builder;
#line 24 "pastebin-plugin.vala"
		g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
		g_variant_builder_add_value (&_arguments_builder, g_variant_new_string ("org.mpris.MediaPlayer2.Player"));
#line 24 "pastebin-plugin.vala"
		g_variant_builder_add_value (&_arguments_builder, g_variant_new_string ("PlaybackStatus"));
#line 24 "pastebin-plugin.vala"
		_arguments = g_variant_builder_end (&_arguments_builder);
#line 24 "pastebin-plugin.vala"
		_reply = g_dbus_proxy_call_sync ((GDBusProxy *) self, "org.freedesktop.DBus.Properties.Get", _arguments, G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL);
#line 24 "pastebin-plugin.vala"
		if (!_reply) {
#line 24 "pastebin-plugin.vala"
			return NULL;
#line 1277 "rhythmbox-plugin.c"
		}
#line 24 "pastebin-plugin.vala"
		g_variant_get (_reply, "(v)", &_inner_reply);
#line 24 "pastebin-plugin.vala"
		g_variant_unref (_reply);
#line 1283 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	_result = g_variant_dup_string (_inner_reply, NULL);
#line 24 "pastebin-plugin.vala"
	g_variant_unref (_inner_reply);
#line 24 "pastebin-plugin.vala"
	return _result;
#line 1291 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_player_proxy_synapse_rhythmbox_player_interface_init (SynapseRhythmboxPlayerIface* iface)
{
#line 24 "pastebin-plugin.vala"
	iface->next = synapse_rhythmbox_player_proxy_next;
#line 24 "pastebin-plugin.vala"
	iface->open_uri = synapse_rhythmbox_player_proxy_open_uri;
#line 24 "pastebin-plugin.vala"
	iface->pause = synapse_rhythmbox_player_proxy_pause;
#line 24 "pastebin-plugin.vala"
	iface->play = synapse_rhythmbox_player_proxy_play;
#line 24 "pastebin-plugin.vala"
	iface->previous = synapse_rhythmbox_player_proxy_previous;
#line 24 "pastebin-plugin.vala"
	iface->get_playback_status = synapse_rhythmbox_player_dbus_proxy_get_playback_status;
#line 1309 "rhythmbox-plugin.c"
}

static void
_dbus_synapse_rhythmbox_player_next (SynapseRhythmboxPlayer* self,
                                     GVariant* _parameters_,
                                     GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
#line 24 "pastebin-plugin.vala"
	g_variant_iter_init (&_arguments_iter, _parameters_);
#line 24 "pastebin-plugin.vala"
	synapse_rhythmbox_player_next (self, &error);
#line 24 "pastebin-plugin.vala"
	if (error) {
#line 24 "pastebin-plugin.vala"
		g_dbus_method_invocation_take_error (invocation, error);
#line 24 "pastebin-plugin.vala"
		return;
#line 1332 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
#line 24 "pastebin-plugin.vala"
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
	_reply = g_variant_builder_end (&_reply_builder);
#line 24 "pastebin-plugin.vala"
	g_dbus_message_set_body (_reply_message, _reply);
#line 24 "pastebin-plugin.vala"
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
#line 24 "pastebin-plugin.vala"
	g_object_unref (invocation);
#line 24 "pastebin-plugin.vala"
	g_object_unref (_reply_message);
#line 1348 "rhythmbox-plugin.c"
}

static void
_dbus_synapse_rhythmbox_player_open_uri (SynapseRhythmboxPlayer* self,
                                         GVariant* _parameters_,
                                         GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gchar* uri = NULL;
	GVariant* _tmp73_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
#line 24 "pastebin-plugin.vala"
	g_variant_iter_init (&_arguments_iter, _parameters_);
#line 24 "pastebin-plugin.vala"
	_tmp73_ = g_variant_iter_next_value (&_arguments_iter);
#line 24 "pastebin-plugin.vala"
	uri = g_variant_dup_string (_tmp73_, NULL);
#line 24 "pastebin-plugin.vala"
	g_variant_unref (_tmp73_);
#line 24 "pastebin-plugin.vala"
	synapse_rhythmbox_player_open_uri (self, uri, &error);
#line 24 "pastebin-plugin.vala"
	if (error) {
#line 24 "pastebin-plugin.vala"
		g_dbus_method_invocation_take_error (invocation, error);
#line 1377 "rhythmbox-plugin.c"
		goto _error;
	}
#line 24 "pastebin-plugin.vala"
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
#line 24 "pastebin-plugin.vala"
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
	_reply = g_variant_builder_end (&_reply_builder);
#line 24 "pastebin-plugin.vala"
	g_dbus_message_set_body (_reply_message, _reply);
#line 24 "pastebin-plugin.vala"
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
#line 24 "pastebin-plugin.vala"
	g_object_unref (invocation);
#line 24 "pastebin-plugin.vala"
	g_object_unref (_reply_message);
#line 1394 "rhythmbox-plugin.c"
	_error:
#line 24 "pastebin-plugin.vala"
	_g_free0 (uri);
#line 1398 "rhythmbox-plugin.c"
	;
}

static void
_dbus_synapse_rhythmbox_player_pause (SynapseRhythmboxPlayer* self,
                                      GVariant* _parameters_,
                                      GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
#line 24 "pastebin-plugin.vala"
	g_variant_iter_init (&_arguments_iter, _parameters_);
#line 24 "pastebin-plugin.vala"
	synapse_rhythmbox_player_pause (self, &error);
#line 24 "pastebin-plugin.vala"
	if (error) {
#line 24 "pastebin-plugin.vala"
		g_dbus_method_invocation_take_error (invocation, error);
#line 24 "pastebin-plugin.vala"
		return;
#line 1422 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
#line 24 "pastebin-plugin.vala"
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
	_reply = g_variant_builder_end (&_reply_builder);
#line 24 "pastebin-plugin.vala"
	g_dbus_message_set_body (_reply_message, _reply);
#line 24 "pastebin-plugin.vala"
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
#line 24 "pastebin-plugin.vala"
	g_object_unref (invocation);
#line 24 "pastebin-plugin.vala"
	g_object_unref (_reply_message);
#line 1438 "rhythmbox-plugin.c"
}

static void
_dbus_synapse_rhythmbox_player_play (SynapseRhythmboxPlayer* self,
                                     GVariant* _parameters_,
                                     GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
#line 24 "pastebin-plugin.vala"
	g_variant_iter_init (&_arguments_iter, _parameters_);
#line 24 "pastebin-plugin.vala"
	synapse_rhythmbox_player_play (self, &error);
#line 24 "pastebin-plugin.vala"
	if (error) {
#line 24 "pastebin-plugin.vala"
		g_dbus_method_invocation_take_error (invocation, error);
#line 24 "pastebin-plugin.vala"
		return;
#line 1461 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
#line 24 "pastebin-plugin.vala"
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
	_reply = g_variant_builder_end (&_reply_builder);
#line 24 "pastebin-plugin.vala"
	g_dbus_message_set_body (_reply_message, _reply);
#line 24 "pastebin-plugin.vala"
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
#line 24 "pastebin-plugin.vala"
	g_object_unref (invocation);
#line 24 "pastebin-plugin.vala"
	g_object_unref (_reply_message);
#line 1477 "rhythmbox-plugin.c"
}

static void
_dbus_synapse_rhythmbox_player_previous (SynapseRhythmboxPlayer* self,
                                         GVariant* _parameters_,
                                         GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
#line 24 "pastebin-plugin.vala"
	g_variant_iter_init (&_arguments_iter, _parameters_);
#line 24 "pastebin-plugin.vala"
	synapse_rhythmbox_player_previous (self, &error);
#line 24 "pastebin-plugin.vala"
	if (error) {
#line 24 "pastebin-plugin.vala"
		g_dbus_method_invocation_take_error (invocation, error);
#line 24 "pastebin-plugin.vala"
		return;
#line 1500 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
#line 24 "pastebin-plugin.vala"
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
#line 24 "pastebin-plugin.vala"
	_reply = g_variant_builder_end (&_reply_builder);
#line 24 "pastebin-plugin.vala"
	g_dbus_message_set_body (_reply_message, _reply);
#line 24 "pastebin-plugin.vala"
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
#line 24 "pastebin-plugin.vala"
	g_object_unref (invocation);
#line 24 "pastebin-plugin.vala"
	g_object_unref (_reply_message);
#line 1516 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_player_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];
#line 24 "pastebin-plugin.vala"
	if (strcmp (method_name, "Next") == 0) {
#line 24 "pastebin-plugin.vala"
		_dbus_synapse_rhythmbox_player_next (object, parameters, invocation);
#line 1537 "rhythmbox-plugin.c"
	} else if (strcmp (method_name, "OpenUri") == 0) {
#line 24 "pastebin-plugin.vala"
		_dbus_synapse_rhythmbox_player_open_uri (object, parameters, invocation);
#line 1541 "rhythmbox-plugin.c"
	} else if (strcmp (method_name, "Pause") == 0) {
#line 24 "pastebin-plugin.vala"
		_dbus_synapse_rhythmbox_player_pause (object, parameters, invocation);
#line 1545 "rhythmbox-plugin.c"
	} else if (strcmp (method_name, "Play") == 0) {
#line 24 "pastebin-plugin.vala"
		_dbus_synapse_rhythmbox_player_play (object, parameters, invocation);
#line 1549 "rhythmbox-plugin.c"
	} else if (strcmp (method_name, "Previous") == 0) {
#line 24 "pastebin-plugin.vala"
		_dbus_synapse_rhythmbox_player_previous (object, parameters, invocation);
#line 1553 "rhythmbox-plugin.c"
	} else {
#line 24 "pastebin-plugin.vala"
		g_object_unref (invocation);
#line 1557 "rhythmbox-plugin.c"
	}
}

static GVariant*
_dbus_synapse_rhythmbox_player_get_playback_status (SynapseRhythmboxPlayer* self)
{
	gchar* result;
	GVariant* _reply;
#line 24 "pastebin-plugin.vala"
	result = synapse_rhythmbox_player_get_playback_status (self);
#line 24 "pastebin-plugin.vala"
	_reply = g_variant_new_string (result);
#line 24 "pastebin-plugin.vala"
	_g_free0 (result);
#line 24 "pastebin-plugin.vala"
	return _reply;
#line 1574 "rhythmbox-plugin.c"
}

static GVariant*
synapse_rhythmbox_player_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];
#line 24 "pastebin-plugin.vala"
	if (strcmp (property_name, "PlaybackStatus") == 0) {
#line 24 "pastebin-plugin.vala"
		return _dbus_synapse_rhythmbox_player_get_playback_status (object);
#line 1594 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	return NULL;
#line 1598 "rhythmbox-plugin.c"
}

static gboolean
synapse_rhythmbox_player_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];
#line 24 "pastebin-plugin.vala"
	return FALSE;
#line 1617 "rhythmbox-plugin.c"
}

guint
synapse_rhythmbox_player_register_object (gpointer object,
                                          GDBusConnection* connection,
                                          const gchar* path,
                                          GError** error)
{
	guint result;
	gpointer *data;
#line 24 "pastebin-plugin.vala"
	data = g_new (gpointer, 3);
#line 24 "pastebin-plugin.vala"
	data[0] = g_object_ref (object);
#line 24 "pastebin-plugin.vala"
	data[1] = g_object_ref (connection);
#line 24 "pastebin-plugin.vala"
	data[2] = g_strdup (path);
#line 24 "pastebin-plugin.vala"
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_synapse_rhythmbox_player_dbus_interface_info), &_synapse_rhythmbox_player_dbus_interface_vtable, data, _synapse_rhythmbox_player_unregister_object, error);
#line 24 "pastebin-plugin.vala"
	if (!result) {
#line 24 "pastebin-plugin.vala"
		return 0;
#line 1642 "rhythmbox-plugin.c"
	}
#line 24 "pastebin-plugin.vala"
	return result;
#line 1646 "rhythmbox-plugin.c"
}

static void
_synapse_rhythmbox_player_unregister_object (gpointer user_data)
{
	gpointer* data;
	data = user_data;
#line 24 "pastebin-plugin.vala"
	g_object_unref (data[0]);
#line 24 "pastebin-plugin.vala"
	g_object_unref (data[1]);
#line 24 "pastebin-plugin.vala"
	g_free (data[2]);
#line 24 "pastebin-plugin.vala"
	g_free (data);
#line 1662 "rhythmbox-plugin.c"
}

static inline gpointer
synapse_rhythmbox_actions_get_instance_private (SynapseRhythmboxActions* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseRhythmboxActions_private_offset);
}

static void
synapse_rhythmbox_actions_real_activate (SynapseActivatable* base)
{
	SynapseRhythmboxActions * self;
	GeeArrayList* _tmp0_;
	GeeArrayList* _tmp1_;
	GeeList* _tmp2_;
	SynapseRhythmboxActionsPlayNow* _tmp3_;
	SynapseRhythmboxActionsPlayNow* _tmp4_;
	GeeList* _tmp5_;
	SynapseRhythmboxActionsAddToPlaylist* _tmp6_;
	SynapseRhythmboxActionsAddToPlaylist* _tmp7_;
	GeeList* _tmp8_;
	SynapseRhythmboxActionsPlay* _tmp9_;
	SynapseRhythmboxActionsPlay* _tmp10_;
	GeeList* _tmp11_;
	SynapseRhythmboxActionsPause* _tmp12_;
	SynapseRhythmboxActionsPause* _tmp13_;
	GeeList* _tmp14_;
	SynapseRhythmboxActionsPrevious* _tmp15_;
	SynapseRhythmboxActionsPrevious* _tmp16_;
	GeeList* _tmp17_;
	SynapseRhythmboxActionsNext* _tmp18_;
	SynapseRhythmboxActionsNext* _tmp19_;
#line 55 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActions*) base;
#line 57 "rhythmbox-plugin.vala"
	_tmp0_ = gee_array_list_new (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_ACTION, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 57 "rhythmbox-plugin.vala"
	_g_object_unref0 (self->priv->actions);
#line 57 "rhythmbox-plugin.vala"
	self->priv->actions = (GeeList*) _tmp0_;
#line 58 "rhythmbox-plugin.vala"
	_tmp1_ = gee_array_list_new (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_CONTROL_MATCH, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 58 "rhythmbox-plugin.vala"
	_g_object_unref0 (self->priv->matches);
#line 58 "rhythmbox-plugin.vala"
	self->priv->matches = (GeeList*) _tmp1_;
#line 60 "rhythmbox-plugin.vala"
	_tmp2_ = self->priv->actions;
#line 60 "rhythmbox-plugin.vala"
	_tmp3_ = synapse_rhythmbox_actions_play_now_new ();
#line 60 "rhythmbox-plugin.vala"
	_tmp4_ = _tmp3_;
#line 60 "rhythmbox-plugin.vala"
	gee_collection_add ((GeeCollection*) _tmp2_, (SynapseRhythmboxActionsRhythmboxAction*) _tmp4_);
#line 60 "rhythmbox-plugin.vala"
	_g_object_unref0 (_tmp4_);
#line 61 "rhythmbox-plugin.vala"
	_tmp5_ = self->priv->actions;
#line 61 "rhythmbox-plugin.vala"
	_tmp6_ = synapse_rhythmbox_actions_add_to_playlist_new ();
#line 61 "rhythmbox-plugin.vala"
	_tmp7_ = _tmp6_;
#line 61 "rhythmbox-plugin.vala"
	gee_collection_add ((GeeCollection*) _tmp5_, (SynapseRhythmboxActionsRhythmboxAction*) _tmp7_);
#line 61 "rhythmbox-plugin.vala"
	_g_object_unref0 (_tmp7_);
#line 63 "rhythmbox-plugin.vala"
	_tmp8_ = self->priv->matches;
#line 63 "rhythmbox-plugin.vala"
	_tmp9_ = synapse_rhythmbox_actions_play_new ();
#line 63 "rhythmbox-plugin.vala"
	_tmp10_ = _tmp9_;
#line 63 "rhythmbox-plugin.vala"
	gee_collection_add ((GeeCollection*) _tmp8_, (SynapseRhythmboxActionsRhythmboxControlMatch*) _tmp10_);
#line 63 "rhythmbox-plugin.vala"
	_g_object_unref0 (_tmp10_);
#line 64 "rhythmbox-plugin.vala"
	_tmp11_ = self->priv->matches;
#line 64 "rhythmbox-plugin.vala"
	_tmp12_ = synapse_rhythmbox_actions_pause_new ();
#line 64 "rhythmbox-plugin.vala"
	_tmp13_ = _tmp12_;
#line 64 "rhythmbox-plugin.vala"
	gee_collection_add ((GeeCollection*) _tmp11_, (SynapseRhythmboxActionsRhythmboxControlMatch*) _tmp13_);
#line 64 "rhythmbox-plugin.vala"
	_g_object_unref0 (_tmp13_);
#line 65 "rhythmbox-plugin.vala"
	_tmp14_ = self->priv->matches;
#line 65 "rhythmbox-plugin.vala"
	_tmp15_ = synapse_rhythmbox_actions_previous_new ();
#line 65 "rhythmbox-plugin.vala"
	_tmp16_ = _tmp15_;
#line 65 "rhythmbox-plugin.vala"
	gee_collection_add ((GeeCollection*) _tmp14_, (SynapseRhythmboxActionsRhythmboxControlMatch*) _tmp16_);
#line 65 "rhythmbox-plugin.vala"
	_g_object_unref0 (_tmp16_);
#line 66 "rhythmbox-plugin.vala"
	_tmp17_ = self->priv->matches;
#line 66 "rhythmbox-plugin.vala"
	_tmp18_ = synapse_rhythmbox_actions_next_new ();
#line 66 "rhythmbox-plugin.vala"
	_tmp19_ = _tmp18_;
#line 66 "rhythmbox-plugin.vala"
	gee_collection_add ((GeeCollection*) _tmp17_, (SynapseRhythmboxActionsRhythmboxControlMatch*) _tmp19_);
#line 66 "rhythmbox-plugin.vala"
	_g_object_unref0 (_tmp19_);
#line 1769 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_real_deactivate (SynapseActivatable* base)
{
	SynapseRhythmboxActions * self;
#line 69 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActions*) base;
#line 1778 "rhythmbox-plugin.c"
}

static void
_synapse_rhythmbox_actions_register_plugin_synapse_plugin_register_func (void)
{
#line 76 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_register_plugin ();
#line 1786 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_register_plugin (void)
{
	SynapsePluginRegistry* _tmp0_;
	SynapsePluginRegistry* _tmp1_;
	SynapseDBusService* _tmp2_;
	SynapseDBusService* _tmp3_;
#line 76 "rhythmbox-plugin.vala"
	_tmp0_ = synapse_plugin_registry_get_default ();
#line 76 "rhythmbox-plugin.vala"
	_tmp1_ = _tmp0_;
#line 76 "rhythmbox-plugin.vala"
	_tmp2_ = synapse_dbus_service_get_default ();
#line 76 "rhythmbox-plugin.vala"
	_tmp3_ = _tmp2_;
#line 76 "rhythmbox-plugin.vala"
	synapse_plugin_registry_register_plugin (_tmp1_, SYNAPSE_TYPE_RHYTHMBOX_ACTIONS, "Rhythmbox", _ ("Control Rhythmbox and add items to playlists."), "rhythmbox", _synapse_rhythmbox_actions_register_plugin_synapse_plugin_register_func, synapse_dbus_service_name_is_activatable (_tmp3_, SYNAPSE_RHYTHMBOX_PLAYER_UNIQUE_NAME), _ ("Rhythmbox is not installed"));
#line 76 "rhythmbox-plugin.vala"
	_g_object_unref0 (_tmp3_);
#line 76 "rhythmbox-plugin.vala"
	_g_object_unref0 (_tmp1_);
#line 1810 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_real_search_data_free (gpointer _data)
{
	SynapseRhythmboxActionsSearchData* _data_;
	_data_ = _data;
#line 51 "rhythmbox-plugin.vala"
	synapse_query_destroy (&_data_->q);
#line 51 "rhythmbox-plugin.vala"
	_g_object_unref0 (_data_->result);
#line 51 "rhythmbox-plugin.vala"
	_g_object_unref0 (_data_->self);
#line 51 "rhythmbox-plugin.vala"
	g_slice_free (SynapseRhythmboxActionsSearchData, _data_);
#line 1826 "rhythmbox-plugin.c"
}

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

static void
synapse_rhythmbox_actions_real_search (SynapseItemProvider* base,
                                       SynapseQuery* q,
                                       GAsyncReadyCallback _callback_,
                                       gpointer _user_data_)
{
	SynapseRhythmboxActions * self;
	SynapseRhythmboxActionsSearchData* _data_;
	SynapseRhythmboxActions* _tmp0_;
	SynapseQuery _tmp1_;
	SynapseQuery _tmp2_;
	SynapseQuery _tmp3_ = {0};
#line 51 "rhythmbox-plugin.vala"
	g_return_if_fail (q != NULL);
#line 51 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActions*) base;
#line 51 "rhythmbox-plugin.vala"
	_data_ = g_slice_new0 (SynapseRhythmboxActionsSearchData);
#line 51 "rhythmbox-plugin.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
#line 51 "rhythmbox-plugin.vala"
	g_task_set_task_data (_data_->_async_result, _data_, synapse_rhythmbox_actions_real_search_data_free);
#line 51 "rhythmbox-plugin.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 51 "rhythmbox-plugin.vala"
	_data_->self = _tmp0_;
#line 51 "rhythmbox-plugin.vala"
	_tmp1_ = *q;
#line 51 "rhythmbox-plugin.vala"
	_tmp2_ = _tmp1_;
#line 51 "rhythmbox-plugin.vala"
	synapse_query_copy (&_tmp2_, &_tmp3_);
#line 51 "rhythmbox-plugin.vala"
	synapse_query_destroy (&_data_->q);
#line 51 "rhythmbox-plugin.vala"
	_data_->q = _tmp3_;
#line 51 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_real_search_co (_data_);
#line 1875 "rhythmbox-plugin.c"
}

static SynapseResultSet*
synapse_rhythmbox_actions_search_finish (SynapseItemProvider* base,
                                         GAsyncResult* _res_,
                                         GError** error)
{
	SynapseResultSet* result;
	SynapseRhythmboxActionsSearchData* _data_;
#line 51 "rhythmbox-plugin.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
#line 51 "rhythmbox-plugin.vala"
	if (NULL == _data_) {
#line 51 "rhythmbox-plugin.vala"
		return NULL;
#line 1891 "rhythmbox-plugin.c"
	}
#line 51 "rhythmbox-plugin.vala"
	result = _data_->result;
#line 51 "rhythmbox-plugin.vala"
	_data_->result = NULL;
#line 51 "rhythmbox-plugin.vala"
	return result;
#line 1899 "rhythmbox-plugin.c"
}

static gboolean
synapse_rhythmbox_actions_real_search_co (SynapseRhythmboxActionsSearchData* _data_)
{
#line 305 "rhythmbox-plugin.vala"
	switch (_data_->_state_) {
#line 305 "rhythmbox-plugin.vala"
		case 0:
#line 1909 "rhythmbox-plugin.c"
		goto _state_0;
		default:
#line 305 "rhythmbox-plugin.vala"
		g_assert_not_reached ();
#line 1914 "rhythmbox-plugin.c"
	}
	_state_0:
#line 308 "rhythmbox-plugin.vala"
	_data_->_tmp0_ = _data_->q;
#line 308 "rhythmbox-plugin.vala"
	if (!((_data_->_tmp0_.query_type & SYNAPSE_QUERY_FLAGS_ACTIONS) == SYNAPSE_QUERY_FLAGS_ACTIONS)) {
#line 308 "rhythmbox-plugin.vala"
		_data_->result = NULL;
#line 308 "rhythmbox-plugin.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 308 "rhythmbox-plugin.vala"
		if (_data_->_state_ != 0) {
#line 308 "rhythmbox-plugin.vala"
			while (!g_task_get_completed (_data_->_async_result)) {
#line 308 "rhythmbox-plugin.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 1931 "rhythmbox-plugin.c"
			}
		}
#line 308 "rhythmbox-plugin.vala"
		g_object_unref (_data_->_async_result);
#line 308 "rhythmbox-plugin.vala"
		return FALSE;
#line 1938 "rhythmbox-plugin.c"
	}
#line 310 "rhythmbox-plugin.vala"
	_data_->_tmp1_ = synapse_result_set_new ();
#line 310 "rhythmbox-plugin.vala"
	_data_->_result_ = _data_->_tmp1_;
#line 312 "rhythmbox-plugin.vala"
	_data_->_tmp2_ = _data_->q;
#line 312 "rhythmbox-plugin.vala"
	_data_->_tmp3_ = _data_->_tmp2_.query_string;
#line 312 "rhythmbox-plugin.vala"
	_data_->_tmp4_ = synapse_query_get_matchers_for_query (_data_->_tmp3_, 0, G_REGEX_OPTIMIZE | G_REGEX_CASELESS);
#line 312 "rhythmbox-plugin.vala"
	_data_->matchers = _data_->_tmp4_;
#line 1952 "rhythmbox-plugin.c"
	{
#line 315 "rhythmbox-plugin.vala"
		_data_->_tmp5_ = _data_->self->priv->matches;
#line 315 "rhythmbox-plugin.vala"
		_data_->_action_list = _data_->_tmp5_;
#line 315 "rhythmbox-plugin.vala"
		_data_->_tmp6_ = _data_->_action_list;
#line 315 "rhythmbox-plugin.vala"
		_data_->_tmp7_ = gee_collection_get_size ((GeeCollection*) _data_->_tmp6_);
#line 315 "rhythmbox-plugin.vala"
		_data_->_tmp8_ = _data_->_tmp7_;
#line 315 "rhythmbox-plugin.vala"
		_data_->_action_size = _data_->_tmp8_;
#line 315 "rhythmbox-plugin.vala"
		_data_->_action_index = -1;
#line 315 "rhythmbox-plugin.vala"
		while (TRUE) {
#line 315 "rhythmbox-plugin.vala"
			_data_->_action_index = _data_->_action_index + 1;
#line 315 "rhythmbox-plugin.vala"
			_data_->_tmp9_ = _data_->_action_index;
#line 315 "rhythmbox-plugin.vala"
			_data_->_tmp10_ = _data_->_action_size;
#line 315 "rhythmbox-plugin.vala"
			if (!(_data_->_tmp9_ < _data_->_tmp10_)) {
#line 315 "rhythmbox-plugin.vala"
				break;
#line 1980 "rhythmbox-plugin.c"
			}
#line 315 "rhythmbox-plugin.vala"
			_data_->_tmp11_ = _data_->_action_list;
#line 315 "rhythmbox-plugin.vala"
			_data_->_tmp12_ = gee_list_get (_data_->_tmp11_, _data_->_action_index);
#line 315 "rhythmbox-plugin.vala"
			_data_->action = (SynapseRhythmboxActionsRhythmboxControlMatch*) _data_->_tmp12_;
#line 317 "rhythmbox-plugin.vala"
			_data_->_tmp13_ = _data_->action;
#line 317 "rhythmbox-plugin.vala"
			if (!synapse_rhythmbox_actions_rhythmbox_control_match_action_available (_data_->_tmp13_)) {
#line 317 "rhythmbox-plugin.vala"
				_g_object_unref0 (_data_->action);
#line 317 "rhythmbox-plugin.vala"
				continue;
#line 1996 "rhythmbox-plugin.c"
			}
			{
#line 318 "rhythmbox-plugin.vala"
				_data_->_tmp14_ = _data_->matchers;
#line 318 "rhythmbox-plugin.vala"
				_data_->_matcher_list = _data_->_tmp14_;
#line 318 "rhythmbox-plugin.vala"
				_data_->_tmp15_ = _data_->_matcher_list;
#line 318 "rhythmbox-plugin.vala"
				_data_->_tmp16_ = gee_collection_get_size ((GeeCollection*) _data_->_tmp15_);
#line 318 "rhythmbox-plugin.vala"
				_data_->_tmp17_ = _data_->_tmp16_;
#line 318 "rhythmbox-plugin.vala"
				_data_->_matcher_size = _data_->_tmp17_;
#line 318 "rhythmbox-plugin.vala"
				_data_->_matcher_index = -1;
#line 318 "rhythmbox-plugin.vala"
				while (TRUE) {
#line 318 "rhythmbox-plugin.vala"
					_data_->_matcher_index = _data_->_matcher_index + 1;
#line 318 "rhythmbox-plugin.vala"
					_data_->_tmp18_ = _data_->_matcher_index;
#line 318 "rhythmbox-plugin.vala"
					_data_->_tmp19_ = _data_->_matcher_size;
#line 318 "rhythmbox-plugin.vala"
					if (!(_data_->_tmp18_ < _data_->_tmp19_)) {
#line 318 "rhythmbox-plugin.vala"
						break;
#line 2025 "rhythmbox-plugin.c"
					}
#line 318 "rhythmbox-plugin.vala"
					_data_->_tmp20_ = _data_->_matcher_list;
#line 318 "rhythmbox-plugin.vala"
					_data_->_tmp21_ = gee_list_get (_data_->_tmp20_, _data_->_matcher_index);
#line 318 "rhythmbox-plugin.vala"
					_data_->matcher = (GeeMapEntry*) _data_->_tmp21_;
#line 320 "rhythmbox-plugin.vala"
					_data_->_tmp22_ = _data_->matcher;
#line 320 "rhythmbox-plugin.vala"
					_data_->_tmp23_ = gee_map_entry_get_key (_data_->_tmp22_);
#line 320 "rhythmbox-plugin.vala"
					_data_->_tmp24_ = _data_->_tmp23_;
#line 320 "rhythmbox-plugin.vala"
					_data_->_tmp25_ = _data_->action;
#line 320 "rhythmbox-plugin.vala"
					_data_->_tmp26_ = synapse_match_get_title ((SynapseMatch*) _data_->_tmp25_);
#line 320 "rhythmbox-plugin.vala"
					_data_->_tmp27_ = _data_->_tmp26_;
#line 320 "rhythmbox-plugin.vala"
					if (g_regex_match ((GRegex*) _data_->_tmp24_, _data_->_tmp27_, 0, NULL)) {
#line 322 "rhythmbox-plugin.vala"
						_data_->_tmp28_ = _data_->_result_;
#line 322 "rhythmbox-plugin.vala"
						_data_->_tmp29_ = _data_->action;
#line 322 "rhythmbox-plugin.vala"
						_data_->_tmp30_ = _data_->matcher;
#line 322 "rhythmbox-plugin.vala"
						_data_->_tmp31_ = gee_map_entry_get_value (_data_->_tmp30_);
#line 322 "rhythmbox-plugin.vala"
						_data_->_tmp32_ = _data_->_tmp31_;
#line 322 "rhythmbox-plugin.vala"
						synapse_result_set_add (_data_->_tmp28_, (SynapseMatch*) _data_->_tmp29_, ((gint) ((gintptr) _data_->_tmp32_)) - SYNAPSE_MATCH_SCORE_INCREMENT_SMALL);
#line 323 "rhythmbox-plugin.vala"
						_g_object_unref0 (_data_->matcher);
#line 323 "rhythmbox-plugin.vala"
						break;
#line 2063 "rhythmbox-plugin.c"
					}
#line 318 "rhythmbox-plugin.vala"
					_g_object_unref0 (_data_->matcher);
#line 2067 "rhythmbox-plugin.c"
				}
			}
#line 315 "rhythmbox-plugin.vala"
			_g_object_unref0 (_data_->action);
#line 2072 "rhythmbox-plugin.c"
		}
	}
#line 328 "rhythmbox-plugin.vala"
	synapse_query_check_cancellable (&_data_->q, &_data_->_inner_error0_);
#line 328 "rhythmbox-plugin.vala"
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
#line 328 "rhythmbox-plugin.vala"
		if (_data_->_inner_error0_->domain == SYNAPSE_SEARCH_ERROR) {
#line 328 "rhythmbox-plugin.vala"
			g_task_return_error (_data_->_async_result, _data_->_inner_error0_);
#line 328 "rhythmbox-plugin.vala"
			_g_object_unref0 (_data_->matchers);
#line 328 "rhythmbox-plugin.vala"
			_g_object_unref0 (_data_->_result_);
#line 328 "rhythmbox-plugin.vala"
			g_object_unref (_data_->_async_result);
#line 328 "rhythmbox-plugin.vala"
			return FALSE;
#line 2091 "rhythmbox-plugin.c"
		} else {
#line 328 "rhythmbox-plugin.vala"
			_g_object_unref0 (_data_->matchers);
#line 328 "rhythmbox-plugin.vala"
			_g_object_unref0 (_data_->_result_);
#line 328 "rhythmbox-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 328 "rhythmbox-plugin.vala"
			g_clear_error (&_data_->_inner_error0_);
#line 328 "rhythmbox-plugin.vala"
			g_object_unref (_data_->_async_result);
#line 328 "rhythmbox-plugin.vala"
			return FALSE;
#line 2105 "rhythmbox-plugin.c"
		}
	}
#line 330 "rhythmbox-plugin.vala"
	_data_->result = _data_->_result_;
#line 330 "rhythmbox-plugin.vala"
	_g_object_unref0 (_data_->matchers);
#line 330 "rhythmbox-plugin.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 330 "rhythmbox-plugin.vala"
	if (_data_->_state_ != 0) {
#line 330 "rhythmbox-plugin.vala"
		while (!g_task_get_completed (_data_->_async_result)) {
#line 330 "rhythmbox-plugin.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 2120 "rhythmbox-plugin.c"
		}
	}
#line 330 "rhythmbox-plugin.vala"
	g_object_unref (_data_->_async_result);
#line 330 "rhythmbox-plugin.vala"
	return FALSE;
#line 2127 "rhythmbox-plugin.c"
}

static SynapseResultSet*
synapse_rhythmbox_actions_real_find_for_match (SynapseActionProvider* base,
                                               SynapseQuery* query,
                                               SynapseMatch* match)
{
	SynapseRhythmboxActions * self;
	gboolean query_empty = FALSE;
	SynapseQuery _tmp0_;
	const gchar* _tmp1_;
	SynapseResultSet* results = NULL;
	SynapseResultSet* _tmp2_;
	SynapseResultSet* result;
#line 333 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActions*) base;
#line 333 "rhythmbox-plugin.vala"
	g_return_val_if_fail (query != NULL, NULL);
#line 333 "rhythmbox-plugin.vala"
	g_return_val_if_fail (match != NULL, NULL);
#line 335 "rhythmbox-plugin.vala"
	_tmp0_ = *query;
#line 335 "rhythmbox-plugin.vala"
	_tmp1_ = _tmp0_.query_string;
#line 335 "rhythmbox-plugin.vala"
	query_empty = g_strcmp0 (_tmp1_, "") == 0;
#line 336 "rhythmbox-plugin.vala"
	_tmp2_ = synapse_result_set_new ();
#line 336 "rhythmbox-plugin.vala"
	results = _tmp2_;
#line 338 "rhythmbox-plugin.vala"
	if (query_empty) {
#line 2160 "rhythmbox-plugin.c"
		{
			GeeList* _action_list = NULL;
			GeeList* _tmp3_;
			gint _action_size = 0;
			GeeList* _tmp4_;
			gint _tmp5_;
			gint _tmp6_;
			gint _action_index = 0;
#line 340 "rhythmbox-plugin.vala"
			_tmp3_ = self->priv->actions;
#line 340 "rhythmbox-plugin.vala"
			_action_list = _tmp3_;
#line 340 "rhythmbox-plugin.vala"
			_tmp4_ = _action_list;
#line 340 "rhythmbox-plugin.vala"
			_tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_);
#line 340 "rhythmbox-plugin.vala"
			_tmp6_ = _tmp5_;
#line 340 "rhythmbox-plugin.vala"
			_action_size = _tmp6_;
#line 340 "rhythmbox-plugin.vala"
			_action_index = -1;
#line 340 "rhythmbox-plugin.vala"
			while (TRUE) {
#line 2185 "rhythmbox-plugin.c"
				gint _tmp7_;
				gint _tmp8_;
				SynapseRhythmboxActionsRhythmboxAction* action = NULL;
				GeeList* _tmp9_;
				gpointer _tmp10_;
				SynapseRhythmboxActionsRhythmboxAction* _tmp11_;
#line 340 "rhythmbox-plugin.vala"
				_action_index = _action_index + 1;
#line 340 "rhythmbox-plugin.vala"
				_tmp7_ = _action_index;
#line 340 "rhythmbox-plugin.vala"
				_tmp8_ = _action_size;
#line 340 "rhythmbox-plugin.vala"
				if (!(_tmp7_ < _tmp8_)) {
#line 340 "rhythmbox-plugin.vala"
					break;
#line 2202 "rhythmbox-plugin.c"
				}
#line 340 "rhythmbox-plugin.vala"
				_tmp9_ = _action_list;
#line 340 "rhythmbox-plugin.vala"
				_tmp10_ = gee_list_get (_tmp9_, _action_index);
#line 340 "rhythmbox-plugin.vala"
				action = (SynapseRhythmboxActionsRhythmboxAction*) _tmp10_;
#line 342 "rhythmbox-plugin.vala"
				_tmp11_ = action;
#line 342 "rhythmbox-plugin.vala"
				if (synapse_action_valid_for_match ((SynapseAction*) _tmp11_, match)) {
#line 2214 "rhythmbox-plugin.c"
					SynapseResultSet* _tmp12_;
					SynapseRhythmboxActionsRhythmboxAction* _tmp13_;
					SynapseRhythmboxActionsRhythmboxAction* _tmp14_;
#line 344 "rhythmbox-plugin.vala"
					_tmp12_ = results;
#line 344 "rhythmbox-plugin.vala"
					_tmp13_ = action;
#line 344 "rhythmbox-plugin.vala"
					_tmp14_ = action;
#line 344 "rhythmbox-plugin.vala"
					synapse_result_set_add (_tmp12_, (SynapseMatch*) _tmp13_, synapse_rhythmbox_actions_rhythmbox_action_get_relevancy (_tmp14_));
#line 2226 "rhythmbox-plugin.c"
				}
#line 340 "rhythmbox-plugin.vala"
				_g_object_unref0 (action);
#line 2230 "rhythmbox-plugin.c"
			}
		}
	} else {
		GeeList* matchers = NULL;
		SynapseQuery _tmp15_;
		const gchar* _tmp16_;
		GeeList* _tmp17_;
#line 350 "rhythmbox-plugin.vala"
		_tmp15_ = *query;
#line 350 "rhythmbox-plugin.vala"
		_tmp16_ = _tmp15_.query_string;
#line 350 "rhythmbox-plugin.vala"
		_tmp17_ = synapse_query_get_matchers_for_query (_tmp16_, 0, G_REGEX_OPTIMIZE | G_REGEX_CASELESS);
#line 350 "rhythmbox-plugin.vala"
		matchers = _tmp17_;
#line 2246 "rhythmbox-plugin.c"
		{
			GeeList* _action_list = NULL;
			GeeList* _tmp18_;
			gint _action_size = 0;
			GeeList* _tmp19_;
			gint _tmp20_;
			gint _tmp21_;
			gint _action_index = 0;
#line 352 "rhythmbox-plugin.vala"
			_tmp18_ = self->priv->actions;
#line 352 "rhythmbox-plugin.vala"
			_action_list = _tmp18_;
#line 352 "rhythmbox-plugin.vala"
			_tmp19_ = _action_list;
#line 352 "rhythmbox-plugin.vala"
			_tmp20_ = gee_collection_get_size ((GeeCollection*) _tmp19_);
#line 352 "rhythmbox-plugin.vala"
			_tmp21_ = _tmp20_;
#line 352 "rhythmbox-plugin.vala"
			_action_size = _tmp21_;
#line 352 "rhythmbox-plugin.vala"
			_action_index = -1;
#line 352 "rhythmbox-plugin.vala"
			while (TRUE) {
#line 2271 "rhythmbox-plugin.c"
				gint _tmp22_;
				gint _tmp23_;
				SynapseRhythmboxActionsRhythmboxAction* action = NULL;
				GeeList* _tmp24_;
				gpointer _tmp25_;
				SynapseRhythmboxActionsRhythmboxAction* _tmp26_;
#line 352 "rhythmbox-plugin.vala"
				_action_index = _action_index + 1;
#line 352 "rhythmbox-plugin.vala"
				_tmp22_ = _action_index;
#line 352 "rhythmbox-plugin.vala"
				_tmp23_ = _action_size;
#line 352 "rhythmbox-plugin.vala"
				if (!(_tmp22_ < _tmp23_)) {
#line 352 "rhythmbox-plugin.vala"
					break;
#line 2288 "rhythmbox-plugin.c"
				}
#line 352 "rhythmbox-plugin.vala"
				_tmp24_ = _action_list;
#line 352 "rhythmbox-plugin.vala"
				_tmp25_ = gee_list_get (_tmp24_, _action_index);
#line 352 "rhythmbox-plugin.vala"
				action = (SynapseRhythmboxActionsRhythmboxAction*) _tmp25_;
#line 354 "rhythmbox-plugin.vala"
				_tmp26_ = action;
#line 354 "rhythmbox-plugin.vala"
				if (!synapse_action_valid_for_match ((SynapseAction*) _tmp26_, match)) {
#line 354 "rhythmbox-plugin.vala"
					_g_object_unref0 (action);
#line 354 "rhythmbox-plugin.vala"
					continue;
#line 2304 "rhythmbox-plugin.c"
				}
				{
					GeeList* _matcher_list = NULL;
					GeeList* _tmp27_;
					gint _matcher_size = 0;
					GeeList* _tmp28_;
					gint _tmp29_;
					gint _tmp30_;
					gint _matcher_index = 0;
#line 355 "rhythmbox-plugin.vala"
					_tmp27_ = matchers;
#line 355 "rhythmbox-plugin.vala"
					_matcher_list = _tmp27_;
#line 355 "rhythmbox-plugin.vala"
					_tmp28_ = _matcher_list;
#line 355 "rhythmbox-plugin.vala"
					_tmp29_ = gee_collection_get_size ((GeeCollection*) _tmp28_);
#line 355 "rhythmbox-plugin.vala"
					_tmp30_ = _tmp29_;
#line 355 "rhythmbox-plugin.vala"
					_matcher_size = _tmp30_;
#line 355 "rhythmbox-plugin.vala"
					_matcher_index = -1;
#line 355 "rhythmbox-plugin.vala"
					while (TRUE) {
#line 2330 "rhythmbox-plugin.c"
						gint _tmp31_;
						gint _tmp32_;
						GeeMapEntry* matcher = NULL;
						GeeList* _tmp33_;
						gpointer _tmp34_;
						GeeMapEntry* _tmp35_;
						gconstpointer _tmp36_;
						gconstpointer _tmp37_;
						SynapseRhythmboxActionsRhythmboxAction* _tmp38_;
						const gchar* _tmp39_;
						const gchar* _tmp40_;
#line 355 "rhythmbox-plugin.vala"
						_matcher_index = _matcher_index + 1;
#line 355 "rhythmbox-plugin.vala"
						_tmp31_ = _matcher_index;
#line 355 "rhythmbox-plugin.vala"
						_tmp32_ = _matcher_size;
#line 355 "rhythmbox-plugin.vala"
						if (!(_tmp31_ < _tmp32_)) {
#line 355 "rhythmbox-plugin.vala"
							break;
#line 2352 "rhythmbox-plugin.c"
						}
#line 355 "rhythmbox-plugin.vala"
						_tmp33_ = _matcher_list;
#line 355 "rhythmbox-plugin.vala"
						_tmp34_ = gee_list_get (_tmp33_, _matcher_index);
#line 355 "rhythmbox-plugin.vala"
						matcher = (GeeMapEntry*) _tmp34_;
#line 357 "rhythmbox-plugin.vala"
						_tmp35_ = matcher;
#line 357 "rhythmbox-plugin.vala"
						_tmp36_ = gee_map_entry_get_key (_tmp35_);
#line 357 "rhythmbox-plugin.vala"
						_tmp37_ = _tmp36_;
#line 357 "rhythmbox-plugin.vala"
						_tmp38_ = action;
#line 357 "rhythmbox-plugin.vala"
						_tmp39_ = synapse_match_get_title ((SynapseMatch*) _tmp38_);
#line 357 "rhythmbox-plugin.vala"
						_tmp40_ = _tmp39_;
#line 357 "rhythmbox-plugin.vala"
						if (g_regex_match ((GRegex*) _tmp37_, _tmp40_, 0, NULL)) {
#line 2374 "rhythmbox-plugin.c"
							SynapseResultSet* _tmp41_;
							SynapseRhythmboxActionsRhythmboxAction* _tmp42_;
							GeeMapEntry* _tmp43_;
							gconstpointer _tmp44_;
							gconstpointer _tmp45_;
#line 359 "rhythmbox-plugin.vala"
							_tmp41_ = results;
#line 359 "rhythmbox-plugin.vala"
							_tmp42_ = action;
#line 359 "rhythmbox-plugin.vala"
							_tmp43_ = matcher;
#line 359 "rhythmbox-plugin.vala"
							_tmp44_ = gee_map_entry_get_value (_tmp43_);
#line 359 "rhythmbox-plugin.vala"
							_tmp45_ = _tmp44_;
#line 359 "rhythmbox-plugin.vala"
							synapse_result_set_add (_tmp41_, (SynapseMatch*) _tmp42_, (gint) ((gintptr) _tmp45_));
#line 360 "rhythmbox-plugin.vala"
							_g_object_unref0 (matcher);
#line 360 "rhythmbox-plugin.vala"
							break;
#line 2396 "rhythmbox-plugin.c"
						}
#line 355 "rhythmbox-plugin.vala"
						_g_object_unref0 (matcher);
#line 2400 "rhythmbox-plugin.c"
					}
				}
#line 352 "rhythmbox-plugin.vala"
				_g_object_unref0 (action);
#line 2405 "rhythmbox-plugin.c"
			}
		}
#line 338 "rhythmbox-plugin.vala"
		_g_object_unref0 (matchers);
#line 2410 "rhythmbox-plugin.c"
	}
#line 366 "rhythmbox-plugin.vala"
	result = results;
#line 366 "rhythmbox-plugin.vala"
	return result;
#line 2416 "rhythmbox-plugin.c"
}

SynapseRhythmboxActions*
synapse_rhythmbox_actions_construct (GType object_type)
{
	SynapseRhythmboxActions * self = NULL;
#line 51 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActions*) g_object_new (object_type, NULL);
#line 51 "rhythmbox-plugin.vala"
	return self;
#line 2427 "rhythmbox-plugin.c"
}

SynapseRhythmboxActions*
synapse_rhythmbox_actions_new (void)
{
#line 51 "rhythmbox-plugin.vala"
	return synapse_rhythmbox_actions_construct (SYNAPSE_TYPE_RHYTHMBOX_ACTIONS);
#line 2435 "rhythmbox-plugin.c"
}

static gboolean
synapse_rhythmbox_actions_real_get_enabled (SynapseActivatable* base)
{
	gboolean result;
	SynapseRhythmboxActions* self;
#line 53 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActions*) base;
#line 53 "rhythmbox-plugin.vala"
	result = self->priv->_enabled;
#line 53 "rhythmbox-plugin.vala"
	return result;
#line 2449 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_real_set_enabled (SynapseActivatable* base,
                                            gboolean value)
{
	SynapseRhythmboxActions* self;
	gboolean old_value;
#line 53 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActions*) base;
#line 53 "rhythmbox-plugin.vala"
	old_value = synapse_rhythmbox_actions_real_get_enabled (base);
#line 53 "rhythmbox-plugin.vala"
	if (old_value != value) {
#line 53 "rhythmbox-plugin.vala"
		self->priv->_enabled = value;
#line 53 "rhythmbox-plugin.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_rhythmbox_actions_properties[SYNAPSE_RHYTHMBOX_ACTIONS_ENABLED_PROPERTY]);
#line 2468 "rhythmbox-plugin.c"
	}
}

static gint
synapse_rhythmbox_actions_rhythmbox_action_real_get_relevancy (SynapseRhythmboxActionsRhythmboxAction* self)
{
	gboolean rb_running = FALSE;
	SynapseDBusService* _tmp0_;
	SynapseDBusService* _tmp1_;
	gboolean _tmp2_;
	gint _tmp3_ = 0;
	gint result;
#line 96 "rhythmbox-plugin.vala"
	_tmp0_ = synapse_dbus_service_get_default ();
#line 96 "rhythmbox-plugin.vala"
	_tmp1_ = _tmp0_;
#line 96 "rhythmbox-plugin.vala"
	_tmp2_ = synapse_dbus_service_name_has_owner (_tmp1_, SYNAPSE_RHYTHMBOX_PLAYER_UNIQUE_NAME);
#line 96 "rhythmbox-plugin.vala"
	_g_object_unref0 (_tmp1_);
#line 96 "rhythmbox-plugin.vala"
	rb_running = _tmp2_;
#line 97 "rhythmbox-plugin.vala"
	if (rb_running) {
#line 2493 "rhythmbox-plugin.c"
		gint _tmp4_;
		gint _tmp5_;
#line 97 "rhythmbox-plugin.vala"
		_tmp4_ = synapse_action_get_default_relevancy ((SynapseAction*) self);
#line 97 "rhythmbox-plugin.vala"
		_tmp5_ = _tmp4_;
#line 97 "rhythmbox-plugin.vala"
		_tmp3_ = _tmp5_ + SYNAPSE_MATCH_SCORE_INCREMENT_LARGE;
#line 2502 "rhythmbox-plugin.c"
	} else {
		gint _tmp6_;
		gint _tmp7_;
#line 97 "rhythmbox-plugin.vala"
		_tmp6_ = synapse_action_get_default_relevancy ((SynapseAction*) self);
#line 97 "rhythmbox-plugin.vala"
		_tmp7_ = _tmp6_;
#line 97 "rhythmbox-plugin.vala"
		_tmp3_ = _tmp7_;
#line 2512 "rhythmbox-plugin.c"
	}
#line 97 "rhythmbox-plugin.vala"
	result = _tmp3_;
#line 97 "rhythmbox-plugin.vala"
	return result;
#line 2518 "rhythmbox-plugin.c"
}

gint
synapse_rhythmbox_actions_rhythmbox_action_get_relevancy (SynapseRhythmboxActionsRhythmboxAction* self)
{
	SynapseRhythmboxActionsRhythmboxActionClass* _klass_;
#line 94 "rhythmbox-plugin.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 94 "rhythmbox-plugin.vala"
	_klass_ = SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_ACTION_GET_CLASS (self);
#line 94 "rhythmbox-plugin.vala"
	if (_klass_->get_relevancy) {
#line 94 "rhythmbox-plugin.vala"
		return _klass_->get_relevancy (self);
#line 2533 "rhythmbox-plugin.c"
	}
#line 94 "rhythmbox-plugin.vala"
	return -1;
#line 2537 "rhythmbox-plugin.c"
}

static gboolean
synapse_rhythmbox_actions_rhythmbox_action_real_action_available (SynapseRhythmboxActionsRhythmboxAction* self)
{
	SynapseDBusService* _tmp0_;
	SynapseDBusService* _tmp1_;
	gboolean _tmp2_;
	gboolean result;
#line 102 "rhythmbox-plugin.vala"
	_tmp0_ = synapse_dbus_service_get_default ();
#line 102 "rhythmbox-plugin.vala"
	_tmp1_ = _tmp0_;
#line 102 "rhythmbox-plugin.vala"
	_tmp2_ = synapse_dbus_service_name_has_owner (_tmp1_, SYNAPSE_RHYTHMBOX_PLAYER_UNIQUE_NAME);
#line 102 "rhythmbox-plugin.vala"
	_g_object_unref0 (_tmp1_);
#line 102 "rhythmbox-plugin.vala"
	result = _tmp2_;
#line 102 "rhythmbox-plugin.vala"
	return result;
#line 2559 "rhythmbox-plugin.c"
}

gboolean
synapse_rhythmbox_actions_rhythmbox_action_action_available (SynapseRhythmboxActionsRhythmboxAction* self)
{
	SynapseRhythmboxActionsRhythmboxActionClass* _klass_;
#line 100 "rhythmbox-plugin.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 100 "rhythmbox-plugin.vala"
	_klass_ = SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_ACTION_GET_CLASS (self);
#line 100 "rhythmbox-plugin.vala"
	if (_klass_->action_available) {
#line 100 "rhythmbox-plugin.vala"
		return _klass_->action_available (self);
#line 2574 "rhythmbox-plugin.c"
	}
#line 100 "rhythmbox-plugin.vala"
	return FALSE;
#line 2578 "rhythmbox-plugin.c"
}

static SynapseRhythmboxActionsRhythmboxAction*
synapse_rhythmbox_actions_rhythmbox_action_construct (GType object_type)
{
	SynapseRhythmboxActionsRhythmboxAction * self = NULL;
#line 92 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsRhythmboxAction*) synapse_action_construct (object_type);
#line 92 "rhythmbox-plugin.vala"
	return self;
#line 2589 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_rhythmbox_action_class_init (SynapseRhythmboxActionsRhythmboxActionClass * klass,
                                                       gpointer klass_data)
{
#line 92 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_rhythmbox_action_parent_class = g_type_class_peek_parent (klass);
#line 92 "rhythmbox-plugin.vala"
	((SynapseRhythmboxActionsRhythmboxActionClass *) klass)->get_relevancy = (gint (*) (SynapseRhythmboxActionsRhythmboxAction*)) synapse_rhythmbox_actions_rhythmbox_action_real_get_relevancy;
#line 92 "rhythmbox-plugin.vala"
	((SynapseRhythmboxActionsRhythmboxActionClass *) klass)->action_available = (gboolean (*) (SynapseRhythmboxActionsRhythmboxAction*)) synapse_rhythmbox_actions_rhythmbox_action_real_action_available;
#line 2602 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_rhythmbox_action_instance_init (SynapseRhythmboxActionsRhythmboxAction * self,
                                                          gpointer klass)
{
}

static GType
synapse_rhythmbox_actions_rhythmbox_action_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseRhythmboxActionsRhythmboxActionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_rhythmbox_actions_rhythmbox_action_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseRhythmboxActionsRhythmboxAction), 0, (GInstanceInitFunc) synapse_rhythmbox_actions_rhythmbox_action_instance_init, NULL };
	GType synapse_rhythmbox_actions_rhythmbox_action_type_id;
	synapse_rhythmbox_actions_rhythmbox_action_type_id = g_type_register_static (SYNAPSE_TYPE_ACTION, "SynapseRhythmboxActionsRhythmboxAction", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return synapse_rhythmbox_actions_rhythmbox_action_type_id;
}

static GType
synapse_rhythmbox_actions_rhythmbox_action_get_type (void)
{
	static volatile gsize synapse_rhythmbox_actions_rhythmbox_action_type_id__once = 0;
	if (g_once_init_enter (&synapse_rhythmbox_actions_rhythmbox_action_type_id__once)) {
		GType synapse_rhythmbox_actions_rhythmbox_action_type_id;
		synapse_rhythmbox_actions_rhythmbox_action_type_id = synapse_rhythmbox_actions_rhythmbox_action_get_type_once ();
		g_once_init_leave (&synapse_rhythmbox_actions_rhythmbox_action_type_id__once, synapse_rhythmbox_actions_rhythmbox_action_type_id);
	}
	return synapse_rhythmbox_actions_rhythmbox_action_type_id__once;
}

static gboolean
synapse_rhythmbox_actions_rhythmbox_control_match_real_action_available (SynapseRhythmboxActionsRhythmboxControlMatch* self)
{
	SynapseDBusService* _tmp0_;
	SynapseDBusService* _tmp1_;
	gboolean _tmp2_;
	gboolean result;
#line 110 "rhythmbox-plugin.vala"
	_tmp0_ = synapse_dbus_service_get_default ();
#line 110 "rhythmbox-plugin.vala"
	_tmp1_ = _tmp0_;
#line 110 "rhythmbox-plugin.vala"
	_tmp2_ = synapse_dbus_service_name_has_owner (_tmp1_, SYNAPSE_RHYTHMBOX_PLAYER_UNIQUE_NAME);
#line 110 "rhythmbox-plugin.vala"
	_g_object_unref0 (_tmp1_);
#line 110 "rhythmbox-plugin.vala"
	result = _tmp2_;
#line 110 "rhythmbox-plugin.vala"
	return result;
#line 2651 "rhythmbox-plugin.c"
}

gboolean
synapse_rhythmbox_actions_rhythmbox_control_match_action_available (SynapseRhythmboxActionsRhythmboxControlMatch* self)
{
	SynapseRhythmboxActionsRhythmboxControlMatchClass* _klass_;
#line 108 "rhythmbox-plugin.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 108 "rhythmbox-plugin.vala"
	_klass_ = SYNAPSE_RHYTHMBOX_ACTIONS_RHYTHMBOX_CONTROL_MATCH_GET_CLASS (self);
#line 108 "rhythmbox-plugin.vala"
	if (_klass_->action_available) {
#line 108 "rhythmbox-plugin.vala"
		return _klass_->action_available (self);
#line 2666 "rhythmbox-plugin.c"
	}
#line 108 "rhythmbox-plugin.vala"
	return FALSE;
#line 2670 "rhythmbox-plugin.c"
}

static SynapseRhythmboxActionsRhythmboxControlMatch*
synapse_rhythmbox_actions_rhythmbox_control_match_construct (GType object_type)
{
	SynapseRhythmboxActionsRhythmboxControlMatch * self = NULL;
#line 106 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsRhythmboxControlMatch*) synapse_action_match_construct (object_type);
#line 106 "rhythmbox-plugin.vala"
	return self;
#line 2681 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_rhythmbox_control_match_class_init (SynapseRhythmboxActionsRhythmboxControlMatchClass * klass,
                                                              gpointer klass_data)
{
#line 106 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_rhythmbox_control_match_parent_class = g_type_class_peek_parent (klass);
#line 106 "rhythmbox-plugin.vala"
	((SynapseRhythmboxActionsRhythmboxControlMatchClass *) klass)->action_available = (gboolean (*) (SynapseRhythmboxActionsRhythmboxControlMatch*)) synapse_rhythmbox_actions_rhythmbox_control_match_real_action_available;
#line 2692 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_rhythmbox_control_match_instance_init (SynapseRhythmboxActionsRhythmboxControlMatch * self,
                                                                 gpointer klass)
{
}

static GType
synapse_rhythmbox_actions_rhythmbox_control_match_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseRhythmboxActionsRhythmboxControlMatchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_rhythmbox_actions_rhythmbox_control_match_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseRhythmboxActionsRhythmboxControlMatch), 0, (GInstanceInitFunc) synapse_rhythmbox_actions_rhythmbox_control_match_instance_init, NULL };
	GType synapse_rhythmbox_actions_rhythmbox_control_match_type_id;
	synapse_rhythmbox_actions_rhythmbox_control_match_type_id = g_type_register_static (SYNAPSE_TYPE_ACTION_MATCH, "SynapseRhythmboxActionsRhythmboxControlMatch", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return synapse_rhythmbox_actions_rhythmbox_control_match_type_id;
}

static GType
synapse_rhythmbox_actions_rhythmbox_control_match_get_type (void)
{
	static volatile gsize synapse_rhythmbox_actions_rhythmbox_control_match_type_id__once = 0;
	if (g_once_init_enter (&synapse_rhythmbox_actions_rhythmbox_control_match_type_id__once)) {
		GType synapse_rhythmbox_actions_rhythmbox_control_match_type_id;
		synapse_rhythmbox_actions_rhythmbox_control_match_type_id = synapse_rhythmbox_actions_rhythmbox_control_match_get_type_once ();
		g_once_init_leave (&synapse_rhythmbox_actions_rhythmbox_control_match_type_id__once, synapse_rhythmbox_actions_rhythmbox_control_match_type_id);
	}
	return synapse_rhythmbox_actions_rhythmbox_control_match_type_id__once;
}

static SynapseRhythmboxActionsPlay*
synapse_rhythmbox_actions_play_construct (GType object_type)
{
	SynapseRhythmboxActionsPlay * self = NULL;
#line 119 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsPlay*) g_object_new (object_type, "title", _ ("Play"), "description", _ ("Start playback in Rhythmbox"), "icon-name", "media-playback-start", "has-thumbnail", FALSE, NULL);
#line 117 "rhythmbox-plugin.vala"
	return self;
#line 2730 "rhythmbox-plugin.c"
}

static SynapseRhythmboxActionsPlay*
synapse_rhythmbox_actions_play_new (void)
{
#line 117 "rhythmbox-plugin.vala"
	return synapse_rhythmbox_actions_play_construct (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY);
#line 2738 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_play_real_do_action (SynapseActionMatch* base)
{
	SynapseRhythmboxActionsPlay * self;
	GError* _inner_error0_ = NULL;
#line 124 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsPlay*) base;
#line 2748 "rhythmbox-plugin.c"
	{
		SynapseRhythmboxPlayer* player = NULL;
		SynapseRhythmboxPlayer* _tmp0_;
		SynapseRhythmboxPlayer* _tmp1_;
#line 128 "rhythmbox-plugin.vala"
		_tmp0_ = (SynapseRhythmboxPlayer*) g_initable_new (SYNAPSE_TYPE_RHYTHMBOX_PLAYER_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_RHYTHMBOX_PLAYER_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_RHYTHMBOX_PLAYER_OBJECT_PATH, "g-interface-name", "org.mpris.MediaPlayer2.Player", NULL);
#line 128 "rhythmbox-plugin.vala"
		player = (SynapseRhythmboxPlayer*) _tmp0_;
#line 128 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2759 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 132 "rhythmbox-plugin.vala"
		_tmp1_ = player;
#line 132 "rhythmbox-plugin.vala"
		synapse_rhythmbox_player_play (_tmp1_, &_inner_error0_);
#line 132 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 132 "rhythmbox-plugin.vala"
			_g_object_unref0 (player);
#line 2770 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 126 "rhythmbox-plugin.vala"
		_g_object_unref0 (player);
#line 2775 "rhythmbox-plugin.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp2_;
		const gchar* _tmp3_;
#line 126 "rhythmbox-plugin.vala"
		e = _inner_error0_;
#line 126 "rhythmbox-plugin.vala"
		_inner_error0_ = NULL;
#line 136 "rhythmbox-plugin.vala"
		_tmp2_ = e;
#line 136 "rhythmbox-plugin.vala"
		_tmp3_ = _tmp2_->message;
#line 136 "rhythmbox-plugin.vala"
		g_warning ("rhythmbox-plugin.vala:136: Rythmbox is not available.\n%s", _tmp3_);
#line 126 "rhythmbox-plugin.vala"
		_g_error_free0 (e);
#line 2795 "rhythmbox-plugin.c"
	}
	__finally0:
#line 126 "rhythmbox-plugin.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 126 "rhythmbox-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 126 "rhythmbox-plugin.vala"
		g_clear_error (&_inner_error0_);
#line 126 "rhythmbox-plugin.vala"
		return;
#line 2806 "rhythmbox-plugin.c"
	}
}

static void
synapse_rhythmbox_actions_play_class_init (SynapseRhythmboxActionsPlayClass * klass,
                                           gpointer klass_data)
{
#line 115 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_play_parent_class = g_type_class_peek_parent (klass);
#line 115 "rhythmbox-plugin.vala"
	((SynapseActionMatchClass *) klass)->do_action = (void (*) (SynapseActionMatch*)) synapse_rhythmbox_actions_play_real_do_action;
#line 2818 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_play_instance_init (SynapseRhythmboxActionsPlay * self,
                                              gpointer klass)
{
}

static GType
synapse_rhythmbox_actions_play_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseRhythmboxActionsPlayClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_rhythmbox_actions_play_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseRhythmboxActionsPlay), 0, (GInstanceInitFunc) synapse_rhythmbox_actions_play_instance_init, NULL };
	GType synapse_rhythmbox_actions_play_type_id;
	synapse_rhythmbox_actions_play_type_id = g_type_register_static (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_CONTROL_MATCH, "SynapseRhythmboxActionsPlay", &g_define_type_info, 0);
	return synapse_rhythmbox_actions_play_type_id;
}

static GType
synapse_rhythmbox_actions_play_get_type (void)
{
	static volatile gsize synapse_rhythmbox_actions_play_type_id__once = 0;
	if (g_once_init_enter (&synapse_rhythmbox_actions_play_type_id__once)) {
		GType synapse_rhythmbox_actions_play_type_id;
		synapse_rhythmbox_actions_play_type_id = synapse_rhythmbox_actions_play_get_type_once ();
		g_once_init_leave (&synapse_rhythmbox_actions_play_type_id__once, synapse_rhythmbox_actions_play_type_id);
	}
	return synapse_rhythmbox_actions_play_type_id__once;
}

static SynapseRhythmboxActionsPause*
synapse_rhythmbox_actions_pause_construct (GType object_type)
{
	SynapseRhythmboxActionsPause * self = NULL;
#line 145 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsPause*) g_object_new (object_type, "title", _ ("Pause"), "description", _ ("Pause playback in Rhythmbox"), "icon-name", "media-playback-pause", "has-thumbnail", FALSE, NULL);
#line 143 "rhythmbox-plugin.vala"
	return self;
#line 2856 "rhythmbox-plugin.c"
}

static SynapseRhythmboxActionsPause*
synapse_rhythmbox_actions_pause_new (void)
{
#line 143 "rhythmbox-plugin.vala"
	return synapse_rhythmbox_actions_pause_construct (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PAUSE);
#line 2864 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_pause_real_do_action (SynapseActionMatch* base)
{
	SynapseRhythmboxActionsPause * self;
	GError* _inner_error0_ = NULL;
#line 150 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsPause*) base;
#line 2874 "rhythmbox-plugin.c"
	{
		SynapseRhythmboxPlayer* player = NULL;
		SynapseRhythmboxPlayer* _tmp0_;
		SynapseRhythmboxPlayer* _tmp1_;
#line 154 "rhythmbox-plugin.vala"
		_tmp0_ = (SynapseRhythmboxPlayer*) g_initable_new (SYNAPSE_TYPE_RHYTHMBOX_PLAYER_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_RHYTHMBOX_PLAYER_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_RHYTHMBOX_PLAYER_OBJECT_PATH, "g-interface-name", "org.mpris.MediaPlayer2.Player", NULL);
#line 154 "rhythmbox-plugin.vala"
		player = (SynapseRhythmboxPlayer*) _tmp0_;
#line 154 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 2885 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 158 "rhythmbox-plugin.vala"
		_tmp1_ = player;
#line 158 "rhythmbox-plugin.vala"
		synapse_rhythmbox_player_pause (_tmp1_, &_inner_error0_);
#line 158 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 158 "rhythmbox-plugin.vala"
			_g_object_unref0 (player);
#line 2896 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 152 "rhythmbox-plugin.vala"
		_g_object_unref0 (player);
#line 2901 "rhythmbox-plugin.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp2_;
		const gchar* _tmp3_;
#line 152 "rhythmbox-plugin.vala"
		e = _inner_error0_;
#line 152 "rhythmbox-plugin.vala"
		_inner_error0_ = NULL;
#line 162 "rhythmbox-plugin.vala"
		_tmp2_ = e;
#line 162 "rhythmbox-plugin.vala"
		_tmp3_ = _tmp2_->message;
#line 162 "rhythmbox-plugin.vala"
		g_warning ("rhythmbox-plugin.vala:162: Rythmbox is not available.\n%s", _tmp3_);
#line 152 "rhythmbox-plugin.vala"
		_g_error_free0 (e);
#line 2921 "rhythmbox-plugin.c"
	}
	__finally0:
#line 152 "rhythmbox-plugin.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 152 "rhythmbox-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 152 "rhythmbox-plugin.vala"
		g_clear_error (&_inner_error0_);
#line 152 "rhythmbox-plugin.vala"
		return;
#line 2932 "rhythmbox-plugin.c"
	}
}

static void
synapse_rhythmbox_actions_pause_class_init (SynapseRhythmboxActionsPauseClass * klass,
                                            gpointer klass_data)
{
#line 141 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_pause_parent_class = g_type_class_peek_parent (klass);
#line 141 "rhythmbox-plugin.vala"
	((SynapseActionMatchClass *) klass)->do_action = (void (*) (SynapseActionMatch*)) synapse_rhythmbox_actions_pause_real_do_action;
#line 2944 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_pause_instance_init (SynapseRhythmboxActionsPause * self,
                                               gpointer klass)
{
}

static GType
synapse_rhythmbox_actions_pause_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseRhythmboxActionsPauseClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_rhythmbox_actions_pause_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseRhythmboxActionsPause), 0, (GInstanceInitFunc) synapse_rhythmbox_actions_pause_instance_init, NULL };
	GType synapse_rhythmbox_actions_pause_type_id;
	synapse_rhythmbox_actions_pause_type_id = g_type_register_static (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_CONTROL_MATCH, "SynapseRhythmboxActionsPause", &g_define_type_info, 0);
	return synapse_rhythmbox_actions_pause_type_id;
}

static GType
synapse_rhythmbox_actions_pause_get_type (void)
{
	static volatile gsize synapse_rhythmbox_actions_pause_type_id__once = 0;
	if (g_once_init_enter (&synapse_rhythmbox_actions_pause_type_id__once)) {
		GType synapse_rhythmbox_actions_pause_type_id;
		synapse_rhythmbox_actions_pause_type_id = synapse_rhythmbox_actions_pause_get_type_once ();
		g_once_init_leave (&synapse_rhythmbox_actions_pause_type_id__once, synapse_rhythmbox_actions_pause_type_id);
	}
	return synapse_rhythmbox_actions_pause_type_id__once;
}

static SynapseRhythmboxActionsNext*
synapse_rhythmbox_actions_next_construct (GType object_type)
{
	SynapseRhythmboxActionsNext * self = NULL;
#line 171 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsNext*) g_object_new (object_type, "title", _ ("Next"), "description", _ ("Plays the next song in Rhythmbox's playlist"), "icon-name", "media-skip-forward", "has-thumbnail", FALSE, NULL);
#line 169 "rhythmbox-plugin.vala"
	return self;
#line 2982 "rhythmbox-plugin.c"
}

static SynapseRhythmboxActionsNext*
synapse_rhythmbox_actions_next_new (void)
{
#line 169 "rhythmbox-plugin.vala"
	return synapse_rhythmbox_actions_next_construct (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_NEXT);
#line 2990 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_next_real_do_action (SynapseActionMatch* base)
{
	SynapseRhythmboxActionsNext * self;
	GError* _inner_error0_ = NULL;
#line 176 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsNext*) base;
#line 3000 "rhythmbox-plugin.c"
	{
		SynapseRhythmboxPlayer* player = NULL;
		SynapseRhythmboxPlayer* _tmp0_;
		SynapseRhythmboxPlayer* _tmp1_;
#line 179 "rhythmbox-plugin.vala"
		_tmp0_ = (SynapseRhythmboxPlayer*) g_initable_new (SYNAPSE_TYPE_RHYTHMBOX_PLAYER_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_RHYTHMBOX_PLAYER_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_RHYTHMBOX_PLAYER_OBJECT_PATH, "g-interface-name", "org.mpris.MediaPlayer2.Player", NULL);
#line 179 "rhythmbox-plugin.vala"
		player = (SynapseRhythmboxPlayer*) _tmp0_;
#line 179 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 3011 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 183 "rhythmbox-plugin.vala"
		_tmp1_ = player;
#line 183 "rhythmbox-plugin.vala"
		synapse_rhythmbox_player_next (_tmp1_, &_inner_error0_);
#line 183 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 183 "rhythmbox-plugin.vala"
			_g_object_unref0 (player);
#line 3022 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 178 "rhythmbox-plugin.vala"
		_g_object_unref0 (player);
#line 3027 "rhythmbox-plugin.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp2_;
		const gchar* _tmp3_;
#line 178 "rhythmbox-plugin.vala"
		e = _inner_error0_;
#line 178 "rhythmbox-plugin.vala"
		_inner_error0_ = NULL;
#line 187 "rhythmbox-plugin.vala"
		_tmp2_ = e;
#line 187 "rhythmbox-plugin.vala"
		_tmp3_ = _tmp2_->message;
#line 187 "rhythmbox-plugin.vala"
		g_warning ("rhythmbox-plugin.vala:187: Rythmbox is not available.\n%s", _tmp3_);
#line 178 "rhythmbox-plugin.vala"
		_g_error_free0 (e);
#line 3047 "rhythmbox-plugin.c"
	}
	__finally0:
#line 178 "rhythmbox-plugin.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 178 "rhythmbox-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 178 "rhythmbox-plugin.vala"
		g_clear_error (&_inner_error0_);
#line 178 "rhythmbox-plugin.vala"
		return;
#line 3058 "rhythmbox-plugin.c"
	}
}

static void
synapse_rhythmbox_actions_next_class_init (SynapseRhythmboxActionsNextClass * klass,
                                           gpointer klass_data)
{
#line 167 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_next_parent_class = g_type_class_peek_parent (klass);
#line 167 "rhythmbox-plugin.vala"
	((SynapseActionMatchClass *) klass)->do_action = (void (*) (SynapseActionMatch*)) synapse_rhythmbox_actions_next_real_do_action;
#line 3070 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_next_instance_init (SynapseRhythmboxActionsNext * self,
                                              gpointer klass)
{
}

static GType
synapse_rhythmbox_actions_next_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseRhythmboxActionsNextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_rhythmbox_actions_next_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseRhythmboxActionsNext), 0, (GInstanceInitFunc) synapse_rhythmbox_actions_next_instance_init, NULL };
	GType synapse_rhythmbox_actions_next_type_id;
	synapse_rhythmbox_actions_next_type_id = g_type_register_static (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_CONTROL_MATCH, "SynapseRhythmboxActionsNext", &g_define_type_info, 0);
	return synapse_rhythmbox_actions_next_type_id;
}

static GType
synapse_rhythmbox_actions_next_get_type (void)
{
	static volatile gsize synapse_rhythmbox_actions_next_type_id__once = 0;
	if (g_once_init_enter (&synapse_rhythmbox_actions_next_type_id__once)) {
		GType synapse_rhythmbox_actions_next_type_id;
		synapse_rhythmbox_actions_next_type_id = synapse_rhythmbox_actions_next_get_type_once ();
		g_once_init_leave (&synapse_rhythmbox_actions_next_type_id__once, synapse_rhythmbox_actions_next_type_id);
	}
	return synapse_rhythmbox_actions_next_type_id__once;
}

static SynapseRhythmboxActionsPrevious*
synapse_rhythmbox_actions_previous_construct (GType object_type)
{
	SynapseRhythmboxActionsPrevious * self = NULL;
#line 196 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsPrevious*) g_object_new (object_type, "title", _ ("Previous"), "description", _ ("Plays the previous song in Rhythmbox's playlist"), "icon-name", "media-skip-backward", "has-thumbnail", FALSE, NULL);
#line 194 "rhythmbox-plugin.vala"
	return self;
#line 3108 "rhythmbox-plugin.c"
}

static SynapseRhythmboxActionsPrevious*
synapse_rhythmbox_actions_previous_new (void)
{
#line 194 "rhythmbox-plugin.vala"
	return synapse_rhythmbox_actions_previous_construct (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PREVIOUS);
#line 3116 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_previous_real_do_action (SynapseActionMatch* base)
{
	SynapseRhythmboxActionsPrevious * self;
	GError* _inner_error0_ = NULL;
#line 201 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsPrevious*) base;
#line 3126 "rhythmbox-plugin.c"
	{
		SynapseRhythmboxPlayer* player = NULL;
		SynapseRhythmboxPlayer* _tmp0_;
		SynapseRhythmboxPlayer* _tmp1_;
		SynapseRhythmboxPlayer* _tmp2_;
#line 204 "rhythmbox-plugin.vala"
		_tmp0_ = (SynapseRhythmboxPlayer*) g_initable_new (SYNAPSE_TYPE_RHYTHMBOX_PLAYER_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_RHYTHMBOX_PLAYER_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_RHYTHMBOX_PLAYER_OBJECT_PATH, "g-interface-name", "org.mpris.MediaPlayer2.Player", NULL);
#line 204 "rhythmbox-plugin.vala"
		player = (SynapseRhythmboxPlayer*) _tmp0_;
#line 204 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 3138 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 208 "rhythmbox-plugin.vala"
		_tmp1_ = player;
#line 208 "rhythmbox-plugin.vala"
		synapse_rhythmbox_player_previous (_tmp1_, &_inner_error0_);
#line 208 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 208 "rhythmbox-plugin.vala"
			_g_object_unref0 (player);
#line 3149 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 209 "rhythmbox-plugin.vala"
		_tmp2_ = player;
#line 209 "rhythmbox-plugin.vala"
		synapse_rhythmbox_player_previous (_tmp2_, &_inner_error0_);
#line 209 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 209 "rhythmbox-plugin.vala"
			_g_object_unref0 (player);
#line 3160 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 203 "rhythmbox-plugin.vala"
		_g_object_unref0 (player);
#line 3165 "rhythmbox-plugin.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp3_;
		const gchar* _tmp4_;
#line 203 "rhythmbox-plugin.vala"
		e = _inner_error0_;
#line 203 "rhythmbox-plugin.vala"
		_inner_error0_ = NULL;
#line 213 "rhythmbox-plugin.vala"
		_tmp3_ = e;
#line 213 "rhythmbox-plugin.vala"
		_tmp4_ = _tmp3_->message;
#line 213 "rhythmbox-plugin.vala"
		g_warning ("rhythmbox-plugin.vala:213: Rythmbox is not available.\n%s", _tmp4_);
#line 203 "rhythmbox-plugin.vala"
		_g_error_free0 (e);
#line 3185 "rhythmbox-plugin.c"
	}
	__finally0:
#line 203 "rhythmbox-plugin.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 203 "rhythmbox-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 203 "rhythmbox-plugin.vala"
		g_clear_error (&_inner_error0_);
#line 203 "rhythmbox-plugin.vala"
		return;
#line 3196 "rhythmbox-plugin.c"
	}
}

static void
synapse_rhythmbox_actions_previous_class_init (SynapseRhythmboxActionsPreviousClass * klass,
                                               gpointer klass_data)
{
#line 192 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_previous_parent_class = g_type_class_peek_parent (klass);
#line 192 "rhythmbox-plugin.vala"
	((SynapseActionMatchClass *) klass)->do_action = (void (*) (SynapseActionMatch*)) synapse_rhythmbox_actions_previous_real_do_action;
#line 3208 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_previous_instance_init (SynapseRhythmboxActionsPrevious * self,
                                                  gpointer klass)
{
}

static GType
synapse_rhythmbox_actions_previous_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseRhythmboxActionsPreviousClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_rhythmbox_actions_previous_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseRhythmboxActionsPrevious), 0, (GInstanceInitFunc) synapse_rhythmbox_actions_previous_instance_init, NULL };
	GType synapse_rhythmbox_actions_previous_type_id;
	synapse_rhythmbox_actions_previous_type_id = g_type_register_static (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_CONTROL_MATCH, "SynapseRhythmboxActionsPrevious", &g_define_type_info, 0);
	return synapse_rhythmbox_actions_previous_type_id;
}

static GType
synapse_rhythmbox_actions_previous_get_type (void)
{
	static volatile gsize synapse_rhythmbox_actions_previous_type_id__once = 0;
	if (g_once_init_enter (&synapse_rhythmbox_actions_previous_type_id__once)) {
		GType synapse_rhythmbox_actions_previous_type_id;
		synapse_rhythmbox_actions_previous_type_id = synapse_rhythmbox_actions_previous_get_type_once ();
		g_once_init_leave (&synapse_rhythmbox_actions_previous_type_id__once, synapse_rhythmbox_actions_previous_type_id);
	}
	return synapse_rhythmbox_actions_previous_type_id__once;
}

static SynapseRhythmboxActionsAddToPlaylist*
synapse_rhythmbox_actions_add_to_playlist_construct (GType object_type)
{
	SynapseRhythmboxActionsAddToPlaylist * self = NULL;
#line 222 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsAddToPlaylist*) g_object_new (object_type, "title", _ ("Enqueue in Rhythmbox"), "description", _ ("Add the song to Rhythmbox playlist"), "icon-name", "media-playback-start", "has-thumbnail", FALSE, "default-relevancy", SYNAPSE_MATCH_SCORE_AVERAGE, NULL);
#line 220 "rhythmbox-plugin.vala"
	return self;
#line 3246 "rhythmbox-plugin.c"
}

static SynapseRhythmboxActionsAddToPlaylist*
synapse_rhythmbox_actions_add_to_playlist_new (void)
{
#line 220 "rhythmbox-plugin.vala"
	return synapse_rhythmbox_actions_add_to_playlist_construct (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_ADD_TO_PLAYLIST);
#line 3254 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_add_to_playlist_real_do_execute (SynapseAction* base,
                                                           SynapseMatch* match,
                                                           SynapseMatch* target)
{
	SynapseRhythmboxActionsAddToPlaylist * self;
	SynapseUriMatch* uri = NULL;
	SynapseUriMatch* _tmp0_;
	SynapseUriMatch* _tmp1_;
	SynapseQueryFlags _tmp2_;
	SynapseQueryFlags _tmp3_;
	GError* _inner_error0_ = NULL;
#line 228 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsAddToPlaylist*) base;
#line 228 "rhythmbox-plugin.vala"
	g_return_if_fail (match != NULL);
#line 230 "rhythmbox-plugin.vala"
	uri = G_TYPE_CHECK_INSTANCE_TYPE (match, SYNAPSE_TYPE_URI_MATCH) ? ((SynapseUriMatch*) match) : NULL;
#line 231 "rhythmbox-plugin.vala"
	_tmp0_ = uri;
#line 231 "rhythmbox-plugin.vala"
	g_return_if_fail (_tmp0_ != NULL);
#line 232 "rhythmbox-plugin.vala"
	_tmp1_ = uri;
#line 232 "rhythmbox-plugin.vala"
	_tmp2_ = synapse_uri_match_get_file_type (_tmp1_);
#line 232 "rhythmbox-plugin.vala"
	_tmp3_ = _tmp2_;
#line 232 "rhythmbox-plugin.vala"
	g_return_if_fail ((_tmp3_ & SYNAPSE_QUERY_FLAGS_AUDIO) != 0);
#line 3287 "rhythmbox-plugin.c"
	{
		SynapseRhythmboxPlayQueue* shell = NULL;
		SynapseRhythmboxPlayQueue* _tmp4_;
		SynapseRhythmboxPlayer* player = NULL;
		SynapseRhythmboxPlayer* _tmp5_;
		SynapseRhythmboxPlayQueue* _tmp6_;
		SynapseUriMatch* _tmp7_;
		const gchar* _tmp8_;
		const gchar* _tmp9_;
		SynapseRhythmboxPlayer* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_;
		gboolean _tmp14_;
#line 236 "rhythmbox-plugin.vala"
		_tmp4_ = (SynapseRhythmboxPlayQueue*) g_initable_new (SYNAPSE_TYPE_RHYTHMBOX_PLAY_QUEUE_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_RHYTHMBOX_PLAY_QUEUE_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_RHYTHMBOX_PLAY_QUEUE_OBJECT_PATH, "g-interface-name", "org.gnome.Rhythmbox3.PlayQueue", NULL);
#line 236 "rhythmbox-plugin.vala"
		shell = (SynapseRhythmboxPlayQueue*) _tmp4_;
#line 236 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 3308 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 240 "rhythmbox-plugin.vala"
		_tmp5_ = (SynapseRhythmboxPlayer*) g_initable_new (SYNAPSE_TYPE_RHYTHMBOX_PLAYER_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_RHYTHMBOX_PLAYER_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_RHYTHMBOX_PLAYER_OBJECT_PATH, "g-interface-name", "org.mpris.MediaPlayer2.Player", NULL);
#line 240 "rhythmbox-plugin.vala"
		player = (SynapseRhythmboxPlayer*) _tmp5_;
#line 240 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 240 "rhythmbox-plugin.vala"
			_g_object_unref0 (shell);
#line 3319 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 244 "rhythmbox-plugin.vala"
		_tmp6_ = shell;
#line 244 "rhythmbox-plugin.vala"
		_tmp7_ = uri;
#line 244 "rhythmbox-plugin.vala"
		_tmp8_ = synapse_uri_match_get_uri (_tmp7_);
#line 244 "rhythmbox-plugin.vala"
		_tmp9_ = _tmp8_;
#line 244 "rhythmbox-plugin.vala"
		synapse_rhythmbox_play_queue_add_to_queue (_tmp6_, _tmp9_, &_inner_error0_);
#line 244 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 244 "rhythmbox-plugin.vala"
			_g_object_unref0 (player);
#line 244 "rhythmbox-plugin.vala"
			_g_object_unref0 (shell);
#line 3338 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 245 "rhythmbox-plugin.vala"
		_tmp10_ = player;
#line 245 "rhythmbox-plugin.vala"
		_tmp11_ = synapse_rhythmbox_player_get_playback_status (_tmp10_);
#line 245 "rhythmbox-plugin.vala"
		_tmp12_ = _tmp11_;
#line 245 "rhythmbox-plugin.vala"
		_tmp13_ = _tmp12_;
#line 245 "rhythmbox-plugin.vala"
		_tmp14_ = !(g_strcmp0 (_tmp13_, "Playing") == 0);
#line 245 "rhythmbox-plugin.vala"
		_g_free0 (_tmp13_);
#line 245 "rhythmbox-plugin.vala"
		if (_tmp14_) {
#line 3355 "rhythmbox-plugin.c"
			SynapseRhythmboxPlayer* _tmp15_;
#line 246 "rhythmbox-plugin.vala"
			_tmp15_ = player;
#line 246 "rhythmbox-plugin.vala"
			synapse_rhythmbox_player_play (_tmp15_, &_inner_error0_);
#line 246 "rhythmbox-plugin.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 246 "rhythmbox-plugin.vala"
				_g_object_unref0 (player);
#line 246 "rhythmbox-plugin.vala"
				_g_object_unref0 (shell);
#line 3367 "rhythmbox-plugin.c"
				goto __catch0_g_error;
			}
		}
#line 234 "rhythmbox-plugin.vala"
		_g_object_unref0 (player);
#line 234 "rhythmbox-plugin.vala"
		_g_object_unref0 (shell);
#line 3375 "rhythmbox-plugin.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp16_;
		const gchar* _tmp17_;
#line 234 "rhythmbox-plugin.vala"
		e = _inner_error0_;
#line 234 "rhythmbox-plugin.vala"
		_inner_error0_ = NULL;
#line 250 "rhythmbox-plugin.vala"
		_tmp16_ = e;
#line 250 "rhythmbox-plugin.vala"
		_tmp17_ = _tmp16_->message;
#line 250 "rhythmbox-plugin.vala"
		g_warning ("rhythmbox-plugin.vala:250: Rythmbox is not available.\n%s", _tmp17_);
#line 234 "rhythmbox-plugin.vala"
		_g_error_free0 (e);
#line 3395 "rhythmbox-plugin.c"
	}
	__finally0:
#line 234 "rhythmbox-plugin.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 234 "rhythmbox-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 234 "rhythmbox-plugin.vala"
		g_clear_error (&_inner_error0_);
#line 234 "rhythmbox-plugin.vala"
		return;
#line 3406 "rhythmbox-plugin.c"
	}
}

static gboolean
synapse_rhythmbox_actions_add_to_playlist_real_valid_for_match (SynapseAction* base,
                                                                SynapseMatch* match)
{
	SynapseRhythmboxActionsAddToPlaylist * self;
	gboolean _tmp0_ = FALSE;
	gboolean result;
#line 254 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsAddToPlaylist*) base;
#line 254 "rhythmbox-plugin.vala"
	g_return_val_if_fail (match != NULL, FALSE);
#line 256 "rhythmbox-plugin.vala"
	if (G_TYPE_CHECK_INSTANCE_TYPE (match, SYNAPSE_TYPE_URI_MATCH)) {
#line 3423 "rhythmbox-plugin.c"
		SynapseQueryFlags _tmp1_;
		SynapseQueryFlags _tmp2_;
#line 256 "rhythmbox-plugin.vala"
		_tmp1_ = synapse_uri_match_get_file_type (G_TYPE_CHECK_INSTANCE_CAST (match, SYNAPSE_TYPE_URI_MATCH, SynapseUriMatch));
#line 256 "rhythmbox-plugin.vala"
		_tmp2_ = _tmp1_;
#line 256 "rhythmbox-plugin.vala"
		_tmp0_ = (_tmp2_ & SYNAPSE_QUERY_FLAGS_AUDIO) != 0;
#line 3432 "rhythmbox-plugin.c"
	} else {
#line 256 "rhythmbox-plugin.vala"
		_tmp0_ = FALSE;
#line 3436 "rhythmbox-plugin.c"
	}
#line 256 "rhythmbox-plugin.vala"
	result = _tmp0_;
#line 256 "rhythmbox-plugin.vala"
	return result;
#line 3442 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_add_to_playlist_class_init (SynapseRhythmboxActionsAddToPlaylistClass * klass,
                                                      gpointer klass_data)
{
#line 218 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_add_to_playlist_parent_class = g_type_class_peek_parent (klass);
#line 218 "rhythmbox-plugin.vala"
	((SynapseActionClass *) klass)->do_execute = (void (*) (SynapseAction*, SynapseMatch*, SynapseMatch*)) synapse_rhythmbox_actions_add_to_playlist_real_do_execute;
#line 218 "rhythmbox-plugin.vala"
	((SynapseActionClass *) klass)->valid_for_match = (gboolean (*) (SynapseAction*, SynapseMatch*)) synapse_rhythmbox_actions_add_to_playlist_real_valid_for_match;
#line 3455 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_add_to_playlist_instance_init (SynapseRhythmboxActionsAddToPlaylist * self,
                                                         gpointer klass)
{
}

static GType
synapse_rhythmbox_actions_add_to_playlist_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseRhythmboxActionsAddToPlaylistClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_rhythmbox_actions_add_to_playlist_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseRhythmboxActionsAddToPlaylist), 0, (GInstanceInitFunc) synapse_rhythmbox_actions_add_to_playlist_instance_init, NULL };
	GType synapse_rhythmbox_actions_add_to_playlist_type_id;
	synapse_rhythmbox_actions_add_to_playlist_type_id = g_type_register_static (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_ACTION, "SynapseRhythmboxActionsAddToPlaylist", &g_define_type_info, 0);
	return synapse_rhythmbox_actions_add_to_playlist_type_id;
}

static GType
synapse_rhythmbox_actions_add_to_playlist_get_type (void)
{
	static volatile gsize synapse_rhythmbox_actions_add_to_playlist_type_id__once = 0;
	if (g_once_init_enter (&synapse_rhythmbox_actions_add_to_playlist_type_id__once)) {
		GType synapse_rhythmbox_actions_add_to_playlist_type_id;
		synapse_rhythmbox_actions_add_to_playlist_type_id = synapse_rhythmbox_actions_add_to_playlist_get_type_once ();
		g_once_init_leave (&synapse_rhythmbox_actions_add_to_playlist_type_id__once, synapse_rhythmbox_actions_add_to_playlist_type_id);
	}
	return synapse_rhythmbox_actions_add_to_playlist_type_id__once;
}

static SynapseRhythmboxActionsPlayNow*
synapse_rhythmbox_actions_play_now_construct (GType object_type)
{
	SynapseRhythmboxActionsPlayNow * self = NULL;
#line 264 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsPlayNow*) g_object_new (object_type, "title", _ ("Play in Rhythmbox"), "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 262 "rhythmbox-plugin.vala"
	return self;
#line 3493 "rhythmbox-plugin.c"
}

static SynapseRhythmboxActionsPlayNow*
synapse_rhythmbox_actions_play_now_new (void)
{
#line 262 "rhythmbox-plugin.vala"
	return synapse_rhythmbox_actions_play_now_construct (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_PLAY_NOW);
#line 3501 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_play_now_real_do_execute (SynapseAction* base,
                                                    SynapseMatch* match,
                                                    SynapseMatch* target)
{
	SynapseRhythmboxActionsPlayNow * self;
	SynapseUriMatch* uri = NULL;
	SynapseUriMatch* _tmp0_;
	SynapseUriMatch* _tmp1_;
	SynapseQueryFlags _tmp2_;
	SynapseQueryFlags _tmp3_;
	GError* _inner_error0_ = NULL;
#line 270 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsPlayNow*) base;
#line 270 "rhythmbox-plugin.vala"
	g_return_if_fail (match != NULL);
#line 272 "rhythmbox-plugin.vala"
	uri = G_TYPE_CHECK_INSTANCE_TYPE (match, SYNAPSE_TYPE_URI_MATCH) ? ((SynapseUriMatch*) match) : NULL;
#line 273 "rhythmbox-plugin.vala"
	_tmp0_ = uri;
#line 273 "rhythmbox-plugin.vala"
	g_return_if_fail (_tmp0_ != NULL);
#line 274 "rhythmbox-plugin.vala"
	_tmp1_ = uri;
#line 274 "rhythmbox-plugin.vala"
	_tmp2_ = synapse_uri_match_get_file_type (_tmp1_);
#line 274 "rhythmbox-plugin.vala"
	_tmp3_ = _tmp2_;
#line 274 "rhythmbox-plugin.vala"
	g_return_if_fail ((_tmp3_ & SYNAPSE_QUERY_FLAGS_AUDIO) != 0);
#line 3534 "rhythmbox-plugin.c"
	{
		SynapseRhythmboxPlayer* player = NULL;
		SynapseRhythmboxPlayer* _tmp4_;
		SynapseRhythmboxPlayer* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gboolean _tmp9_;
		SynapseRhythmboxPlayer* _tmp11_;
		SynapseUriMatch* _tmp12_;
		const gchar* _tmp13_;
		const gchar* _tmp14_;
#line 278 "rhythmbox-plugin.vala"
		_tmp4_ = (SynapseRhythmboxPlayer*) g_initable_new (SYNAPSE_TYPE_RHYTHMBOX_PLAYER_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", SYNAPSE_RHYTHMBOX_PLAYER_UNIQUE_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", SYNAPSE_RHYTHMBOX_PLAYER_OBJECT_PATH, "g-interface-name", "org.mpris.MediaPlayer2.Player", NULL);
#line 278 "rhythmbox-plugin.vala"
		player = (SynapseRhythmboxPlayer*) _tmp4_;
#line 278 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 3553 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 282 "rhythmbox-plugin.vala"
		_tmp5_ = player;
#line 282 "rhythmbox-plugin.vala"
		_tmp6_ = synapse_rhythmbox_player_get_playback_status (_tmp5_);
#line 282 "rhythmbox-plugin.vala"
		_tmp7_ = _tmp6_;
#line 282 "rhythmbox-plugin.vala"
		_tmp8_ = _tmp7_;
#line 282 "rhythmbox-plugin.vala"
		_tmp9_ = !(g_strcmp0 (_tmp8_, "Playing") == 0);
#line 282 "rhythmbox-plugin.vala"
		_g_free0 (_tmp8_);
#line 282 "rhythmbox-plugin.vala"
		if (_tmp9_) {
#line 3570 "rhythmbox-plugin.c"
			SynapseRhythmboxPlayer* _tmp10_;
#line 283 "rhythmbox-plugin.vala"
			_tmp10_ = player;
#line 283 "rhythmbox-plugin.vala"
			synapse_rhythmbox_player_play (_tmp10_, &_inner_error0_);
#line 283 "rhythmbox-plugin.vala"
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 283 "rhythmbox-plugin.vala"
				_g_object_unref0 (player);
#line 3580 "rhythmbox-plugin.c"
				goto __catch0_g_error;
			}
		}
#line 284 "rhythmbox-plugin.vala"
		_tmp11_ = player;
#line 284 "rhythmbox-plugin.vala"
		_tmp12_ = uri;
#line 284 "rhythmbox-plugin.vala"
		_tmp13_ = synapse_uri_match_get_uri (_tmp12_);
#line 284 "rhythmbox-plugin.vala"
		_tmp14_ = _tmp13_;
#line 284 "rhythmbox-plugin.vala"
		synapse_rhythmbox_player_open_uri (_tmp11_, _tmp14_, &_inner_error0_);
#line 284 "rhythmbox-plugin.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 284 "rhythmbox-plugin.vala"
			_g_object_unref0 (player);
#line 3598 "rhythmbox-plugin.c"
			goto __catch0_g_error;
		}
#line 276 "rhythmbox-plugin.vala"
		_g_object_unref0 (player);
#line 3603 "rhythmbox-plugin.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp15_;
		const gchar* _tmp16_;
#line 276 "rhythmbox-plugin.vala"
		e = _inner_error0_;
#line 276 "rhythmbox-plugin.vala"
		_inner_error0_ = NULL;
#line 288 "rhythmbox-plugin.vala"
		_tmp15_ = e;
#line 288 "rhythmbox-plugin.vala"
		_tmp16_ = _tmp15_->message;
#line 288 "rhythmbox-plugin.vala"
		g_warning ("rhythmbox-plugin.vala:288: Rythmbox is not available.\n%s", _tmp16_);
#line 276 "rhythmbox-plugin.vala"
		_g_error_free0 (e);
#line 3623 "rhythmbox-plugin.c"
	}
	__finally0:
#line 276 "rhythmbox-plugin.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 276 "rhythmbox-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 276 "rhythmbox-plugin.vala"
		g_clear_error (&_inner_error0_);
#line 276 "rhythmbox-plugin.vala"
		return;
#line 3634 "rhythmbox-plugin.c"
	}
}

static gboolean
synapse_rhythmbox_actions_play_now_real_valid_for_match (SynapseAction* base,
                                                         SynapseMatch* match)
{
	SynapseRhythmboxActionsPlayNow * self;
	gboolean _tmp0_ = FALSE;
	gboolean result;
#line 292 "rhythmbox-plugin.vala"
	self = (SynapseRhythmboxActionsPlayNow*) base;
#line 292 "rhythmbox-plugin.vala"
	g_return_val_if_fail (match != NULL, FALSE);
#line 294 "rhythmbox-plugin.vala"
	if (G_TYPE_CHECK_INSTANCE_TYPE (match, SYNAPSE_TYPE_URI_MATCH)) {
#line 3651 "rhythmbox-plugin.c"
		SynapseQueryFlags _tmp1_;
		SynapseQueryFlags _tmp2_;
#line 294 "rhythmbox-plugin.vala"
		_tmp1_ = synapse_uri_match_get_file_type (G_TYPE_CHECK_INSTANCE_CAST (match, SYNAPSE_TYPE_URI_MATCH, SynapseUriMatch));
#line 294 "rhythmbox-plugin.vala"
		_tmp2_ = _tmp1_;
#line 294 "rhythmbox-plugin.vala"
		_tmp0_ = (_tmp2_ & SYNAPSE_QUERY_FLAGS_AUDIO) != 0;
#line 3660 "rhythmbox-plugin.c"
	} else {
#line 294 "rhythmbox-plugin.vala"
		_tmp0_ = FALSE;
#line 3664 "rhythmbox-plugin.c"
	}
#line 294 "rhythmbox-plugin.vala"
	result = _tmp0_;
#line 294 "rhythmbox-plugin.vala"
	return result;
#line 3670 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_play_now_class_init (SynapseRhythmboxActionsPlayNowClass * klass,
                                               gpointer klass_data)
{
#line 260 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_play_now_parent_class = g_type_class_peek_parent (klass);
#line 260 "rhythmbox-plugin.vala"
	((SynapseActionClass *) klass)->do_execute = (void (*) (SynapseAction*, SynapseMatch*, SynapseMatch*)) synapse_rhythmbox_actions_play_now_real_do_execute;
#line 260 "rhythmbox-plugin.vala"
	((SynapseActionClass *) klass)->valid_for_match = (gboolean (*) (SynapseAction*, SynapseMatch*)) synapse_rhythmbox_actions_play_now_real_valid_for_match;
#line 3683 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_play_now_instance_init (SynapseRhythmboxActionsPlayNow * self,
                                                  gpointer klass)
{
}

static GType
synapse_rhythmbox_actions_play_now_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseRhythmboxActionsPlayNowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_rhythmbox_actions_play_now_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseRhythmboxActionsPlayNow), 0, (GInstanceInitFunc) synapse_rhythmbox_actions_play_now_instance_init, NULL };
	GType synapse_rhythmbox_actions_play_now_type_id;
	synapse_rhythmbox_actions_play_now_type_id = g_type_register_static (SYNAPSE_RHYTHMBOX_ACTIONS_TYPE_RHYTHMBOX_ACTION, "SynapseRhythmboxActionsPlayNow", &g_define_type_info, 0);
	return synapse_rhythmbox_actions_play_now_type_id;
}

static GType
synapse_rhythmbox_actions_play_now_get_type (void)
{
	static volatile gsize synapse_rhythmbox_actions_play_now_type_id__once = 0;
	if (g_once_init_enter (&synapse_rhythmbox_actions_play_now_type_id__once)) {
		GType synapse_rhythmbox_actions_play_now_type_id;
		synapse_rhythmbox_actions_play_now_type_id = synapse_rhythmbox_actions_play_now_get_type_once ();
		g_once_init_leave (&synapse_rhythmbox_actions_play_now_type_id__once, synapse_rhythmbox_actions_play_now_type_id);
	}
	return synapse_rhythmbox_actions_play_now_type_id__once;
}

static GObject *
synapse_rhythmbox_actions_constructor (GType type,
                                       guint n_construct_properties,
                                       GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	SynapseRhythmboxActions * self;
#line 301 "rhythmbox-plugin.vala"
	parent_class = G_OBJECT_CLASS (synapse_rhythmbox_actions_parent_class);
#line 301 "rhythmbox-plugin.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 301 "rhythmbox-plugin.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_TYPE_RHYTHMBOX_ACTIONS, SynapseRhythmboxActions);
#line 301 "rhythmbox-plugin.vala"
	return obj;
#line 3729 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_class_init (SynapseRhythmboxActionsClass * klass,
                                      gpointer klass_data)
{
#line 51 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_parent_class = g_type_class_peek_parent (klass);
#line 51 "rhythmbox-plugin.vala"
	g_type_class_adjust_private_offset (klass, &SynapseRhythmboxActions_private_offset);
#line 51 "rhythmbox-plugin.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_rhythmbox_actions_get_property;
#line 51 "rhythmbox-plugin.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_rhythmbox_actions_set_property;
#line 51 "rhythmbox-plugin.vala"
	G_OBJECT_CLASS (klass)->constructor = synapse_rhythmbox_actions_constructor;
#line 51 "rhythmbox-plugin.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_rhythmbox_actions_finalize;
#line 51 "rhythmbox-plugin.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_RHYTHMBOX_ACTIONS_ENABLED_PROPERTY, synapse_rhythmbox_actions_properties[SYNAPSE_RHYTHMBOX_ACTIONS_ENABLED_PROPERTY] = g_param_spec_boolean ("enabled", "enabled", "enabled", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 89 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_register_plugin ();
#line 3752 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_synapse_activatable_interface_init (SynapseActivatableIface * iface,
                                                              gpointer iface_data)
{
#line 51 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_synapse_activatable_parent_iface = g_type_interface_peek_parent (iface);
#line 51 "rhythmbox-plugin.vala"
	iface->activate = (void (*) (SynapseActivatable*)) synapse_rhythmbox_actions_real_activate;
#line 51 "rhythmbox-plugin.vala"
	iface->deactivate = (void (*) (SynapseActivatable*)) synapse_rhythmbox_actions_real_deactivate;
#line 51 "rhythmbox-plugin.vala"
	iface->get_enabled = synapse_rhythmbox_actions_real_get_enabled;
#line 51 "rhythmbox-plugin.vala"
	iface->set_enabled = synapse_rhythmbox_actions_real_set_enabled;
#line 3769 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_synapse_item_provider_interface_init (SynapseItemProviderIface * iface,
                                                                gpointer iface_data)
{
#line 51 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_synapse_item_provider_parent_iface = g_type_interface_peek_parent (iface);
#line 51 "rhythmbox-plugin.vala"
	iface->search = (void (*) (SynapseItemProvider*, SynapseQuery*, GAsyncReadyCallback, gpointer)) synapse_rhythmbox_actions_real_search;
#line 51 "rhythmbox-plugin.vala"
	iface->search_finish = (SynapseResultSet* (*) (SynapseItemProvider*, GAsyncResult*, GError**)) synapse_rhythmbox_actions_search_finish;
#line 3782 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_synapse_action_provider_interface_init (SynapseActionProviderIface * iface,
                                                                  gpointer iface_data)
{
#line 51 "rhythmbox-plugin.vala"
	synapse_rhythmbox_actions_synapse_action_provider_parent_iface = g_type_interface_peek_parent (iface);
#line 51 "rhythmbox-plugin.vala"
	iface->find_for_match = (SynapseResultSet* (*) (SynapseActionProvider*, SynapseQuery*, SynapseMatch*)) synapse_rhythmbox_actions_real_find_for_match;
#line 3793 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_instance_init (SynapseRhythmboxActions * self,
                                         gpointer klass)
{
#line 51 "rhythmbox-plugin.vala"
	self->priv = synapse_rhythmbox_actions_get_instance_private (self);
#line 53 "rhythmbox-plugin.vala"
	self->priv->_enabled = TRUE;
#line 3804 "rhythmbox-plugin.c"
}

static void
synapse_rhythmbox_actions_finalize (GObject * obj)
{
	SynapseRhythmboxActions * self;
#line 51 "rhythmbox-plugin.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_TYPE_RHYTHMBOX_ACTIONS, SynapseRhythmboxActions);
#line 298 "rhythmbox-plugin.vala"
	_g_object_unref0 (self->priv->actions);
#line 299 "rhythmbox-plugin.vala"
	_g_object_unref0 (self->priv->matches);
#line 51 "rhythmbox-plugin.vala"
	G_OBJECT_CLASS (synapse_rhythmbox_actions_parent_class)->finalize (obj);
#line 3819 "rhythmbox-plugin.c"
}

static GType
synapse_rhythmbox_actions_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseRhythmboxActionsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_rhythmbox_actions_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseRhythmboxActions), 0, (GInstanceInitFunc) synapse_rhythmbox_actions_instance_init, NULL };
	static const GInterfaceInfo synapse_activatable_info = { (GInterfaceInitFunc) synapse_rhythmbox_actions_synapse_activatable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	static const GInterfaceInfo synapse_item_provider_info = { (GInterfaceInitFunc) synapse_rhythmbox_actions_synapse_item_provider_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	static const GInterfaceInfo synapse_action_provider_info = { (GInterfaceInitFunc) synapse_rhythmbox_actions_synapse_action_provider_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType synapse_rhythmbox_actions_type_id;
	synapse_rhythmbox_actions_type_id = g_type_register_static (G_TYPE_OBJECT, "SynapseRhythmboxActions", &g_define_type_info, 0);
	g_type_add_interface_static (synapse_rhythmbox_actions_type_id, SYNAPSE_TYPE_ACTIVATABLE, &synapse_activatable_info);
	g_type_add_interface_static (synapse_rhythmbox_actions_type_id, SYNAPSE_TYPE_ITEM_PROVIDER, &synapse_item_provider_info);
	g_type_add_interface_static (synapse_rhythmbox_actions_type_id, SYNAPSE_TYPE_ACTION_PROVIDER, &synapse_action_provider_info);
	SynapseRhythmboxActions_private_offset = g_type_add_instance_private (synapse_rhythmbox_actions_type_id, sizeof (SynapseRhythmboxActionsPrivate));
	return synapse_rhythmbox_actions_type_id;
}

GType
synapse_rhythmbox_actions_get_type (void)
{
	static volatile gsize synapse_rhythmbox_actions_type_id__once = 0;
	if (g_once_init_enter (&synapse_rhythmbox_actions_type_id__once)) {
		GType synapse_rhythmbox_actions_type_id;
		synapse_rhythmbox_actions_type_id = synapse_rhythmbox_actions_get_type_once ();
		g_once_init_leave (&synapse_rhythmbox_actions_type_id__once, synapse_rhythmbox_actions_type_id);
	}
	return synapse_rhythmbox_actions_type_id__once;
}

static void
_vala_synapse_rhythmbox_actions_get_property (GObject * object,
                                              guint property_id,
                                              GValue * value,
                                              GParamSpec * pspec)
{
	SynapseRhythmboxActions * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_TYPE_RHYTHMBOX_ACTIONS, SynapseRhythmboxActions);
#line 51 "rhythmbox-plugin.vala"
	switch (property_id) {
#line 51 "rhythmbox-plugin.vala"
		case SYNAPSE_RHYTHMBOX_ACTIONS_ENABLED_PROPERTY:
#line 51 "rhythmbox-plugin.vala"
		g_value_set_boolean (value, synapse_activatable_get_enabled ((SynapseActivatable*) self));
#line 51 "rhythmbox-plugin.vala"
		break;
#line 3866 "rhythmbox-plugin.c"
		default:
#line 51 "rhythmbox-plugin.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 51 "rhythmbox-plugin.vala"
		break;
#line 3872 "rhythmbox-plugin.c"
	}
}

static void
_vala_synapse_rhythmbox_actions_set_property (GObject * object,
                                              guint property_id,
                                              const GValue * value,
                                              GParamSpec * pspec)
{
	SynapseRhythmboxActions * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_TYPE_RHYTHMBOX_ACTIONS, SynapseRhythmboxActions);
#line 51 "rhythmbox-plugin.vala"
	switch (property_id) {
#line 51 "rhythmbox-plugin.vala"
		case SYNAPSE_RHYTHMBOX_ACTIONS_ENABLED_PROPERTY:
#line 51 "rhythmbox-plugin.vala"
		synapse_activatable_set_enabled ((SynapseActivatable*) self, g_value_get_boolean (value));
#line 51 "rhythmbox-plugin.vala"
		break;
#line 3892 "rhythmbox-plugin.c"
		default:
#line 51 "rhythmbox-plugin.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 51 "rhythmbox-plugin.vala"
		break;
#line 3898 "rhythmbox-plugin.c"
	}
}

