/*
 * Generated by gdbus-codegen 2.48.1. DO NOT EDIT.
 *
 * The license of this code is the same as for the source it was derived from.
 */

#ifndef __LIB_OFONO_H__
#define __LIB_OFONO_H__

#include <gio/gio.h>

G_BEGIN_DECLS


/* ------------------------------------------------------------------------ */
/* Declarations for org.freedesktop.DBus.Introspectable */

#define OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ofono_org_freedesktop_dbus_introspectable_get_type ())
#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, OFONOOrgFreedesktopDBusIntrospectable))
#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE))
#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, OFONOOrgFreedesktopDBusIntrospectableIface))

struct _OFONOOrgFreedesktopDBusIntrospectable;
typedef struct _OFONOOrgFreedesktopDBusIntrospectable OFONOOrgFreedesktopDBusIntrospectable;
typedef struct _OFONOOrgFreedesktopDBusIntrospectableIface OFONOOrgFreedesktopDBusIntrospectableIface;

struct _OFONOOrgFreedesktopDBusIntrospectableIface
{
  GTypeInterface parent_iface;

  gboolean (*handle_introspect) (
    OFONOOrgFreedesktopDBusIntrospectable *object,
    GDBusMethodInvocation *invocation);

};

GType ofono_org_freedesktop_dbus_introspectable_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *ofono_org_freedesktop_dbus_introspectable_interface_info (void);
guint ofono_org_freedesktop_dbus_introspectable_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void ofono_org_freedesktop_dbus_introspectable_complete_introspect (
    OFONOOrgFreedesktopDBusIntrospectable *object,
    GDBusMethodInvocation *invocation,
    const gchar *xml);



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

gboolean ofono_org_freedesktop_dbus_introspectable_call_introspect_finish (
    OFONOOrgFreedesktopDBusIntrospectable *proxy,
    gchar **out_xml,
    GAsyncResult *res,
    GError **error);

gboolean ofono_org_freedesktop_dbus_introspectable_call_introspect_sync (
    OFONOOrgFreedesktopDBusIntrospectable *proxy,
    gchar **out_xml,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY (ofono_org_freedesktop_dbus_introspectable_proxy_get_type ())
#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOOrgFreedesktopDBusIntrospectableProxy))
#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOOrgFreedesktopDBusIntrospectableProxyClass))
#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOOrgFreedesktopDBusIntrospectableProxyClass))
#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY))
#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY))

typedef struct _OFONOOrgFreedesktopDBusIntrospectableProxy OFONOOrgFreedesktopDBusIntrospectableProxy;
typedef struct _OFONOOrgFreedesktopDBusIntrospectableProxyClass OFONOOrgFreedesktopDBusIntrospectableProxyClass;
typedef struct _OFONOOrgFreedesktopDBusIntrospectableProxyPrivate OFONOOrgFreedesktopDBusIntrospectableProxyPrivate;

struct _OFONOOrgFreedesktopDBusIntrospectableProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  OFONOOrgFreedesktopDBusIntrospectableProxyPrivate *priv;
};

struct _OFONOOrgFreedesktopDBusIntrospectableProxyClass
{
  GDBusProxyClass parent_class;
};

GType ofono_org_freedesktop_dbus_introspectable_proxy_get_type (void) G_GNUC_CONST;

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

void ofono_org_freedesktop_dbus_introspectable_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void ofono_org_freedesktop_dbus_introspectable_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON (ofono_org_freedesktop_dbus_introspectable_skeleton_get_type ())
#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOOrgFreedesktopDBusIntrospectableSkeleton))
#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOOrgFreedesktopDBusIntrospectableSkeletonClass))
#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOOrgFreedesktopDBusIntrospectableSkeletonClass))
#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON))
#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON))

typedef struct _OFONOOrgFreedesktopDBusIntrospectableSkeleton OFONOOrgFreedesktopDBusIntrospectableSkeleton;
typedef struct _OFONOOrgFreedesktopDBusIntrospectableSkeletonClass OFONOOrgFreedesktopDBusIntrospectableSkeletonClass;
typedef struct _OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate;

