/* budgie-screencast.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __BUDGIE_SCREENCAST_SRC_BUDGIE_SCREENCAST_H__
#define __BUDGIE_SCREENCAST_SRC_BUDGIE_SCREENCAST_H__

#include <gtk/gtk.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <libpeas.h>
#include <plugin.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>

G_BEGIN_DECLS

#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define SCREENCAST_APPLET_TYPE_SCREENCAST_SETTINGS (screencast_applet_screencast_settings_get_type ())
#define SCREENCAST_APPLET_SCREENCAST_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCREENCAST_APPLET_TYPE_SCREENCAST_SETTINGS, ScreencastAppletScreencastSettings))
#define SCREENCAST_APPLET_SCREENCAST_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCREENCAST_APPLET_TYPE_SCREENCAST_SETTINGS, ScreencastAppletScreencastSettingsClass))
#define SCREENCAST_APPLET_IS_SCREENCAST_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCREENCAST_APPLET_TYPE_SCREENCAST_SETTINGS))
#define SCREENCAST_APPLET_IS_SCREENCAST_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCREENCAST_APPLET_TYPE_SCREENCAST_SETTINGS))
#define SCREENCAST_APPLET_SCREENCAST_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCREENCAST_APPLET_TYPE_SCREENCAST_SETTINGS, ScreencastAppletScreencastSettingsClass))

typedef struct _ScreencastAppletScreencastSettings ScreencastAppletScreencastSettings;
typedef struct _ScreencastAppletScreencastSettingsClass ScreencastAppletScreencastSettingsClass;
typedef struct _ScreencastAppletScreencastSettingsPrivate ScreencastAppletScreencastSettingsPrivate;

#define SCREENCAST_APPLET_TYPE_PLUGIN (screencast_applet_plugin_get_type ())
#define SCREENCAST_APPLET_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCREENCAST_APPLET_TYPE_PLUGIN, ScreencastAppletPlugin))
#define SCREENCAST_APPLET_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCREENCAST_APPLET_TYPE_PLUGIN, ScreencastAppletPluginClass))
#define SCREENCAST_APPLET_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCREENCAST_APPLET_TYPE_PLUGIN))
#define SCREENCAST_APPLET_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCREENCAST_APPLET_TYPE_PLUGIN))
#define SCREENCAST_APPLET_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCREENCAST_APPLET_TYPE_PLUGIN, ScreencastAppletPluginClass))

typedef struct _ScreencastAppletPlugin ScreencastAppletPlugin;
typedef struct _ScreencastAppletPluginClass ScreencastAppletPluginClass;
typedef struct _ScreencastAppletPluginPrivate ScreencastAppletPluginPrivate;

#define SCREENCAST_APPLET_TYPE_SCREENCAST_POPOVER (screencast_applet_screencast_popover_get_type ())
#define SCREENCAST_APPLET_SCREENCAST_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCREENCAST_APPLET_TYPE_SCREENCAST_POPOVER, ScreencastAppletScreencastPopover))
#define SCREENCAST_APPLET_SCREENCAST_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCREENCAST_APPLET_TYPE_SCREENCAST_POPOVER, ScreencastAppletScreencastPopoverClass))
#define SCREENCAST_APPLET_IS_SCREENCAST_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCREENCAST_APPLET_TYPE_SCREENCAST_POPOVER))
#define SCREENCAST_APPLET_IS_SCREENCAST_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCREENCAST_APPLET_TYPE_SCREENCAST_POPOVER))
#define SCREENCAST_APPLET_SCREENCAST_POPOVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCREENCAST_APPLET_TYPE_SCREENCAST_POPOVER, ScreencastAppletScreencastPopoverClass))

typedef struct _ScreencastAppletScreencastPopover ScreencastAppletScreencastPopover;
typedef struct _ScreencastAppletScreencastPopoverClass ScreencastAppletScreencastPopoverClass;
typedef struct _ScreencastAppletScreencastPopoverPrivate ScreencastAppletScreencastPopoverPrivate;
typedef enum  {
	RECORDER_CONTROL_CAPTURE_MODE_SCREEN,
	RECORDER_CONTROL_CAPTURE_MODE_AREA
} RecorderControlCaptureMode;

#define RECORDER_CONTROL_TYPE_CAPTURE_MODE (recorder_control_capture_mode_get_type ())

#define SCREENCAST_APPLET_TYPE_SCREENCAST_APPLET (screencast_applet_screencast_applet_get_type ())
#define SCREENCAST_APPLET_SCREENCAST_APPLET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCREENCAST_APPLET_TYPE_SCREENCAST_APPLET, ScreencastAppletScreencastApplet))
#define SCREENCAST_APPLET_SCREENCAST_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCREENCAST_APPLET_TYPE_SCREENCAST_APPLET, ScreencastAppletScreencastAppletClass))
#define SCREENCAST_APPLET_IS_SCREENCAST_APPLET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCREENCAST_APPLET_TYPE_SCREENCAST_APPLET))
#define SCREENCAST_APPLET_IS_SCREENCAST_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCREENCAST_APPLET_TYPE_SCREENCAST_APPLET))
#define SCREENCAST_APPLET_SCREENCAST_APPLET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCREENCAST_APPLET_TYPE_SCREENCAST_APPLET, ScreencastAppletScreencastAppletClass))

typedef struct _ScreencastAppletScreencastApplet ScreencastAppletScreencastApplet;
typedef struct _ScreencastAppletScreencastAppletClass ScreencastAppletScreencastAppletClass;
typedef struct _ScreencastAppletScreencastAppletPrivate ScreencastAppletScreencastAppletPrivate;

#define RECORDER_CONTROL_TYPE_RECORDER (recorder_control_recorder_get_type ())
#define RECORDER_CONTROL_RECORDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RECORDER_CONTROL_TYPE_RECORDER, RecorderControlRecorder))
#define RECORDER_CONTROL_RECORDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RECORDER_CONTROL_TYPE_RECORDER, RecorderControlRecorderClass))
#define RECORDER_CONTROL_IS_RECORDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RECORDER_CONTROL_TYPE_RECORDER))
#define RECORDER_CONTROL_IS_RECORDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RECORDER_CONTROL_TYPE_RECORDER))
#define RECORDER_CONTROL_RECORDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RECORDER_CONTROL_TYPE_RECORDER, RecorderControlRecorderClass))

typedef struct _RecorderControlRecorder RecorderControlRecorder;
typedef struct _RecorderControlRecorderClass RecorderControlRecorderClass;
typedef struct _RecorderControlRecorderPrivate RecorderControlRecorderPrivate;

#define TYPE_SCREENCAST_ICON (screencast_icon_get_type ())
#define SCREENCAST_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCREENCAST_ICON, ScreencastIcon))
#define SCREENCAST_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCREENCAST_ICON, ScreencastIconClass))
#define IS_SCREENCAST_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCREENCAST_ICON))
#define IS_SCREENCAST_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCREENCAST_ICON))
#define SCREENCAST_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCREENCAST_ICON, ScreencastIconClass))

typedef struct _ScreencastIcon ScreencastIcon;
typedef struct _ScreencastIconClass ScreencastIconClass;
typedef struct _ScreencastIconPrivate ScreencastIconPrivate;

struct _ScreencastAppletScreencastSettings {
	GtkGrid parent_instance;
	ScreencastAppletScreencastSettingsPrivate * priv;
};

struct _ScreencastAppletScreencastSettingsClass {
	GtkGridClass parent_class;
};

struct _ScreencastAppletPlugin {
	PeasExtensionBase parent_instance;
	ScreencastAppletPluginPrivate * priv;
};

struct _ScreencastAppletPluginClass {
	PeasExtensionBaseClass parent_class;
};

struct _ScreencastAppletScreencastPopover {
	BudgiePopover parent_instance;
	ScreencastAppletScreencastPopoverPrivate * priv;
};

struct _ScreencastAppletScreencastPopoverClass {
	BudgiePopoverClass parent_class;
};

struct _ScreencastAppletScreencastApplet {
	BudgieApplet parent_instance;
	ScreencastAppletScreencastAppletPrivate * priv;
};

struct _ScreencastAppletScreencastAppletClass {
	BudgieAppletClass parent_class;
};

struct _RecorderControlRecorder {
	GObject parent_instance;
	RecorderControlRecorderPrivate * priv;
};

struct _RecorderControlRecorderClass {
	GObjectClass parent_class;
};

struct _ScreencastIcon {
	GtkEventBox parent_instance;
	ScreencastIconPrivate * priv;
};

struct _ScreencastIconClass {
	GtkEventBoxClass parent_class;
};

GType screencast_applet_screencast_settings_register_type (GTypeModule * module);
VALA_EXTERN GType screencast_applet_screencast_settings_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ScreencastAppletScreencastSettings, g_object_unref)
VALA_EXTERN ScreencastAppletScreencastSettings* screencast_applet_screencast_settings_new (GSettings* settings);
VALA_EXTERN ScreencastAppletScreencastSettings* screencast_applet_screencast_settings_construct (GType object_type,
                                                                                     GSettings* settings);
GType screencast_applet_plugin_register_type (GTypeModule * module);
VALA_EXTERN GType screencast_applet_plugin_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ScreencastAppletPlugin, g_object_unref)
VALA_EXTERN ScreencastAppletPlugin* screencast_applet_plugin_new (void);
VALA_EXTERN ScreencastAppletPlugin* screencast_applet_plugin_construct (GType object_type);
GType screencast_applet_screencast_popover_register_type (GTypeModule * module);
VALA_EXTERN GType screencast_applet_screencast_popover_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ScreencastAppletScreencastPopover, g_object_unref)
VALA_EXTERN ScreencastAppletScreencastPopover* screencast_applet_screencast_popover_new (GtkEventBox* panel_widget,
                                                                             GSettings* settings);
VALA_EXTERN ScreencastAppletScreencastPopover* screencast_applet_screencast_popover_construct (GType object_type,
                                                                                   GtkEventBox* panel_widget,
                                                                                   GSettings* settings);
VALA_EXTERN void screencast_applet_screencast_popover_generate_outputs (ScreencastAppletScreencastPopover* self);
VALA_EXTERN gchar* screencast_applet_screencast_popover_get_selected_output (ScreencastAppletScreencastPopover* self);
VALA_EXTERN const gchar* screencast_applet_screencast_popover_get_active (ScreencastAppletScreencastPopover* self);
VALA_EXTERN GType recorder_control_capture_mode_get_type (void) G_GNUC_CONST ;
VALA_EXTERN RecorderControlCaptureMode screencast_applet_screencast_popover_get_capture_mode (ScreencastAppletScreencastPopover* self);
VALA_EXTERN gint screencast_applet_screencast_popover_get_delay_seconds (ScreencastAppletScreencastPopover* self);
VALA_EXTERN gint screencast_applet_screencast_popover_get_duration_seconds (ScreencastAppletScreencastPopover* self);
VALA_EXTERN gboolean screencast_applet_screencast_popover_get_audio_enabled (ScreencastAppletScreencastPopover* self);
VALA_EXTERN const gchar* screencast_applet_screencast_popover_get_audio_device (ScreencastAppletScreencastPopover* self);
GType screencast_applet_screencast_applet_register_type (GTypeModule * module);
VALA_EXTERN GType screencast_applet_screencast_applet_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ScreencastAppletScreencastApplet, g_object_unref)
VALA_EXTERN ScreencastAppletScreencastApplet* screencast_applet_screencast_applet_new (const gchar* uuid);
VALA_EXTERN ScreencastAppletScreencastApplet* screencast_applet_screencast_applet_construct (GType object_type,
                                                                                 const gchar* uuid);
VALA_EXTERN void screencast_applet_screencast_applet_initialiseLocaleLanguageSupport (ScreencastAppletScreencastApplet* self);
VALA_EXTERN const gchar* screencast_applet_screencast_applet_get_uuid (ScreencastAppletScreencastApplet* self);
VALA_EXTERN void screencast_applet_screencast_applet_set_uuid (ScreencastAppletScreencastApplet* self,
                                                   const gchar* value);
VALA_EXTERN void peas_register_types (GTypeModule* module);
GType recorder_control_recorder_register_type (GTypeModule * module);
VALA_EXTERN GType recorder_control_recorder_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RecorderControlRecorder, g_object_unref)
VALA_EXTERN void recorder_control_recorder_toggle (RecorderControlRecorder* self,
                                       const gchar* output,
                                       RecorderControlCaptureMode mode,
                                       gint delay_seconds,
                                       gint duration_seconds,
                                       gboolean audio_enabled,
                                       const gchar* audio_device);
VALA_EXTERN void recorder_control_recorder_start (RecorderControlRecorder* self,
                                      const gchar* output,
                                      RecorderControlCaptureMode mode,
                                      gint delay_seconds,
                                      gint duration_seconds,
                                      gboolean audio_enabled,
                                      const gchar* audio_device);
VALA_EXTERN void recorder_control_recorder_stop (RecorderControlRecorder* self);
VALA_EXTERN void recorder_control_recorder_set_save_path (RecorderControlRecorder* self,
                                              const gchar* path);
VALA_EXTERN RecorderControlRecorder* recorder_control_recorder_new (void);
VALA_EXTERN RecorderControlRecorder* recorder_control_recorder_construct (GType object_type);
VALA_EXTERN gboolean recorder_control_recorder_get_recording (RecorderControlRecorder* self);
VALA_EXTERN gboolean recorder_control_recorder_get_pending (RecorderControlRecorder* self);
GType screencast_icon_register_type (GTypeModule * module);
VALA_EXTERN GType screencast_icon_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ScreencastIcon, g_object_unref)
VALA_EXTERN ScreencastIcon* screencast_icon_new (const gchar* icon_name);
VALA_EXTERN ScreencastIcon* screencast_icon_construct (GType object_type,
                                           const gchar* icon_name);
VALA_EXTERN void screencast_icon_set_recording (ScreencastIcon* self,
                                    gboolean recording);
VALA_EXTERN void screencast_icon_set_pending (ScreencastIcon* self,
                                  gboolean pending,
                                  gint seconds);
VALA_EXTERN void screencast_icon_update_countdown (ScreencastIcon* self,
                                       gint seconds);

G_END_DECLS

#endif
