/*
 * 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 __META_DBUS_SCREEN_CAST_H__
#define __META_DBUS_SCREEN_CAST_H__

#include <gio/gio.h>

G_BEGIN_DECLS


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.Mutter.ScreenCast */

#define META_DBUS_TYPE_SCREEN_CAST (meta_dbus_screen_cast_get_type ())
#define META_DBUS_SCREEN_CAST(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), META_DBUS_TYPE_SCREEN_CAST, MetaDBusScreenCast))
#define META_DBUS_IS_SCREEN_CAST(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), META_DBUS_TYPE_SCREEN_CAST))
#define META_DBUS_SCREEN_CAST_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), META_DBUS_TYPE_SCREEN_CAST, MetaDBusScreenCastIface))

struct _MetaDBusScreenCast;
typedef struct _MetaDBusScreenCast MetaDBusScreenCast;
typedef struct _MetaDBusScreenCastIface MetaDBusScreenCastIface;

struct _MetaDBusScreenCastIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_create_session) (
    MetaDBusScreenCast *object,
    GDBusMethodInvocation *invocation,
    GVariant *arg_properties);

  gint  (*get_version) (MetaDBusScreenCast *object);

};

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

GType meta_dbus_screen_cast_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *meta_dbus_screen_cast_interface_info (void);
guint meta_dbus_screen_cast_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void meta_dbus_screen_cast_complete_create_session (
    MetaDBusScreenCast *object,
    GDBusMethodInvocation *invocation,
    const gchar *session_path);



/* D-Bus method calls: */
void meta_dbus_screen_cast_call_create_session (
    MetaDBusScreenCast *proxy,
    GVariant *arg_properties,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean meta_dbus_screen_cast_call_create_session_finish (
    MetaDBusScreenCast *proxy,
    gchar ** out_session_path,
    GAsyncResult *res,
    GError **error);

gboolean meta_dbus_screen_cast_call_create_session_sync (
    MetaDBusScreenCast *proxy,
    GVariant *arg_properties,
    gchar ** out_session_path,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
gint meta_dbus_screen_cast_get_version (MetaDBusScreenCast *object);
void meta_dbus_screen_cast_set_version (MetaDBusScreenCast *object, gint value);


/* ---- */

#define META_DBUS_TYPE_SCREEN_CAST_PROXY (meta_dbus_screen_cast_proxy_get_type ())
#define META_DBUS_SCREEN_CAST_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), META_DBUS_TYPE_SCREEN_CAST_PROXY, MetaDBusScreenCastProxy))
#define META_DBUS_SCREEN_CAST_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), META_DBUS_TYPE_SCREEN_CAST_PROXY, MetaDBusScreenCastProxyClass))
#define META_DBUS_SCREEN_CAST_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), META_DBUS_TYPE_SCREEN_CAST_PROXY, MetaDBusScreenCastProxyClass))
#define META_DBUS_IS_SCREEN_CAST_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), META_DBUS_TYPE_SCREEN_CAST_PROXY))
#define META_DBUS_IS_SCREEN_CAST_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), META_DBUS_TYPE_SCREEN_CAST_PROXY))

typedef struct _MetaDBusScreenCastProxy MetaDBusScreenCastProxy;
typedef struct _MetaDBusScreenCastProxyClass MetaDBusScreenCastProxyClass;
typedef struct _MetaDBusScreenCastProxyPrivate MetaDBusScreenCastProxyPrivate;

struct _MetaDBusScreenCastProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  MetaDBusScreenCastProxyPrivate *priv;
};

struct _MetaDBusScreenCastProxyClass
{
  GDBusProxyClass parent_class;
};

GType meta_dbus_screen_cast_proxy_get_type (void) G_GNUC_CONST;

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

void meta_dbus_screen_cast_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
MetaDBusScreenCast *meta_dbus_screen_cast_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
MetaDBusScreenCast *meta_dbus_screen_cast_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void meta_dbus_screen_cast_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
MetaDBusScreenCast *meta_dbus_screen_cast_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
MetaDBusScreenCast *meta_dbus_screen_cast_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define META_DBUS_TYPE_SCREEN_CAST_SKELETON (meta_dbus_screen_cast_skeleton_get_type ())
#define META_DBUS_SCREEN_CAST_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), META_DBUS_TYPE_SCREEN_CAST_SKELETON, MetaDBusScreenCastSkeleton))
#define META_DBUS_SCREEN_CAST_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), META_DBUS_TYPE_SCREEN_CAST_SKELETON, MetaDBusScreenCastSkeletonClass))
#define META_DBUS_SCREEN_CAST_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), META_DBUS_TYPE_SCREEN_CAST_SKELETON, MetaDBusScreenCastSkeletonClass))
#define META_DBUS_IS_SCREEN_CAST_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), META_DBUS_TYPE_SCREEN_CAST_SKELETON))
#define META_DBUS_IS_SCREEN_CAST_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), META_DBUS_TYPE_SCREEN_CAST_SKELETON))

typedef struct _MetaDBusScreenCastSkeleton MetaDBusScreenCastSkeleton;
typedef struct _MetaDBusScreenCastSkeletonClass MetaDBusScreenCastSkeletonClass;
typedef struct _MetaDBusScreenCastSkeletonPrivate MetaDBusScreenCastSkeletonPrivate;

struct _MetaDBusScreenCastSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  MetaDBusScreenCastSkeletonPrivate *priv;
};