struct _OFONOOrgFreedesktopDBusIntrospectableSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate *priv;
};

struct _OFONOOrgFreedesktopDBusIntrospectableSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType ofono_org_freedesktop_dbus_introspectable_skeleton_get_type (void) G_GNUC_CONST;

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

OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.ofono.Manager */

#define OFONO_TYPE_ORG_OFONO_MANAGER (ofono_org_ofono_manager_get_type ())
#define OFONO_ORG_OFONO_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_MANAGER, OFONOOrgOfonoManager))
#define OFONO_IS_ORG_OFONO_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_MANAGER))
#define OFONO_ORG_OFONO_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_ORG_OFONO_MANAGER, OFONOOrgOfonoManagerIface))

struct _OFONOOrgOfonoManager;
typedef struct _OFONOOrgOfonoManager OFONOOrgOfonoManager;
typedef struct _OFONOOrgOfonoManagerIface OFONOOrgOfonoManagerIface;

struct _OFONOOrgOfonoManagerIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_get_modems) (
    OFONOOrgOfonoManager *object,
    GDBusMethodInvocation *invocation);

  void (*modem_added) (
    OFONOOrgOfonoManager *object,
    const gchar *arg_path,
    GVariant *arg_properties);

  void (*modem_removed) (
    OFONOOrgOfonoManager *object,
    const gchar *arg_path);

};

GType ofono_org_ofono_manager_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *ofono_org_ofono_manager_interface_info (void);
guint ofono_org_ofono_manager_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void ofono_org_ofono_manager_complete_get_modems (
    OFONOOrgOfonoManager *object,
    GDBusMethodInvocation *invocation,
    GVariant *modems);



/* D-Bus signal emissions functions: */
void ofono_org_ofono_manager_emit_modem_added (
    OFONOOrgOfonoManager *object,
    const gchar *arg_path,
    GVariant *arg_properties);

void ofono_org_ofono_manager_emit_modem_removed (
    OFONOOrgOfonoManager *object,
    const gchar *arg_path);



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

gboolean ofono_org_ofono_manager_call_get_modems_finish (
    OFONOOrgOfonoManager *proxy,
    GVariant **out_modems,
    GAsyncResult *res,
    GError **error);

gboolean ofono_org_ofono_manager_call_get_modems_sync (
    OFONOOrgOfonoManager *proxy,
    GVariant **out_modems,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define OFONO_TYPE_ORG_OFONO_MANAGER_PROXY (ofono_org_ofono_manager_proxy_get_type ())
#define OFONO_ORG_OFONO_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY, OFONOOrgOfonoManagerProxy))
#define OFONO_ORG_OFONO_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY, OFONOOrgOfonoManagerProxyClass))
#define OFONO_ORG_OFONO_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY, OFONOOrgOfonoManagerProxyClass))
#define OFONO_IS_ORG_OFONO_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY))
#define OFONO_IS_ORG_OFONO_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY))

typedef struct _OFONOOrgOfonoManagerProxy OFONOOrgOfonoManagerProxy;
typedef struct _OFONOOrgOfonoManagerProxyClass OFONOOrgOfonoManagerProxyClass;
typedef struct _OFONOOrgOfonoManagerProxyPrivate OFONOOrgOfonoManagerProxyPrivate;

struct _OFONOOrgOfonoManagerProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  OFONOOrgOfonoManagerProxyPrivate *priv;
};

struct _OFONOOrgOfonoManagerProxyClass
{
  GDBusProxyClass parent_class;
};

GType ofono_org_ofono_manager_proxy_get_type (void) G_GNUC_CONST;

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

