/*
 * This file is generated by gdbus-codegen, do not modify it.
 *
 * The license of this code is the same as for the D-Bus interface description
 * it was derived from. Note that it links to GLib, so must comply with the
 * LGPL linking clauses.
 */

#ifndef __DBUS_INTERFACE_H__
#define __DBUS_INTERFACE_H__

#include <gio/gio.h>

G_BEGIN_DECLS


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.ShairportSync */

#define TYPE_SHAIRPORT_SYNC (shairport_sync_get_type ())
#define SHAIRPORT_SYNC(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SHAIRPORT_SYNC, ShairportSync))
#define IS_SHAIRPORT_SYNC(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SHAIRPORT_SYNC))
#define SHAIRPORT_SYNC_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_SHAIRPORT_SYNC, ShairportSyncIface))

struct _ShairportSync;
typedef struct _ShairportSync ShairportSync;
typedef struct _ShairportSyncIface ShairportSyncIface;

struct _ShairportSyncIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_drop_session) (
    ShairportSync *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_quit) (
    ShairportSync *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_remote_command) (
    ShairportSync *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_command);

  gboolean (*handle_set_frame_position_update_interval) (
    ShairportSync *object,
    GDBusMethodInvocation *invocation,
    gdouble arg_seconds);

  gboolean  (*get_active) (ShairportSync *object);

  const gchar * (*get_alacdecoder) (ShairportSync *object);

  gboolean  (*get_convolution_enabled) (ShairportSync *object);

  gdouble  (*get_convolution_gain) (ShairportSync *object);

  const gchar * (*get_convolution_impulse_response_files) (ShairportSync *object);

  gdouble  (*get_convolution_maximum_length_in_seconds) (ShairportSync *object);

  gboolean  (*get_disable_standby) (ShairportSync *object);

  const gchar * (*get_disable_standby_mode) (ShairportSync *object);

  gdouble  (*get_drift_tolerance) (ShairportSync *object);

  const gchar * (*get_first_frame_position) (ShairportSync *object);

  const gchar * (*get_frame_position) (ShairportSync *object);

  const gchar * (*get_interpolation) (ShairportSync *object);

  gboolean  (*get_loudness_enabled) (ShairportSync *object);

  gdouble  (*get_loudness_threshold) (ShairportSync *object);

  const gchar * (*get_output_format) (ShairportSync *object);

  const gchar * (*get_protocol) (ShairportSync *object);

  const gchar * (*get_service_name) (ShairportSync *object);

  const gchar * (*get_source_format) (ShairportSync *object);

  const gchar * (*get_version) (ShairportSync *object);

  const gchar * (*get_version_string) (ShairportSync *object);

  gdouble  (*get_volume) (ShairportSync *object);

  const gchar * (*get_volume_control_profile) (ShairportSync *object);

};