struct _MetaDBusScreenCastSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType meta_dbus_screen_cast_skeleton_get_type (void) G_GNUC_CONST;

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

MetaDBusScreenCast *meta_dbus_screen_cast_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.Mutter.ScreenCast.Session */

#define META_DBUS_TYPE_SCREEN_CAST_SESSION (meta_dbus_screen_cast_session_get_type ())
#define META_DBUS_SCREEN_CAST_SESSION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), META_DBUS_TYPE_SCREEN_CAST_SESSION, MetaDBusScreenCastSession))
#define META_DBUS_IS_SCREEN_CAST_SESSION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), META_DBUS_TYPE_SCREEN_CAST_SESSION))
#define META_DBUS_SCREEN_CAST_SESSION_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), META_DBUS_TYPE_SCREEN_CAST_SESSION, MetaDBusScreenCastSessionIface))

struct _MetaDBusScreenCastSession;
typedef struct _MetaDBusScreenCastSession MetaDBusScreenCastSession;
typedef struct _MetaDBusScreenCastSessionIface MetaDBusScreenCastSessionIface;

struct _MetaDBusScreenCastSessionIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_record_area) (
    MetaDBusScreenCastSession *object,
    GDBusMethodInvocation *invocation,
    gint arg_x,
    gint arg_y,
    gint arg_width,
    gint arg_height,
    GVariant *arg_properties);

  gboolean (*handle_record_monitor) (
    MetaDBusScreenCastSession *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_connector,
    GVariant *arg_properties);

  gboolean (*handle_record_virtual) (
    MetaDBusScreenCastSession *object,
    GDBusMethodInvocation *invocation,
    GVariant *arg_properties);

  gboolean (*handle_record_window) (
    MetaDBusScreenCastSession *object,
    GDBusMethodInvocation *invocation,
    GVariant *arg_properties);

  gboolean (*handle_start) (
    MetaDBusScreenCastSession *object,
    GDBusMethodInvocation *invocation);

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

  void (*closed) (
    MetaDBusScreenCastSession *object);

};

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

GType meta_dbus_screen_cast_session_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *meta_dbus_screen_cast_session_interface_info (void);
guint meta_dbus_screen_cast_session_override_properties (GObjectClass *klass, guint property_id_begin);


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

void meta_dbus_screen_cast_session_complete_stop (
    MetaDBusScreenCastSession *object,
    GDBusMethodInvocation *invocation);

void meta_dbus_screen_cast_session_complete_record_monitor (
    MetaDBusScreenCastSession *object,
    GDBusMethodInvocation *invocation,
    const gchar *stream_path);

void meta_dbus_screen_cast_session_complete_record_window (
    MetaDBusScreenCastSession *object,
    GDBusMethodInvocation *invocation,
    const gchar *stream_path);

void meta_dbus_screen_cast_session_complete_record_area (
    MetaDBusScreenCastSession *object,
    GDBusMethodInvocation *invocation,
    const gchar *stream_path);

void meta_dbus_screen_cast_session_complete_record_virtual (
    MetaDBusScreenCastSession *object,
    GDBusMethodInvocation *invocation,
    const gchar *stream_path);



/* D-Bus signal emissions functions: */
void meta_dbus_screen_cast_session_emit_closed (
    MetaDBusScreenCastSession *object);



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

gboolean meta_dbus_screen_cast_session_call_start_finish (
    MetaDBusScreenCastSession *proxy,
    GAsyncResult *res,
    GError **error);

gboolean meta_dbus_screen_cast_session_call_start_sync (
    MetaDBusScreenCastSession *proxy,
    GCancellable *cancellable,
    GError **error);