void ofono_org_ofono_manager_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
OFONOOrgOfonoManager *ofono_org_ofono_manager_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
OFONOOrgOfonoManager *ofono_org_ofono_manager_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void ofono_org_ofono_manager_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
OFONOOrgOfonoManager *ofono_org_ofono_manager_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
OFONOOrgOfonoManager *ofono_org_ofono_manager_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON (ofono_org_ofono_manager_skeleton_get_type ())
#define OFONO_ORG_OFONO_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, OFONOOrgOfonoManagerSkeleton))
#define OFONO_ORG_OFONO_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, OFONOOrgOfonoManagerSkeletonClass))
#define OFONO_ORG_OFONO_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, OFONOOrgOfonoManagerSkeletonClass))
#define OFONO_IS_ORG_OFONO_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON))
#define OFONO_IS_ORG_OFONO_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON))

typedef struct _OFONOOrgOfonoManagerSkeleton OFONOOrgOfonoManagerSkeleton;
typedef struct _OFONOOrgOfonoManagerSkeletonClass OFONOOrgOfonoManagerSkeletonClass;
typedef struct _OFONOOrgOfonoManagerSkeletonPrivate OFONOOrgOfonoManagerSkeletonPrivate;

struct _OFONOOrgOfonoManagerSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  OFONOOrgOfonoManagerSkeletonPrivate *priv;
};

struct _OFONOOrgOfonoManagerSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType ofono_org_ofono_manager_skeleton_get_type (void) G_GNUC_CONST;

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

OFONOOrgOfonoManager *ofono_org_ofono_manager_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.ofono.HandsfreeAudioManager */

#define OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ofono_org_ofono_handsfree_audio_manager_get_type ())
#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, OFONOOrgOfonoHandsfreeAudioManager))
#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER))
#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, OFONOOrgOfonoHandsfreeAudioManagerIface))

struct _OFONOOrgOfonoHandsfreeAudioManager;
typedef struct _OFONOOrgOfonoHandsfreeAudioManager OFONOOrgOfonoHandsfreeAudioManager;
typedef struct _OFONOOrgOfonoHandsfreeAudioManagerIface OFONOOrgOfonoHandsfreeAudioManagerIface;

struct _OFONOOrgOfonoHandsfreeAudioManagerIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_get_cards) (
    OFONOOrgOfonoHandsfreeAudioManager *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_register) (
    OFONOOrgOfonoHandsfreeAudioManager *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_path,
    const gchar *arg_codecs);

  gboolean (*handle_unregister) (
    OFONOOrgOfonoHandsfreeAudioManager *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_path);

  void (*card_added) (
    OFONOOrgOfonoHandsfreeAudioManager *object,
    const gchar *arg_path,
    GVariant *arg_properties);

  void (*card_removed) (
    OFONOOrgOfonoHandsfreeAudioManager *object,
    const gchar *arg_path);

};

GType ofono_org_ofono_handsfree_audio_manager_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *ofono_org_ofono_handsfree_audio_manager_interface_info (void);
guint ofono_org_ofono_handsfree_audio_manager_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void ofono_org_ofono_handsfree_audio_manager_complete_get_cards (
    OFONOOrgOfonoHandsfreeAudioManager *object,
    GDBusMethodInvocation *invocation,
    GVariant *cards);

void ofono_org_ofono_handsfree_audio_manager_complete_register (
    OFONOOrgOfonoHandsfreeAudioManager *object,
    GDBusMethodInvocation *invocation);

void ofono_org_ofono_handsfree_audio_manager_complete_unregister (
    OFONOOrgOfonoHandsfreeAudioManager *object,
    GDBusMethodInvocation *invocation);



/* D-Bus signal emissions functions: */
void ofono_org_ofono_handsfree_audio_manager_emit_card_added (
    OFONOOrgOfonoHandsfreeAudioManager *object,
    const gchar *arg_path,
    GVariant *arg_properties);

void ofono_org_ofono_handsfree_audio_manager_emit_card_removed (
    OFONOOrgOfonoHandsfreeAudioManager *object,
    const gchar *arg_path);



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