GType shairport_sync_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *shairport_sync_interface_info (void);
guint shairport_sync_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void shairport_sync_complete_quit (
    ShairportSync *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_complete_drop_session (
    ShairportSync *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_complete_remote_command (
    ShairportSync *object,
    GDBusMethodInvocation *invocation,
    gint reply,
    const gchar *response);

void shairport_sync_complete_set_frame_position_update_interval (
    ShairportSync *object,
    GDBusMethodInvocation *invocation);



/* D-Bus method calls: */
void shairport_sync_call_quit (
    ShairportSync *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_call_quit_finish (
    ShairportSync *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_call_quit_sync (
    ShairportSync *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_call_drop_session (
    ShairportSync *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_call_drop_session_finish (
    ShairportSync *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_call_drop_session_sync (
    ShairportSync *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_call_remote_command (
    ShairportSync *proxy,
    const gchar *arg_command,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_call_remote_command_finish (
    ShairportSync *proxy,
    gint* out_reply,
    gchar ** out_response,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_call_remote_command_sync (
    ShairportSync *proxy,
    const gchar *arg_command,
    gint* out_reply,
    gchar ** out_response,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_call_set_frame_position_update_interval (
    ShairportSync *proxy,
    gdouble arg_seconds,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_call_set_frame_position_update_interval_finish (
    ShairportSync *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_call_set_frame_position_update_interval_sync (
    ShairportSync *proxy,
    gdouble arg_seconds,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
gboolean shairport_sync_get_active (ShairportSync *object);
void shairport_sync_set_active (ShairportSync *object, gboolean value);

gboolean shairport_sync_get_disable_standby (ShairportSync *object);
void shairport_sync_set_disable_standby (ShairportSync *object, gboolean value);

const gchar *shairport_sync_get_disable_standby_mode (ShairportSync *object);
gchar *shairport_sync_dup_disable_standby_mode (ShairportSync *object);
void shairport_sync_set_disable_standby_mode (ShairportSync *object, const gchar *value);

gboolean shairport_sync_get_loudness_enabled (ShairportSync *object);
void shairport_sync_set_loudness_enabled (ShairportSync *object, gboolean value);

gdouble shairport_sync_get_loudness_threshold (ShairportSync *object);
void shairport_sync_set_loudness_threshold (ShairportSync *object, gdouble value);

gboolean shairport_sync_get_convolution_enabled (ShairportSync *object);
void shairport_sync_set_convolution_enabled (ShairportSync *object, gboolean value);

gdouble shairport_sync_get_convolution_gain (ShairportSync *object);
void shairport_sync_set_convolution_gain (ShairportSync *object, gdouble value);

const gchar *shairport_sync_get_convolution_impulse_response_files (ShairportSync *object);
gchar *shairport_sync_dup_convolution_impulse_response_files (ShairportSync *object);
void shairport_sync_set_convolution_impulse_response_files (ShairportSync *object, const gchar *value);

gdouble shairport_sync_get_convolution_maximum_length_in_seconds (ShairportSync *object);
void shairport_sync_set_convolution_maximum_length_in_seconds (ShairportSync *object, gdouble value);

gdouble shairport_sync_get_drift_tolerance (ShairportSync *object);
void shairport_sync_set_drift_tolerance (ShairportSync *object, gdouble value);

gdouble shairport_sync_get_volume (ShairportSync *object);
void shairport_sync_set_volume (ShairportSync *object, gdouble value);

const gchar *shairport_sync_get_volume_control_profile (ShairportSync *object);
gchar *shairport_sync_dup_volume_control_profile (ShairportSync *object);
void shairport_sync_set_volume_control_profile (ShairportSync *object, const gchar *value);

const gchar *shairport_sync_get_interpolation (ShairportSync *object);
gchar *shairport_sync_dup_interpolation (ShairportSync *object);
void shairport_sync_set_interpolation (ShairportSync *object, const gchar *value);

const gchar *shairport_sync_get_alacdecoder (ShairportSync *object);
gchar *shairport_sync_dup_alacdecoder (ShairportSync *object);
void shairport_sync_set_alacdecoder (ShairportSync *object, const gchar *value);

const gchar *shairport_sync_get_version (ShairportSync *object);
gchar *shairport_sync_dup_version (ShairportSync *object);
void shairport_sync_set_version (ShairportSync *object, const gchar *value);

const gchar *shairport_sync_get_version_string (ShairportSync *object);
gchar *shairport_sync_dup_version_string (ShairportSync *object);
void shairport_sync_set_version_string (ShairportSync *object, const gchar *value);

const gchar *shairport_sync_get_protocol (ShairportSync *object);
gchar *shairport_sync_dup_protocol (ShairportSync *object);
void shairport_sync_set_protocol (ShairportSync *object, const gchar *value);

const gchar *shairport_sync_get_service_name (ShairportSync *object);
gchar *shairport_sync_dup_service_name (ShairportSync *object);
void shairport_sync_set_service_name (ShairportSync *object, const gchar *value);

const gchar *shairport_sync_get_output_format (ShairportSync *object);
gchar *shairport_sync_dup_output_format (ShairportSync *object);
void shairport_sync_set_output_format (ShairportSync *object, const gchar *value);

const gchar *shairport_sync_get_source_format (ShairportSync *object);
gchar *shairport_sync_dup_source_format (ShairportSync *object);
void shairport_sync_set_source_format (ShairportSync *object, const gchar *value);

const gchar *shairport_sync_get_first_frame_position (ShairportSync *object);
gchar *shairport_sync_dup_first_frame_position (ShairportSync *object);
void shairport_sync_set_first_frame_position (ShairportSync *object, const gchar *value);

const gchar *shairport_sync_get_frame_position (ShairportSync *object);
gchar *shairport_sync_dup_frame_position (ShairportSync *object);
void shairport_sync_set_frame_position (ShairportSync *object, const gchar *value);


/* ---- */

#define TYPE_SHAIRPORT_SYNC_PROXY (shairport_sync_proxy_get_type ())
#define SHAIRPORT_SYNC_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SHAIRPORT_SYNC_PROXY, ShairportSyncProxy))
#define SHAIRPORT_SYNC_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SHAIRPORT_SYNC_PROXY, ShairportSyncProxyClass))
#define SHAIRPORT_SYNC_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SHAIRPORT_SYNC_PROXY, ShairportSyncProxyClass))
#define IS_SHAIRPORT_SYNC_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SHAIRPORT_SYNC_PROXY))
#define IS_SHAIRPORT_SYNC_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SHAIRPORT_SYNC_PROXY))

typedef struct _ShairportSyncProxy ShairportSyncProxy;
typedef struct _ShairportSyncProxyClass ShairportSyncProxyClass;
typedef struct _ShairportSyncProxyPrivate ShairportSyncProxyPrivate;

struct _ShairportSyncProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  ShairportSyncProxyPrivate *priv;
};

struct _ShairportSyncProxyClass
{
  GDBusProxyClass parent_class;
};

GType shairport_sync_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShairportSyncProxy, g_object_unref)
#endif

void shairport_sync_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
ShairportSync *shairport_sync_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
ShairportSync *shairport_sync_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void shairport_sync_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
ShairportSync *shairport_sync_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
ShairportSync *shairport_sync_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define TYPE_SHAIRPORT_SYNC_SKELETON (shairport_sync_skeleton_get_type ())
#define SHAIRPORT_SYNC_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SHAIRPORT_SYNC_SKELETON, ShairportSyncSkeleton))
#define SHAIRPORT_SYNC_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SHAIRPORT_SYNC_SKELETON, ShairportSyncSkeletonClass))
#define SHAIRPORT_SYNC_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SHAIRPORT_SYNC_SKELETON, ShairportSyncSkeletonClass))
#define IS_SHAIRPORT_SYNC_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SHAIRPORT_SYNC_SKELETON))
#define IS_SHAIRPORT_SYNC_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SHAIRPORT_SYNC_SKELETON))

typedef struct _ShairportSyncSkeleton ShairportSyncSkeleton;
typedef struct _ShairportSyncSkeletonClass ShairportSyncSkeletonClass;
typedef struct _ShairportSyncSkeletonPrivate ShairportSyncSkeletonPrivate;

struct _ShairportSyncSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  ShairportSyncSkeletonPrivate *priv;
};

struct _ShairportSyncSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType shairport_sync_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShairportSyncSkeleton, g_object_unref)
#endif

ShairportSync *shairport_sync_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.ShairportSync.Diagnostics */

#define TYPE_SHAIRPORT_SYNC_DIAGNOSTICS (shairport_sync_diagnostics_get_type ())
#define SHAIRPORT_SYNC_DIAGNOSTICS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS, ShairportSyncDiagnostics))
#define IS_SHAIRPORT_SYNC_DIAGNOSTICS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS))
#define SHAIRPORT_SYNC_DIAGNOSTICS_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS, ShairportSyncDiagnosticsIface))

struct _ShairportSyncDiagnostics;
typedef struct _ShairportSyncDiagnostics ShairportSyncDiagnostics;
typedef struct _ShairportSyncDiagnosticsIface ShairportSyncDiagnosticsIface;

struct _ShairportSyncDiagnosticsIface
{
  GTypeInterface parent_iface;

  gboolean  (*get_delta_time) (ShairportSyncDiagnostics *object);

  gboolean  (*get_elapsed_time) (ShairportSyncDiagnostics *object);

  gboolean  (*get_file_and_line) (ShairportSyncDiagnostics *object);

  gboolean  (*get_statistics) (ShairportSyncDiagnostics *object);

  gint  (*get_verbosity) (ShairportSyncDiagnostics *object);

};

GType shairport_sync_diagnostics_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *shairport_sync_diagnostics_interface_info (void);
guint shairport_sync_diagnostics_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus property accessors: */
gint shairport_sync_diagnostics_get_verbosity (ShairportSyncDiagnostics *object);
void shairport_sync_diagnostics_set_verbosity (ShairportSyncDiagnostics *object, gint value);

gboolean shairport_sync_diagnostics_get_statistics (ShairportSyncDiagnostics *object);
void shairport_sync_diagnostics_set_statistics (ShairportSyncDiagnostics *object, gboolean value);

gboolean shairport_sync_diagnostics_get_elapsed_time (ShairportSyncDiagnostics *object);
void shairport_sync_diagnostics_set_elapsed_time (ShairportSyncDiagnostics *object, gboolean value);

gboolean shairport_sync_diagnostics_get_delta_time (ShairportSyncDiagnostics *object);
void shairport_sync_diagnostics_set_delta_time (ShairportSyncDiagnostics *object, gboolean value);

gboolean shairport_sync_diagnostics_get_file_and_line (ShairportSyncDiagnostics *object);
void shairport_sync_diagnostics_set_file_and_line (ShairportSyncDiagnostics *object, gboolean value);


/* ---- */

#define TYPE_SHAIRPORT_SYNC_DIAGNOSTICS_PROXY (shairport_sync_diagnostics_proxy_get_type ())
#define SHAIRPORT_SYNC_DIAGNOSTICS_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS_PROXY, ShairportSyncDiagnosticsProxy))
#define SHAIRPORT_SYNC_DIAGNOSTICS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS_PROXY, ShairportSyncDiagnosticsProxyClass))
#define SHAIRPORT_SYNC_DIAGNOSTICS_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS_PROXY, ShairportSyncDiagnosticsProxyClass))
#define IS_SHAIRPORT_SYNC_DIAGNOSTICS_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS_PROXY))
#define IS_SHAIRPORT_SYNC_DIAGNOSTICS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS_PROXY))

typedef struct _ShairportSyncDiagnosticsProxy ShairportSyncDiagnosticsProxy;
typedef struct _ShairportSyncDiagnosticsProxyClass ShairportSyncDiagnosticsProxyClass;
typedef struct _ShairportSyncDiagnosticsProxyPrivate ShairportSyncDiagnosticsProxyPrivate;

struct _ShairportSyncDiagnosticsProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  ShairportSyncDiagnosticsProxyPrivate *priv;
};

struct _ShairportSyncDiagnosticsProxyClass
{
  GDBusProxyClass parent_class;
};

GType shairport_sync_diagnostics_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShairportSyncDiagnosticsProxy, g_object_unref)
#endif

void shairport_sync_diagnostics_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
ShairportSyncDiagnostics *shairport_sync_diagnostics_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
ShairportSyncDiagnostics *shairport_sync_diagnostics_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void shairport_sync_diagnostics_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
ShairportSyncDiagnostics *shairport_sync_diagnostics_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
ShairportSyncDiagnostics *shairport_sync_diagnostics_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define TYPE_SHAIRPORT_SYNC_DIAGNOSTICS_SKELETON (shairport_sync_diagnostics_skeleton_get_type ())
#define SHAIRPORT_SYNC_DIAGNOSTICS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS_SKELETON, ShairportSyncDiagnosticsSkeleton))
#define SHAIRPORT_SYNC_DIAGNOSTICS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS_SKELETON, ShairportSyncDiagnosticsSkeletonClass))
#define SHAIRPORT_SYNC_DIAGNOSTICS_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS_SKELETON, ShairportSyncDiagnosticsSkeletonClass))
#define IS_SHAIRPORT_SYNC_DIAGNOSTICS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS_SKELETON))
#define IS_SHAIRPORT_SYNC_DIAGNOSTICS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SHAIRPORT_SYNC_DIAGNOSTICS_SKELETON))

typedef struct _ShairportSyncDiagnosticsSkeleton ShairportSyncDiagnosticsSkeleton;
typedef struct _ShairportSyncDiagnosticsSkeletonClass ShairportSyncDiagnosticsSkeletonClass;
typedef struct _ShairportSyncDiagnosticsSkeletonPrivate ShairportSyncDiagnosticsSkeletonPrivate;

struct _ShairportSyncDiagnosticsSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  ShairportSyncDiagnosticsSkeletonPrivate *priv;
};

struct _ShairportSyncDiagnosticsSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType shairport_sync_diagnostics_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShairportSyncDiagnosticsSkeleton, g_object_unref)
#endif

ShairportSyncDiagnostics *shairport_sync_diagnostics_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.ShairportSync.RemoteControl */

#define TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL (shairport_sync_remote_control_get_type ())
#define SHAIRPORT_SYNC_REMOTE_CONTROL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL, ShairportSyncRemoteControl))
#define IS_SHAIRPORT_SYNC_REMOTE_CONTROL(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL))
#define SHAIRPORT_SYNC_REMOTE_CONTROL_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL, ShairportSyncRemoteControlIface))

struct _ShairportSyncRemoteControl;
typedef struct _ShairportSyncRemoteControl ShairportSyncRemoteControl;
typedef struct _ShairportSyncRemoteControlIface ShairportSyncRemoteControlIface;

struct _ShairportSyncRemoteControlIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_fast_forward) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_next) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_pause) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_play) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_play_pause) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_previous) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_resume) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_rewind) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_set_airplay_volume) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation,
    gdouble arg_volume);

  gboolean (*handle_shuffle_songs) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_stop) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_toggle_mute) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_volume_down) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_volume_up) (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

  gdouble  (*get_airplay_volume) (ShairportSyncRemoteControl *object);

  gboolean  (*get_available) (ShairportSyncRemoteControl *object);

  const gchar * (*get_client) (ShairportSyncRemoteControl *object);

  const gchar * (*get_client_name) (ShairportSyncRemoteControl *object);

  GVariant * (*get_metadata) (ShairportSyncRemoteControl *object);

  const gchar * (*get_player_state) (ShairportSyncRemoteControl *object);

  const gchar * (*get_progress_string) (ShairportSyncRemoteControl *object);

  const gchar * (*get_stream_type) (ShairportSyncRemoteControl *object);

};

