/* astal-power-profiles.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __ASTAL_POWER_PROFILES_H__
#define __ASTAL_POWER_PROFILES_H__

#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <glib-object.h>

G_BEGIN_DECLS

#define ASTAL_POWER_PROFILES_MAJOR_VERSION 0
#define ASTAL_POWER_PROFILES_MINOR_VERSION 1
#define ASTAL_POWER_PROFILES_MICRO_VERSION 0
#define ASTAL_POWER_PROFILES_VERSION "0.1.0"
#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 ASTAL_POWER_PROFILES_TYPE_POWER_PROFILES (astal_power_profiles_power_profiles_get_type ())
#define ASTAL_POWER_PROFILES_POWER_PROFILES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_POWER_PROFILES_TYPE_POWER_PROFILES, AstalPowerProfilesPowerProfiles))
#define ASTAL_POWER_PROFILES_POWER_PROFILES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_POWER_PROFILES_TYPE_POWER_PROFILES, AstalPowerProfilesPowerProfilesClass))
#define ASTAL_POWER_PROFILES_IS_POWER_PROFILES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_POWER_PROFILES_TYPE_POWER_PROFILES))
#define ASTAL_POWER_PROFILES_IS_POWER_PROFILES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_POWER_PROFILES_TYPE_POWER_PROFILES))
#define ASTAL_POWER_PROFILES_POWER_PROFILES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_POWER_PROFILES_TYPE_POWER_PROFILES, AstalPowerProfilesPowerProfilesClass))

typedef struct _AstalPowerProfilesPowerProfiles AstalPowerProfilesPowerProfiles;
typedef struct _AstalPowerProfilesPowerProfilesClass AstalPowerProfilesPowerProfilesClass;
typedef struct _AstalPowerProfilesPowerProfilesPrivate AstalPowerProfilesPowerProfilesPrivate;

#define ASTAL_POWER_PROFILES_TYPE_HOLD (astal_power_profiles_hold_get_type ())
typedef struct _AstalPowerProfilesHold AstalPowerProfilesHold;

#define ASTAL_POWER_PROFILES_TYPE_PROFILE (astal_power_profiles_profile_get_type ())
typedef struct _AstalPowerProfilesProfile AstalPowerProfilesProfile;

struct _AstalPowerProfilesPowerProfiles {
	GObject parent_instance;
	AstalPowerProfilesPowerProfilesPrivate * priv;
};

struct _AstalPowerProfilesPowerProfilesClass {
	GObjectClass parent_class;
};

struct _AstalPowerProfilesHold {
	gchar* application_id;
	gchar* profile;
	gchar* reason;
};

struct _AstalPowerProfilesProfile {
	gchar* profile;
	gchar* cpu_driver;
	gchar* platform_driver;
	gchar* driver;
};

VALA_EXTERN GType astal_power_profiles_power_profiles_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalPowerProfilesPowerProfiles, g_object_unref)
VALA_EXTERN AstalPowerProfilesPowerProfiles* astal_power_profiles_get_default (void);
VALA_EXTERN AstalPowerProfilesPowerProfiles* astal_power_profiles_power_profiles_get_default (void);
VALA_EXTERN gint astal_power_profiles_power_profiles_hold_profile (AstalPowerProfilesPowerProfiles* self,
                                                       const gchar* profile,
                                                       const gchar* reason,
                                                       const gchar* application_id);
VALA_EXTERN void astal_power_profiles_power_profiles_release_profile (AstalPowerProfilesPowerProfiles* self,
                                                          guint cookie);
VALA_EXTERN AstalPowerProfilesPowerProfiles* astal_power_profiles_power_profiles_new (void);
VALA_EXTERN AstalPowerProfilesPowerProfiles* astal_power_profiles_power_profiles_construct (GType object_type);
VALA_EXTERN gchar* astal_power_profiles_power_profiles_get_active_profile (AstalPowerProfilesPowerProfiles* self);
VALA_EXTERN void astal_power_profiles_power_profiles_set_active_profile (AstalPowerProfilesPowerProfiles* self,
                                                             const gchar* value);
VALA_EXTERN gchar* astal_power_profiles_power_profiles_get_icon_name (AstalPowerProfilesPowerProfiles* self);
VALA_EXTERN gchar** astal_power_profiles_power_profiles_get_actions (AstalPowerProfilesPowerProfiles* self,
                                                         gint* result_length1);
VALA_EXTERN GType astal_power_profiles_hold_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalPowerProfilesHold* astal_power_profiles_hold_dup (const AstalPowerProfilesHold* self);
VALA_EXTERN void astal_power_profiles_hold_free (AstalPowerProfilesHold* self);
VALA_EXTERN void astal_power_profiles_hold_copy (const AstalPowerProfilesHold* self,
                                     AstalPowerProfilesHold* dest);
VALA_EXTERN void astal_power_profiles_hold_destroy (AstalPowerProfilesHold* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (AstalPowerProfilesHold, astal_power_profiles_hold_destroy)
VALA_EXTERN AstalPowerProfilesHold* astal_power_profiles_power_profiles_get_active_profile_holds (AstalPowerProfilesPowerProfiles* self,
                                                                                      gint* result_length1);
VALA_EXTERN gchar* astal_power_profiles_power_profiles_get_performance_degraded (AstalPowerProfilesPowerProfiles* self);
VALA_EXTERN GType astal_power_profiles_profile_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalPowerProfilesProfile* astal_power_profiles_profile_dup (const AstalPowerProfilesProfile* self);
VALA_EXTERN void astal_power_profiles_profile_free (AstalPowerProfilesProfile* self);
VALA_EXTERN void astal_power_profiles_profile_copy (const AstalPowerProfilesProfile* self,
                                        AstalPowerProfilesProfile* dest);
VALA_EXTERN void astal_power_profiles_profile_destroy (AstalPowerProfilesProfile* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (AstalPowerProfilesProfile, astal_power_profiles_profile_destroy)
VALA_EXTERN AstalPowerProfilesProfile* astal_power_profiles_power_profiles_get_profiles (AstalPowerProfilesPowerProfiles* self,
                                                                             gint* result_length1);
VALA_EXTERN gchar* astal_power_profiles_power_profiles_get_version (AstalPowerProfilesPowerProfiles* self);

G_END_DECLS

#endif