void meta_dbus_screen_cast_session_call_stop (
    MetaDBusScreenCastSession *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean meta_dbus_screen_cast_session_call_stop_finish (
    MetaDBusScreenCastSession *proxy,
    GAsyncResult *res,
    GError **error);

gboolean meta_dbus_screen_cast_session_call_stop_sync (
    MetaDBusScreenCastSession *proxy,
    GCancellable *cancellable,
    GError **error);

void meta_dbus_screen_cast_session_call_record_monitor (
    MetaDBusScreenCastSession *proxy,
    const gchar *arg_connector,
    GVariant *arg_properties,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean meta_dbus_screen_cast_session_call_record_monitor_finish (
    MetaDBusScreenCastSession *proxy,
    gchar ** out_stream_path,
    GAsyncResult *res,
    GError **error);

gboolean meta_dbus_screen_cast_session_call_record_monitor_sync (
    MetaDBusScreenCastSession *proxy,
    const gchar *arg_connector,
    GVariant *arg_properties,
    gchar ** out_stream_path,
    GCancellable *cancellable,
    GError **error);

void meta_dbus_screen_cast_session_call_record_window (
    MetaDBusScreenCastSession *proxy,
    GVariant *arg_properties,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean meta_dbus_screen_cast_session_call_record_window_finish (
    MetaDBusScreenCastSession *proxy,
    gchar ** out_stream_path,
    GAsyncResult *res,
    GError **error);

gboolean meta_dbus_screen_cast_session_call_record_window_sync (
    MetaDBusScreenCastSession *proxy,
    GVariant *arg_properties,
    gchar ** out_stream_path,
    GCancellable *cancellable,
    GError **error);

void meta_dbus_screen_cast_session_call_record_area (
    MetaDBusScreenCastSession *proxy,
    gint arg_x,
    gint arg_y,
    gint arg_width,
    gint arg_height,
    GVariant *arg_properties,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean meta_dbus_screen_cast_session_call_record_area_finish (
    MetaDBusScreenCastSession *proxy,
    gchar ** out_stream_path,
    GAsyncResult *res,
    GError **error);

gboolean meta_dbus_screen_cast_session_call_record_area_sync (
    MetaDBusScreenCastSession *proxy,
    gint arg_x,
    gint arg_y,
    gint arg_width,
    gint arg_height,
    GVariant *arg_properties,
    gchar ** out_stream_path,
    GCancellable *cancellable,
    GError **error);

void meta_dbus_screen_cast_session_call_record_virtual (
    MetaDBusScreenCastSession *proxy,
    GVariant *arg_properties,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean meta_dbus_screen_cast_session_call_record_virtual_finish (
    MetaDBusScreenCastSession *proxy,
    gchar ** out_stream_path,
    GAsyncResult *res,
    GError **error);

gboolean meta_dbus_screen_cast_session_call_record_virtual_sync (
    MetaDBusScreenCastSession *proxy,
    GVariant *arg_properties,
    gchar ** out_stream_path,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define META_DBUS_TYPE_SCREEN_CAST_SESSION_PROXY (meta_dbus_screen_cast_session_proxy_get_type ())
#define META_DBUS_SCREEN_CAST_SESSION_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), META_DBUS_TYPE_SCREEN_CAST_SESSION_PROXY, MetaDBusScreenCastSessionProxy))
#define META_DBUS_SCREEN_CAST_SESSION_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), META_DBUS_TYPE_SCREEN_CAST_SESSION_PROXY, MetaDBusScreenCastSessionProxyClass))
#define META_DBUS_SCREEN_CAST_SESSION_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), META_DBUS_TYPE_SCREEN_CAST_SESSION_PROXY, MetaDBusScreenCastSessionProxyClass))
#define META_DBUS_IS_SCREEN_CAST_SESSION_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), META_DBUS_TYPE_SCREEN_CAST_SESSION_PROXY))
#define META_DBUS_IS_SCREEN_CAST_SESSION_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), META_DBUS_TYPE_SCREEN_CAST_SESSION_PROXY))

typedef struct _MetaDBusScreenCastSessionProxy MetaDBusScreenCastSessionProxy;
typedef struct _MetaDBusScreenCastSessionProxyClass MetaDBusScreenCastSessionProxyClass;
typedef struct _MetaDBusScreenCastSessionProxyPrivate MetaDBusScreenCastSessionProxyPrivate;

struct _MetaDBusScreenCastSessionProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  MetaDBusScreenCastSessionProxyPrivate *priv;
};

struct _MetaDBusScreenCastSessionProxyClass
{
  GDBusProxyClass parent_class;
};

GType meta_dbus_screen_cast_session_proxy_get_type (void) G_GNUC_CONST;

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

void meta_dbus_screen_cast_session_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
MetaDBusScreenCastSession *meta_dbus_screen_cast_session_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
MetaDBusScreenCastSession *meta_dbus_screen_cast_session_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void meta_dbus_screen_cast_session_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
MetaDBusScreenCastSession *meta_dbus_screen_cast_session_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
MetaDBusScreenCastSession *meta_dbus_screen_cast_session_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define META_DBUS_TYPE_SCREEN_CAST_SESSION_SKELETON (meta_dbus_screen_cast_session_skeleton_get_type ())
#define META_DBUS_SCREEN_CAST_SESSION_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), META_DBUS_TYPE_SCREEN_CAST_SESSION_SKELETON, MetaDBusScreenCastSessionSkeleton))
#define META_DBUS_SCREEN_CAST_SESSION_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), META_DBUS_TYPE_SCREEN_CAST_SESSION_SKELETON, MetaDBusScreenCastSessionSkeletonClass))
#define META_DBUS_SCREEN_CAST_SESSION_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), META_DBUS_TYPE_SCREEN_CAST_SESSION_SKELETON, MetaDBusScreenCastSessionSkeletonClass))
#define META_DBUS_IS_SCREEN_CAST_SESSION_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), META_DBUS_TYPE_SCREEN_CAST_SESSION_SKELETON))
#define META_DBUS_IS_SCREEN_CAST_SESSION_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), META_DBUS_TYPE_SCREEN_CAST_SESSION_SKELETON))

typedef struct _MetaDBusScreenCastSessionSkeleton MetaDBusScreenCastSessionSkeleton;
typedef struct _MetaDBusScreenCastSessionSkeletonClass MetaDBusScreenCastSessionSkeletonClass;
typedef struct _MetaDBusScreenCastSessionSkeletonPrivate MetaDBusScreenCastSessionSkeletonPrivate;

struct _MetaDBusScreenCastSessionSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  MetaDBusScreenCastSessionSkeletonPrivate *priv;
};

struct _MetaDBusScreenCastSessionSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType meta_dbus_screen_cast_session_skeleton_get_type (void) G_GNUC_CONST;

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

MetaDBusScreenCastSession *meta_dbus_screen_cast_session_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.Mutter.ScreenCast.Stream */

#define META_DBUS_TYPE_SCREEN_CAST_STREAM (meta_dbus_screen_cast_stream_get_type ())
#define META_DBUS_SCREEN_CAST_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), META_DBUS_TYPE_SCREEN_CAST_STREAM, MetaDBusScreenCastStream))
#define META_DBUS_IS_SCREEN_CAST_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), META_DBUS_TYPE_SCREEN_CAST_STREAM))
#define META_DBUS_SCREEN_CAST_STREAM_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), META_DBUS_TYPE_SCREEN_CAST_STREAM, MetaDBusScreenCastStreamIface))

struct _MetaDBusScreenCastStream;
typedef struct _MetaDBusScreenCastStream MetaDBusScreenCastStream;
typedef struct _MetaDBusScreenCastStreamIface MetaDBusScreenCastStreamIface;

struct _MetaDBusScreenCastStreamIface
{
  GTypeInterface parent_iface;



  gboolean (*handle_start) (
    MetaDBusScreenCastStream *object,
    GDBusMethodInvocation *invocation);

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

  GVariant * (*get_parameters) (MetaDBusScreenCastStream *object);

  void (*pipewire_stream_added) (
    MetaDBusScreenCastStream *object,
    guint arg_node_id);

};

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

GType meta_dbus_screen_cast_stream_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *meta_dbus_screen_cast_stream_interface_info (void);
guint meta_dbus_screen_cast_stream_override_properties (GObjectClass *klass, guint property_id_begin);


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

void meta_dbus_screen_cast_stream_complete_stop (
    MetaDBusScreenCastStream *object,
    GDBusMethodInvocation *invocation);



/* D-Bus signal emissions functions: */
void meta_dbus_screen_cast_stream_emit_pipewire_stream_added (
    MetaDBusScreenCastStream *object,
    guint arg_node_id);



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

gboolean meta_dbus_screen_cast_stream_call_start_finish (
    MetaDBusScreenCastStream *proxy,
    GAsyncResult *res,
    GError **error);

gboolean meta_dbus_screen_cast_stream_call_start_sync (
    MetaDBusScreenCastStream *proxy,
    GCancellable *cancellable,
    GError **error);

void meta_dbus_screen_cast_stream_call_stop (
    MetaDBusScreenCastStream *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean meta_dbus_screen_cast_stream_call_stop_finish (
    MetaDBusScreenCastStream *proxy,
    GAsyncResult *res,
    GError **error);

gboolean meta_dbus_screen_cast_stream_call_stop_sync (
    MetaDBusScreenCastStream *proxy,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
GVariant *meta_dbus_screen_cast_stream_get_parameters (MetaDBusScreenCastStream *object);
GVariant *meta_dbus_screen_cast_stream_dup_parameters (MetaDBusScreenCastStream *object);
void meta_dbus_screen_cast_stream_set_parameters (MetaDBusScreenCastStream *object, GVariant *value);


/* ---- */

#define META_DBUS_TYPE_SCREEN_CAST_STREAM_PROXY (meta_dbus_screen_cast_stream_proxy_get_type ())
#define META_DBUS_SCREEN_CAST_STREAM_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), META_DBUS_TYPE_SCREEN_CAST_STREAM_PROXY, MetaDBusScreenCastStreamProxy))
#define META_DBUS_SCREEN_CAST_STREAM_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), META_DBUS_TYPE_SCREEN_CAST_STREAM_PROXY, MetaDBusScreenCastStreamProxyClass))
#define META_DBUS_SCREEN_CAST_STREAM_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), META_DBUS_TYPE_SCREEN_CAST_STREAM_PROXY, MetaDBusScreenCastStreamProxyClass))
#define META_DBUS_IS_SCREEN_CAST_STREAM_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), META_DBUS_TYPE_SCREEN_CAST_STREAM_PROXY))
#define META_DBUS_IS_SCREEN_CAST_STREAM_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), META_DBUS_TYPE_SCREEN_CAST_STREAM_PROXY))

typedef struct _MetaDBusScreenCastStreamProxy MetaDBusScreenCastStreamProxy;
typedef struct _MetaDBusScreenCastStreamProxyClass MetaDBusScreenCastStreamProxyClass;
typedef struct _MetaDBusScreenCastStreamProxyPrivate MetaDBusScreenCastStreamProxyPrivate;

struct _MetaDBusScreenCastStreamProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  MetaDBusScreenCastStreamProxyPrivate *priv;
};

struct _MetaDBusScreenCastStreamProxyClass
{
  GDBusProxyClass parent_class;
};

GType meta_dbus_screen_cast_stream_proxy_get_type (void) G_GNUC_CONST;

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

void meta_dbus_screen_cast_stream_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
MetaDBusScreenCastStream *meta_dbus_screen_cast_stream_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
MetaDBusScreenCastStream *meta_dbus_screen_cast_stream_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void meta_dbus_screen_cast_stream_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
MetaDBusScreenCastStream *meta_dbus_screen_cast_stream_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
MetaDBusScreenCastStream *meta_dbus_screen_cast_stream_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define META_DBUS_TYPE_SCREEN_CAST_STREAM_SKELETON (meta_dbus_screen_cast_stream_skeleton_get_type ())
#define META_DBUS_SCREEN_CAST_STREAM_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), META_DBUS_TYPE_SCREEN_CAST_STREAM_SKELETON, MetaDBusScreenCastStreamSkeleton))
#define META_DBUS_SCREEN_CAST_STREAM_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), META_DBUS_TYPE_SCREEN_CAST_STREAM_SKELETON, MetaDBusScreenCastStreamSkeletonClass))
#define META_DBUS_SCREEN_CAST_STREAM_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), META_DBUS_TYPE_SCREEN_CAST_STREAM_SKELETON, MetaDBusScreenCastStreamSkeletonClass))
#define META_DBUS_IS_SCREEN_CAST_STREAM_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), META_DBUS_TYPE_SCREEN_CAST_STREAM_SKELETON))
#define META_DBUS_IS_SCREEN_CAST_STREAM_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), META_DBUS_TYPE_SCREEN_CAST_STREAM_SKELETON))

typedef struct _MetaDBusScreenCastStreamSkeleton MetaDBusScreenCastStreamSkeleton;
typedef struct _MetaDBusScreenCastStreamSkeletonClass MetaDBusScreenCastStreamSkeletonClass;
typedef struct _MetaDBusScreenCastStreamSkeletonPrivate MetaDBusScreenCastStreamSkeletonPrivate;

struct _MetaDBusScreenCastStreamSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  MetaDBusScreenCastStreamSkeletonPrivate *priv;
};

struct _MetaDBusScreenCastStreamSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType meta_dbus_screen_cast_stream_skeleton_get_type (void) G_GNUC_CONST;

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

MetaDBusScreenCastStream *meta_dbus_screen_cast_stream_skeleton_new (void);


G_END_DECLS

#endif /* __META_DBUS_SCREEN_CAST_H__ */