gboolean ofono_org_ofono_handsfree_audio_manager_call_get_cards_finish (
    OFONOOrgOfonoHandsfreeAudioManager *proxy,
    GVariant **out_cards,
    GAsyncResult *res,
    GError **error);

gboolean ofono_org_ofono_handsfree_audio_manager_call_get_cards_sync (
    OFONOOrgOfonoHandsfreeAudioManager *proxy,
    GVariant **out_cards,
    GCancellable *cancellable,
    GError **error);

void ofono_org_ofono_handsfree_audio_manager_call_register (
    OFONOOrgOfonoHandsfreeAudioManager *proxy,
    const gchar *arg_path,
    const gchar *arg_codecs,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ofono_org_ofono_handsfree_audio_manager_call_register_finish (
    OFONOOrgOfonoHandsfreeAudioManager *proxy,
    GAsyncResult *res,
    GError **error);

gboolean ofono_org_ofono_handsfree_audio_manager_call_register_sync (
    OFONOOrgOfonoHandsfreeAudioManager *proxy,
    const gchar *arg_path,
    const gchar *arg_codecs,
    GCancellable *cancellable,
    GError **error);

void ofono_org_ofono_handsfree_audio_manager_call_unregister (
    OFONOOrgOfonoHandsfreeAudioManager *proxy,
    const gchar *arg_path,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ofono_org_ofono_handsfree_audio_manager_call_unregister_finish (
    OFONOOrgOfonoHandsfreeAudioManager *proxy,
    GAsyncResult *res,
    GError **error);

gboolean ofono_org_ofono_handsfree_audio_manager_call_unregister_sync (
    OFONOOrgOfonoHandsfreeAudioManager *proxy,
    const gchar *arg_path,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY (ofono_org_ofono_handsfree_audio_manager_proxy_get_type ())
#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, OFONOOrgOfonoHandsfreeAudioManagerProxy))
#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, OFONOOrgOfonoHandsfreeAudioManagerProxyClass))
#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, OFONOOrgOfonoHandsfreeAudioManagerProxyClass))
#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY))
#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY))

typedef struct _OFONOOrgOfonoHandsfreeAudioManagerProxy OFONOOrgOfonoHandsfreeAudioManagerProxy;
typedef struct _OFONOOrgOfonoHandsfreeAudioManagerProxyClass OFONOOrgOfonoHandsfreeAudioManagerProxyClass;
typedef struct _OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate;

struct _OFONOOrgOfonoHandsfreeAudioManagerProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate *priv;
};

struct _OFONOOrgOfonoHandsfreeAudioManagerProxyClass
{
  GDBusProxyClass parent_class;
};

GType ofono_org_ofono_handsfree_audio_manager_proxy_get_type (void) G_GNUC_CONST;

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

void ofono_org_ofono_handsfree_audio_manager_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON (ofono_org_ofono_handsfree_audio_manager_skeleton_get_type ())
#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, OFONOOrgOfonoHandsfreeAudioManagerSkeleton))
#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass))
#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass))
#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON))
#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON))

typedef struct _OFONOOrgOfonoHandsfreeAudioManagerSkeleton OFONOOrgOfonoHandsfreeAudioManagerSkeleton;
typedef struct _OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass;
typedef struct _OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate;

struct _OFONOOrgOfonoHandsfreeAudioManagerSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate *priv;
};

struct _OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType ofono_org_ofono_handsfree_audio_manager_skeleton_get_type (void) G_GNUC_CONST;

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

OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.ofono.phonesim.Manager */

#define OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER (ofono_org_ofono_phonesim_manager_get_type ())
#define OFONO_ORG_OFONO_PHONESIM_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, OFONOOrgOfonoPhonesimManager))
#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER))
#define OFONO_ORG_OFONO_PHONESIM_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, OFONOOrgOfonoPhonesimManagerIface))

struct _OFONOOrgOfonoPhonesimManager;
typedef struct _OFONOOrgOfonoPhonesimManager OFONOOrgOfonoPhonesimManager;
typedef struct _OFONOOrgOfonoPhonesimManagerIface OFONOOrgOfonoPhonesimManagerIface;

struct _OFONOOrgOfonoPhonesimManagerIface
{
  GTypeInterface parent_iface;

  gboolean (*handle_add) (
    OFONOOrgOfonoPhonesimManager *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_name,
    const gchar *arg_address,
    const gchar *arg_port);

  gboolean (*handle_remove_all) (
    OFONOOrgOfonoPhonesimManager *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_reset) (
    OFONOOrgOfonoPhonesimManager *object,
    GDBusMethodInvocation *invocation);

};

GType ofono_org_ofono_phonesim_manager_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *ofono_org_ofono_phonesim_manager_interface_info (void);
guint ofono_org_ofono_phonesim_manager_override_properties (GObjectClass *klass, guint property_id_begin);


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

void ofono_org_ofono_phonesim_manager_complete_remove_all (
    OFONOOrgOfonoPhonesimManager *object,
    GDBusMethodInvocation *invocation);

void ofono_org_ofono_phonesim_manager_complete_reset (
    OFONOOrgOfonoPhonesimManager *object,
    GDBusMethodInvocation *invocation);



/* D-Bus method calls: */
void ofono_org_ofono_phonesim_manager_call_add (
    OFONOOrgOfonoPhonesimManager *proxy,
    const gchar *arg_name,
    const gchar *arg_address,
    const gchar *arg_port,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ofono_org_ofono_phonesim_manager_call_add_finish (
    OFONOOrgOfonoPhonesimManager *proxy,
    GAsyncResult *res,
    GError **error);

gboolean ofono_org_ofono_phonesim_manager_call_add_sync (
    OFONOOrgOfonoPhonesimManager *proxy,
    const gchar *arg_name,
    const gchar *arg_address,
    const gchar *arg_port,
    GCancellable *cancellable,
    GError **error);

void ofono_org_ofono_phonesim_manager_call_remove_all (
    OFONOOrgOfonoPhonesimManager *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ofono_org_ofono_phonesim_manager_call_remove_all_finish (
    OFONOOrgOfonoPhonesimManager *proxy,
    GAsyncResult *res,
    GError **error);

gboolean ofono_org_ofono_phonesim_manager_call_remove_all_sync (
    OFONOOrgOfonoPhonesimManager *proxy,
    GCancellable *cancellable,
    GError **error);

void ofono_org_ofono_phonesim_manager_call_reset (
    OFONOOrgOfonoPhonesimManager *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ofono_org_ofono_phonesim_manager_call_reset_finish (
    OFONOOrgOfonoPhonesimManager *proxy,
    GAsyncResult *res,
    GError **error);

gboolean ofono_org_ofono_phonesim_manager_call_reset_sync (
    OFONOOrgOfonoPhonesimManager *proxy,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY (ofono_org_ofono_phonesim_manager_proxy_get_type ())
#define OFONO_ORG_OFONO_PHONESIM_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, OFONOOrgOfonoPhonesimManagerProxy))
#define OFONO_ORG_OFONO_PHONESIM_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, OFONOOrgOfonoPhonesimManagerProxyClass))
#define OFONO_ORG_OFONO_PHONESIM_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, OFONOOrgOfonoPhonesimManagerProxyClass))
#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY))
#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY))

typedef struct _OFONOOrgOfonoPhonesimManagerProxy OFONOOrgOfonoPhonesimManagerProxy;
typedef struct _OFONOOrgOfonoPhonesimManagerProxyClass OFONOOrgOfonoPhonesimManagerProxyClass;
typedef struct _OFONOOrgOfonoPhonesimManagerProxyPrivate OFONOOrgOfonoPhonesimManagerProxyPrivate;

struct _OFONOOrgOfonoPhonesimManagerProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  OFONOOrgOfonoPhonesimManagerProxyPrivate *priv;
};

struct _OFONOOrgOfonoPhonesimManagerProxyClass
{
  GDBusProxyClass parent_class;
};

GType ofono_org_ofono_phonesim_manager_proxy_get_type (void) G_GNUC_CONST;

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

void ofono_org_ofono_phonesim_manager_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void ofono_org_ofono_phonesim_manager_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON (ofono_org_ofono_phonesim_manager_skeleton_get_type ())
#define OFONO_ORG_OFONO_PHONESIM_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, OFONOOrgOfonoPhonesimManagerSkeleton))
#define OFONO_ORG_OFONO_PHONESIM_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, OFONOOrgOfonoPhonesimManagerSkeletonClass))
#define OFONO_ORG_OFONO_PHONESIM_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, OFONOOrgOfonoPhonesimManagerSkeletonClass))
#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON))
#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON))

typedef struct _OFONOOrgOfonoPhonesimManagerSkeleton OFONOOrgOfonoPhonesimManagerSkeleton;
typedef struct _OFONOOrgOfonoPhonesimManagerSkeletonClass OFONOOrgOfonoPhonesimManagerSkeletonClass;
typedef struct _OFONOOrgOfonoPhonesimManagerSkeletonPrivate OFONOOrgOfonoPhonesimManagerSkeletonPrivate;

struct _OFONOOrgOfonoPhonesimManagerSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  OFONOOrgOfonoPhonesimManagerSkeletonPrivate *priv;
};

struct _OFONOOrgOfonoPhonesimManagerSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType ofono_org_ofono_phonesim_manager_skeleton_get_type (void) G_GNUC_CONST;

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

OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_skeleton_new (void);


/* ---- */

#define OFONO_TYPE_OBJECT (ofono_object_get_type ())
#define OFONO_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_OBJECT, OFONOObject))
#define OFONO_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_OBJECT))
#define OFONO_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_OBJECT, OFONOObject))

struct _OFONOObject;
typedef struct _OFONOObject OFONOObject;
typedef struct _OFONOObjectIface OFONOObjectIface;

struct _OFONOObjectIface
{
  GTypeInterface parent_iface;
};

GType ofono_object_get_type (void) G_GNUC_CONST;

OFONOOrgFreedesktopDBusIntrospectable *ofono_object_get_org_freedesktop_dbus_introspectable (OFONOObject *object);
OFONOOrgOfonoManager *ofono_object_get_org_ofono_manager (OFONOObject *object);
OFONOOrgOfonoHandsfreeAudioManager *ofono_object_get_org_ofono_handsfree_audio_manager (OFONOObject *object);
OFONOOrgOfonoPhonesimManager *ofono_object_get_org_ofono_phonesim_manager (OFONOObject *object);
OFONOOrgFreedesktopDBusIntrospectable *ofono_object_peek_org_freedesktop_dbus_introspectable (OFONOObject *object);
OFONOOrgOfonoManager *ofono_object_peek_org_ofono_manager (OFONOObject *object);
OFONOOrgOfonoHandsfreeAudioManager *ofono_object_peek_org_ofono_handsfree_audio_manager (OFONOObject *object);
OFONOOrgOfonoPhonesimManager *ofono_object_peek_org_ofono_phonesim_manager (OFONOObject *object);

#define OFONO_TYPE_OBJECT_PROXY (ofono_object_proxy_get_type ())
#define OFONO_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_OBJECT_PROXY, OFONOObjectProxy))
#define OFONO_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_OBJECT_PROXY, OFONOObjectProxyClass))
#define OFONO_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_OBJECT_PROXY, OFONOObjectProxyClass))
#define OFONO_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_OBJECT_PROXY))
#define OFONO_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_OBJECT_PROXY))

typedef struct _OFONOObjectProxy OFONOObjectProxy;
typedef struct _OFONOObjectProxyClass OFONOObjectProxyClass;
typedef struct _OFONOObjectProxyPrivate OFONOObjectProxyPrivate;

struct _OFONOObjectProxy
{
  /*< private >*/
  GDBusObjectProxy parent_instance;
  OFONOObjectProxyPrivate *priv;
};

struct _OFONOObjectProxyClass
{
  GDBusObjectProxyClass parent_class;
};

GType ofono_object_proxy_get_type (void) G_GNUC_CONST;

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

OFONOObjectProxy *ofono_object_proxy_new (GDBusConnection *connection, const gchar *object_path);

#define OFONO_TYPE_OBJECT_SKELETON (ofono_object_skeleton_get_type ())
#define OFONO_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_OBJECT_SKELETON, OFONOObjectSkeleton))
#define OFONO_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_OBJECT_SKELETON, OFONOObjectSkeletonClass))
#define OFONO_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_OBJECT_SKELETON, OFONOObjectSkeletonClass))
#define OFONO_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_OBJECT_SKELETON))
#define OFONO_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_OBJECT_SKELETON))

typedef struct _OFONOObjectSkeleton OFONOObjectSkeleton;
typedef struct _OFONOObjectSkeletonClass OFONOObjectSkeletonClass;
typedef struct _OFONOObjectSkeletonPrivate OFONOObjectSkeletonPrivate;

struct _OFONOObjectSkeleton
{
  /*< private >*/
  GDBusObjectSkeleton parent_instance;
  OFONOObjectSkeletonPrivate *priv;
};

struct _OFONOObjectSkeletonClass
{
  GDBusObjectSkeletonClass parent_class;
};

GType ofono_object_skeleton_get_type (void) G_GNUC_CONST;

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

OFONOObjectSkeleton *ofono_object_skeleton_new (const gchar *object_path);
void ofono_object_skeleton_set_org_freedesktop_dbus_introspectable (OFONOObjectSkeleton *object, OFONOOrgFreedesktopDBusIntrospectable *interface_);
void ofono_object_skeleton_set_org_ofono_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoManager *interface_);
void ofono_object_skeleton_set_org_ofono_handsfree_audio_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoHandsfreeAudioManager *interface_);
void ofono_object_skeleton_set_org_ofono_phonesim_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoPhonesimManager *interface_);