GType shairport_sync_remote_control_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *shairport_sync_remote_control_interface_info (void);
guint shairport_sync_remote_control_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void shairport_sync_remote_control_complete_fast_forward (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_rewind (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_toggle_mute (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_next (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_previous (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_pause (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_play_pause (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_play (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_stop (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_resume (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_shuffle_songs (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_volume_up (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_volume_down (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);

void shairport_sync_remote_control_complete_set_airplay_volume (
    ShairportSyncRemoteControl *object,
    GDBusMethodInvocation *invocation);



/* D-Bus method calls: */
void shairport_sync_remote_control_call_fast_forward (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_fast_forward_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_fast_forward_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_rewind (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_rewind_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_rewind_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_toggle_mute (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_toggle_mute_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_toggle_mute_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_next (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_next_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_next_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_previous (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_previous_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_previous_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_pause (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_pause_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_pause_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_play_pause (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_play_pause_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_play_pause_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_play (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_play_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_play_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_stop (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_stop_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_stop_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_resume (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_resume_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_resume_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_shuffle_songs (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_shuffle_songs_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_shuffle_songs_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_volume_up (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_volume_up_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_volume_up_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_volume_down (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_volume_down_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_volume_down_sync (
    ShairportSyncRemoteControl *proxy,
    GCancellable *cancellable,
    GError **error);

void shairport_sync_remote_control_call_set_airplay_volume (
    ShairportSyncRemoteControl *proxy,
    gdouble arg_volume,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_remote_control_call_set_airplay_volume_finish (
    ShairportSyncRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_remote_control_call_set_airplay_volume_sync (
    ShairportSyncRemoteControl *proxy,
    gdouble arg_volume,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
const gchar *shairport_sync_remote_control_get_player_state (ShairportSyncRemoteControl *object);
gchar *shairport_sync_remote_control_dup_player_state (ShairportSyncRemoteControl *object);
void shairport_sync_remote_control_set_player_state (ShairportSyncRemoteControl *object, const gchar *value);

const gchar *shairport_sync_remote_control_get_progress_string (ShairportSyncRemoteControl *object);
gchar *shairport_sync_remote_control_dup_progress_string (ShairportSyncRemoteControl *object);
void shairport_sync_remote_control_set_progress_string (ShairportSyncRemoteControl *object, const gchar *value);

const gchar *shairport_sync_remote_control_get_client (ShairportSyncRemoteControl *object);
gchar *shairport_sync_remote_control_dup_client (ShairportSyncRemoteControl *object);
void shairport_sync_remote_control_set_client (ShairportSyncRemoteControl *object, const gchar *value);

const gchar *shairport_sync_remote_control_get_client_name (ShairportSyncRemoteControl *object);
gchar *shairport_sync_remote_control_dup_client_name (ShairportSyncRemoteControl *object);
void shairport_sync_remote_control_set_client_name (ShairportSyncRemoteControl *object, const gchar *value);

const gchar *shairport_sync_remote_control_get_stream_type (ShairportSyncRemoteControl *object);
gchar *shairport_sync_remote_control_dup_stream_type (ShairportSyncRemoteControl *object);
void shairport_sync_remote_control_set_stream_type (ShairportSyncRemoteControl *object, const gchar *value);

gdouble shairport_sync_remote_control_get_airplay_volume (ShairportSyncRemoteControl *object);
void shairport_sync_remote_control_set_airplay_volume (ShairportSyncRemoteControl *object, gdouble value);

GVariant *shairport_sync_remote_control_get_metadata (ShairportSyncRemoteControl *object);
GVariant *shairport_sync_remote_control_dup_metadata (ShairportSyncRemoteControl *object);
void shairport_sync_remote_control_set_metadata (ShairportSyncRemoteControl *object, GVariant *value);

gboolean shairport_sync_remote_control_get_available (ShairportSyncRemoteControl *object);
void shairport_sync_remote_control_set_available (ShairportSyncRemoteControl *object, gboolean value);


/* ---- */

#define TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL_PROXY (shairport_sync_remote_control_proxy_get_type ())
#define SHAIRPORT_SYNC_REMOTE_CONTROL_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL_PROXY, ShairportSyncRemoteControlProxy))
#define SHAIRPORT_SYNC_REMOTE_CONTROL_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL_PROXY, ShairportSyncRemoteControlProxyClass))
#define SHAIRPORT_SYNC_REMOTE_CONTROL_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL_PROXY, ShairportSyncRemoteControlProxyClass))
#define IS_SHAIRPORT_SYNC_REMOTE_CONTROL_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL_PROXY))
#define IS_SHAIRPORT_SYNC_REMOTE_CONTROL_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL_PROXY))

typedef struct _ShairportSyncRemoteControlProxy ShairportSyncRemoteControlProxy;
typedef struct _ShairportSyncRemoteControlProxyClass ShairportSyncRemoteControlProxyClass;
typedef struct _ShairportSyncRemoteControlProxyPrivate ShairportSyncRemoteControlProxyPrivate;

struct _ShairportSyncRemoteControlProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  ShairportSyncRemoteControlProxyPrivate *priv;
};

struct _ShairportSyncRemoteControlProxyClass
{
  GDBusProxyClass parent_class;
};

GType shairport_sync_remote_control_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShairportSyncRemoteControlProxy, g_object_unref)
#endif

void shairport_sync_remote_control_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
ShairportSyncRemoteControl *shairport_sync_remote_control_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
ShairportSyncRemoteControl *shairport_sync_remote_control_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void shairport_sync_remote_control_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
ShairportSyncRemoteControl *shairport_sync_remote_control_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
ShairportSyncRemoteControl *shairport_sync_remote_control_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL_SKELETON (shairport_sync_remote_control_skeleton_get_type ())
#define SHAIRPORT_SYNC_REMOTE_CONTROL_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL_SKELETON, ShairportSyncRemoteControlSkeleton))
#define SHAIRPORT_SYNC_REMOTE_CONTROL_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL_SKELETON, ShairportSyncRemoteControlSkeletonClass))
#define SHAIRPORT_SYNC_REMOTE_CONTROL_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL_SKELETON, ShairportSyncRemoteControlSkeletonClass))
#define IS_SHAIRPORT_SYNC_REMOTE_CONTROL_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL_SKELETON))
#define IS_SHAIRPORT_SYNC_REMOTE_CONTROL_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SHAIRPORT_SYNC_REMOTE_CONTROL_SKELETON))

typedef struct _ShairportSyncRemoteControlSkeleton ShairportSyncRemoteControlSkeleton;
typedef struct _ShairportSyncRemoteControlSkeletonClass ShairportSyncRemoteControlSkeletonClass;
typedef struct _ShairportSyncRemoteControlSkeletonPrivate ShairportSyncRemoteControlSkeletonPrivate;

struct _ShairportSyncRemoteControlSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  ShairportSyncRemoteControlSkeletonPrivate *priv;
};

struct _ShairportSyncRemoteControlSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType shairport_sync_remote_control_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShairportSyncRemoteControlSkeleton, g_object_unref)
#endif

ShairportSyncRemoteControl *shairport_sync_remote_control_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.ShairportSync.AdvancedRemoteControl */

#define TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL (shairport_sync_advanced_remote_control_get_type ())
#define SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL, ShairportSyncAdvancedRemoteControl))
#define IS_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL))
#define SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL, ShairportSyncAdvancedRemoteControlIface))

struct _ShairportSyncAdvancedRemoteControl;
typedef struct _ShairportSyncAdvancedRemoteControl ShairportSyncAdvancedRemoteControl;
typedef struct _ShairportSyncAdvancedRemoteControlIface ShairportSyncAdvancedRemoteControlIface;

struct _ShairportSyncAdvancedRemoteControlIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_set_volume) (
    ShairportSyncAdvancedRemoteControl *object,
    GDBusMethodInvocation *invocation,
    gint arg_volume);

  gboolean  (*get_available) (ShairportSyncAdvancedRemoteControl *object);

  const gchar * (*get_loop_status) (ShairportSyncAdvancedRemoteControl *object);

  const gchar * (*get_playback_status) (ShairportSyncAdvancedRemoteControl *object);

  gboolean  (*get_shuffle) (ShairportSyncAdvancedRemoteControl *object);

  gint  (*get_volume) (ShairportSyncAdvancedRemoteControl *object);

};

GType shairport_sync_advanced_remote_control_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *shairport_sync_advanced_remote_control_interface_info (void);
guint shairport_sync_advanced_remote_control_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void shairport_sync_advanced_remote_control_complete_set_volume (
    ShairportSyncAdvancedRemoteControl *object,
    GDBusMethodInvocation *invocation);



/* D-Bus method calls: */
void shairport_sync_advanced_remote_control_call_set_volume (
    ShairportSyncAdvancedRemoteControl *proxy,
    gint arg_volume,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean shairport_sync_advanced_remote_control_call_set_volume_finish (
    ShairportSyncAdvancedRemoteControl *proxy,
    GAsyncResult *res,
    GError **error);

gboolean shairport_sync_advanced_remote_control_call_set_volume_sync (
    ShairportSyncAdvancedRemoteControl *proxy,
    gint arg_volume,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
gboolean shairport_sync_advanced_remote_control_get_available (ShairportSyncAdvancedRemoteControl *object);
void shairport_sync_advanced_remote_control_set_available (ShairportSyncAdvancedRemoteControl *object, gboolean value);

const gchar *shairport_sync_advanced_remote_control_get_playback_status (ShairportSyncAdvancedRemoteControl *object);
gchar *shairport_sync_advanced_remote_control_dup_playback_status (ShairportSyncAdvancedRemoteControl *object);
void shairport_sync_advanced_remote_control_set_playback_status (ShairportSyncAdvancedRemoteControl *object, const gchar *value);

gboolean shairport_sync_advanced_remote_control_get_shuffle (ShairportSyncAdvancedRemoteControl *object);
void shairport_sync_advanced_remote_control_set_shuffle (ShairportSyncAdvancedRemoteControl *object, gboolean value);

const gchar *shairport_sync_advanced_remote_control_get_loop_status (ShairportSyncAdvancedRemoteControl *object);
gchar *shairport_sync_advanced_remote_control_dup_loop_status (ShairportSyncAdvancedRemoteControl *object);
void shairport_sync_advanced_remote_control_set_loop_status (ShairportSyncAdvancedRemoteControl *object, const gchar *value);

gint shairport_sync_advanced_remote_control_get_volume (ShairportSyncAdvancedRemoteControl *object);
void shairport_sync_advanced_remote_control_set_volume (ShairportSyncAdvancedRemoteControl *object, gint value);


/* ---- */

#define TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_PROXY (shairport_sync_advanced_remote_control_proxy_get_type ())
#define SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_PROXY, ShairportSyncAdvancedRemoteControlProxy))
#define SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_PROXY, ShairportSyncAdvancedRemoteControlProxyClass))
#define SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_PROXY, ShairportSyncAdvancedRemoteControlProxyClass))
#define IS_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_PROXY))
#define IS_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_PROXY))

typedef struct _ShairportSyncAdvancedRemoteControlProxy ShairportSyncAdvancedRemoteControlProxy;
typedef struct _ShairportSyncAdvancedRemoteControlProxyClass ShairportSyncAdvancedRemoteControlProxyClass;
typedef struct _ShairportSyncAdvancedRemoteControlProxyPrivate ShairportSyncAdvancedRemoteControlProxyPrivate;

struct _ShairportSyncAdvancedRemoteControlProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  ShairportSyncAdvancedRemoteControlProxyPrivate *priv;
};

struct _ShairportSyncAdvancedRemoteControlProxyClass
{
  GDBusProxyClass parent_class;
};

GType shairport_sync_advanced_remote_control_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShairportSyncAdvancedRemoteControlProxy, g_object_unref)
#endif

void shairport_sync_advanced_remote_control_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
ShairportSyncAdvancedRemoteControl *shairport_sync_advanced_remote_control_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
ShairportSyncAdvancedRemoteControl *shairport_sync_advanced_remote_control_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void shairport_sync_advanced_remote_control_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
ShairportSyncAdvancedRemoteControl *shairport_sync_advanced_remote_control_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
ShairportSyncAdvancedRemoteControl *shairport_sync_advanced_remote_control_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_SKELETON (shairport_sync_advanced_remote_control_skeleton_get_type ())
#define SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_SKELETON, ShairportSyncAdvancedRemoteControlSkeleton))
#define SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_SKELETON, ShairportSyncAdvancedRemoteControlSkeletonClass))
#define SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_SKELETON, ShairportSyncAdvancedRemoteControlSkeletonClass))
#define IS_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_SKELETON))
#define IS_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SHAIRPORT_SYNC_ADVANCED_REMOTE_CONTROL_SKELETON))

typedef struct _ShairportSyncAdvancedRemoteControlSkeleton ShairportSyncAdvancedRemoteControlSkeleton;
typedef struct _ShairportSyncAdvancedRemoteControlSkeletonClass ShairportSyncAdvancedRemoteControlSkeletonClass;
typedef struct _ShairportSyncAdvancedRemoteControlSkeletonPrivate ShairportSyncAdvancedRemoteControlSkeletonPrivate;

struct _ShairportSyncAdvancedRemoteControlSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  ShairportSyncAdvancedRemoteControlSkeletonPrivate *priv;
};

struct _ShairportSyncAdvancedRemoteControlSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType shairport_sync_advanced_remote_control_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ShairportSyncAdvancedRemoteControlSkeleton, g_object_unref)
#endif

ShairportSyncAdvancedRemoteControl *shairport_sync_advanced_remote_control_skeleton_new (void);


G_END_DECLS

#endif /* __DBUS_INTERFACE_H__ */