/* ---- */

#define OFONO_TYPE_OBJECT_MANAGER_CLIENT (ofono_object_manager_client_get_type ())
#define OFONO_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_OBJECT_MANAGER_CLIENT, OFONOObjectManagerClient))
#define OFONO_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_OBJECT_MANAGER_CLIENT, OFONOObjectManagerClientClass))
#define OFONO_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_OBJECT_MANAGER_CLIENT, OFONOObjectManagerClientClass))
#define OFONO_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_OBJECT_MANAGER_CLIENT))
#define OFONO_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_OBJECT_MANAGER_CLIENT))

typedef struct _OFONOObjectManagerClient OFONOObjectManagerClient;
typedef struct _OFONOObjectManagerClientClass OFONOObjectManagerClientClass;
typedef struct _OFONOObjectManagerClientPrivate OFONOObjectManagerClientPrivate;

struct _OFONOObjectManagerClient
{
  /*< private >*/
  GDBusObjectManagerClient parent_instance;
  OFONOObjectManagerClientPrivate *priv;
};

struct _OFONOObjectManagerClientClass
{
  GDBusObjectManagerClientClass parent_class;
};

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

GType ofono_object_manager_client_get_type (void) G_GNUC_CONST;

GType ofono_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data);

void ofono_object_manager_client_new (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data);
GDBusObjectManager *ofono_object_manager_client_new_finish (
    GAsyncResult        *res,
    GError             **error);
GDBusObjectManager *ofono_object_manager_client_new_sync (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error);

void ofono_object_manager_client_new_for_bus (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data);
GDBusObjectManager *ofono_object_manager_client_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
GDBusObjectManager *ofono_object_manager_client_new_for_bus_sync (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error);


G_END_DECLS

#endif /* __LIB_OFONO_H__ */