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

#ifndef __ASTAL_BATTERY_H__
#define __ASTAL_BATTERY_H__

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

G_BEGIN_DECLS

#define ASTAL_BATTERY_MAJOR_VERSION 0
#define ASTAL_BATTERY_MINOR_VERSION 1
#define ASTAL_BATTERY_MICRO_VERSION 0
#define ASTAL_BATTERY_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_BATTERY_TYPE_DEVICE (astal_battery_device_get_type ())
#define ASTAL_BATTERY_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_BATTERY_TYPE_DEVICE, AstalBatteryDevice))
#define ASTAL_BATTERY_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_BATTERY_TYPE_DEVICE, AstalBatteryDeviceClass))
#define ASTAL_BATTERY_IS_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_BATTERY_TYPE_DEVICE))
#define ASTAL_BATTERY_IS_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_BATTERY_TYPE_DEVICE))
#define ASTAL_BATTERY_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_BATTERY_TYPE_DEVICE, AstalBatteryDeviceClass))

typedef struct _AstalBatteryDevice AstalBatteryDevice;
typedef struct _AstalBatteryDeviceClass AstalBatteryDeviceClass;
typedef struct _AstalBatteryDevicePrivate AstalBatteryDevicePrivate;
typedef enum  {
	ASTAL_BATTERY_TYPE_UNKNOWN,
	ASTAL_BATTERY_TYPE_LINE_POWER,
	ASTAL_BATTERY_TYPE_BATTERY,
	ASTAL_BATTERY_TYPE_UPS,
	ASTAL_BATTERY_TYPE_MONITOR,
	ASTAL_BATTERY_TYPE_MOUSE,
	ASTAL_BATTERY_TYPE_KEYBOARD,
	ASTAL_BATTERY_TYPE_PDA,
	ASTAL_BATTERY_TYPE_PHONE,
	ASTAL_BATTERY_TYPE_MEDIA_PLAYER,
	ASTAL_BATTERY_TYPE_TABLET,
	ASTAL_BATTERY_TYPE_COMPUTER,
	ASTAL_BATTERY_TYPE_GAMING_INPUT,
	ASTAL_BATTERY_TYPE_PEN,
	ASTAL_BATTERY_TYPE_TOUCHPAD,
	ASTAL_BATTERY_TYPE_MODEM,
	ASTAL_BATTERY_TYPE_NETWORK,
	ASTAL_BATTERY_TYPE_HEADSET,
	ASTAL_BATTERY_TYPE_SPEAKERS,
	ASTAL_BATTERY_TYPE_HEADPHONES,
	ASTAL_BATTERY_TYPE_VIDEO,
	ASTAL_BATTERY_TYPE_OTHER_AUDIO,
	ASTAL_BATTERY_TYPE_REMOVE_CONTROL,
	ASTAL_BATTERY_TYPE_PRINTER,
	ASTAL_BATTERY_TYPE_SCANNER,
	ASTAL_BATTERY_TYPE_CAMERA,
	ASTAL_BATTERY_TYPE_WEARABLE,
	ASTAL_BATTERY_TYPE_TOY,
	ASTAL_BATTERY_TYPE_BLUETOOTH_GENERIC
} AstalBatteryType;

#define ASTAL_BATTERY_TYPE_TYPE (astal_battery_type_get_type ())
typedef enum  {
	ASTAL_BATTERY_STATE_UNKNOWN,
	ASTAL_BATTERY_STATE_CHARGING,
	ASTAL_BATTERY_STATE_DISCHARGING,
	ASTAL_BATTERY_STATE_EMPTY,
	ASTAL_BATTERY_STATE_FULLY_CHARGED,
	ASTAL_BATTERY_STATE_PENDING_CHARGE,
	ASTAL_BATTERY_STATE_PENDING_DISCHARGE
} AstalBatteryState;

#define ASTAL_BATTERY_TYPE_STATE (astal_battery_state_get_type ())
typedef enum  {
	ASTAL_BATTERY_TECHNOLOGY_UNKNOWN,
	ASTAL_BATTERY_TECHNOLOGY_LITHIUM_ION,
	ASTAL_BATTERY_TECHNOLOGY_LITHIUM_POLYMER,
	ASTAL_BATTERY_TECHNOLOGY_LITHIUM_IRON_PHOSPHATE,
	ASTAL_BATTERY_TECHNOLOGY_LEAD_ACID,
	ASTAL_BATTERY_TECHNOLOGY_NICKEL_CADMIUM,
	ASTAL_BATTERY_TECHNOLOGY_NICKEL_METAL_HYDRIDE
} AstalBatteryTechnology;

#define ASTAL_BATTERY_TYPE_TECHNOLOGY (astal_battery_technology_get_type ())
typedef enum  {
	ASTAL_BATTERY_WARNING_LEVEL_UNKNOWN,
	ASTAL_BATTERY_WARNING_LEVEL_NONE,
	ASTAL_BATTERY_WARNING_LEVEL_DISCHARGING,
	ASTAL_BATTERY_WARNING_LEVEL_LOW,
	ASTAL_BATTERY_WARNING_LEVEL_CRITICIAL,
	ASTAL_BATTERY_WARNING_LEVEL_ACTION
} AstalBatteryWarningLevel;

#define ASTAL_BATTERY_TYPE_WARNING_LEVEL (astal_battery_warning_level_get_type ())
typedef enum  {
	ASTAL_BATTERY_BATTERY_LEVEL_UNKNOWN,
	ASTAL_BATTERY_BATTERY_LEVEL_NONE,
	ASTAL_BATTERY_BATTERY_LEVEL_LOW,
	ASTAL_BATTERY_BATTERY_LEVEL_CRITICIAL,
	ASTAL_BATTERY_BATTERY_LEVEL_NORMAL,
	ASTAL_BATTERY_BATTERY_LEVEL_HIGH,
	ASTAL_BATTERY_BATTERY_LEVEL_FULL
} AstalBatteryBatteryLevel;

#define ASTAL_BATTERY_TYPE_BATTERY_LEVEL (astal_battery_battery_level_get_type ())

#define ASTAL_BATTERY_TYPE_UPOWER (astal_battery_upower_get_type ())
#define ASTAL_BATTERY_UPOWER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_BATTERY_TYPE_UPOWER, AstalBatteryUPower))
#define ASTAL_BATTERY_UPOWER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_BATTERY_TYPE_UPOWER, AstalBatteryUPowerClass))
#define ASTAL_BATTERY_IS_UPOWER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_BATTERY_TYPE_UPOWER))
#define ASTAL_BATTERY_IS_UPOWER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_BATTERY_TYPE_UPOWER))
#define ASTAL_BATTERY_UPOWER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_BATTERY_TYPE_UPOWER, AstalBatteryUPowerClass))

typedef struct _AstalBatteryUPower AstalBatteryUPower;
typedef struct _AstalBatteryUPowerClass AstalBatteryUPowerClass;
typedef struct _AstalBatteryUPowerPrivate AstalBatteryUPowerPrivate;

struct _AstalBatteryDevice {
	GObject parent_instance;
	AstalBatteryDevicePrivate * priv;
};

struct _AstalBatteryDeviceClass {
	GObjectClass parent_class;
};

struct _AstalBatteryUPower {
	GObject parent_instance;
	AstalBatteryUPowerPrivate * priv;
};

struct _AstalBatteryUPowerClass {
	GObjectClass parent_class;
};

VALA_EXTERN GType astal_battery_device_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalBatteryDevice, g_object_unref)
VALA_EXTERN AstalBatteryDevice* astal_battery_get_default (void);
VALA_EXTERN AstalBatteryDevice* astal_battery_device_get_default (void);
VALA_EXTERN AstalBatteryDevice* astal_battery_device_new (const char* path,
                                              GError** error);
VALA_EXTERN AstalBatteryDevice* astal_battery_device_construct (GType object_type,
                                                    const char* path,
                                                    GError** error);
VALA_EXTERN GType astal_battery_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalBatteryType astal_battery_device_get_device_type (AstalBatteryDevice* self);
VALA_EXTERN gchar* astal_battery_device_get_native_path (AstalBatteryDevice* self);
VALA_EXTERN gchar* astal_battery_device_get_vendor (AstalBatteryDevice* self);
VALA_EXTERN gchar* astal_battery_device_get_model (AstalBatteryDevice* self);
VALA_EXTERN gchar* astal_battery_device_get_serial (AstalBatteryDevice* self);
VALA_EXTERN guint64 astal_battery_device_get_update_time (AstalBatteryDevice* self);
VALA_EXTERN gboolean astal_battery_device_get_power_supply (AstalBatteryDevice* self);
VALA_EXTERN gboolean astal_battery_device_get_online (AstalBatteryDevice* self);
VALA_EXTERN gdouble astal_battery_device_get_energy (AstalBatteryDevice* self);
VALA_EXTERN gdouble astal_battery_device_get_energy_empty (AstalBatteryDevice* self);
VALA_EXTERN gdouble astal_battery_device_get_energy_full (AstalBatteryDevice* self);
VALA_EXTERN gdouble astal_battery_device_get_energy_full_design (AstalBatteryDevice* self);
VALA_EXTERN gdouble astal_battery_device_get_energy_rate (AstalBatteryDevice* self);
VALA_EXTERN gdouble astal_battery_device_get_voltage (AstalBatteryDevice* self);
VALA_EXTERN gint astal_battery_device_get_charge_cycles (AstalBatteryDevice* self);
VALA_EXTERN gdouble astal_battery_device_get_luminosity (AstalBatteryDevice* self);
VALA_EXTERN gint64 astal_battery_device_get_time_to_empty (AstalBatteryDevice* self);
VALA_EXTERN gint64 astal_battery_device_get_time_to_full (AstalBatteryDevice* self);
VALA_EXTERN gdouble astal_battery_device_get_percentage (AstalBatteryDevice* self);
VALA_EXTERN gdouble astal_battery_device_get_temperature (AstalBatteryDevice* self);
VALA_EXTERN gboolean astal_battery_device_get_is_present (AstalBatteryDevice* self);
VALA_EXTERN GType astal_battery_state_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalBatteryState astal_battery_device_get_state (AstalBatteryDevice* self);
VALA_EXTERN gboolean astal_battery_device_get_is_rechargable (AstalBatteryDevice* self);
VALA_EXTERN gdouble astal_battery_device_get_capacity (AstalBatteryDevice* self);
VALA_EXTERN GType astal_battery_technology_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalBatteryTechnology astal_battery_device_get_technology (AstalBatteryDevice* self);
VALA_EXTERN GType astal_battery_warning_level_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalBatteryWarningLevel astal_battery_device_get_warning_level (AstalBatteryDevice* self);
VALA_EXTERN GType astal_battery_battery_level_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalBatteryBatteryLevel astal_battery_device_get_battery_level (AstalBatteryDevice* self);
VALA_EXTERN gchar* astal_battery_device_get_icon_name (AstalBatteryDevice* self);
VALA_EXTERN gboolean astal_battery_device_get_charging (AstalBatteryDevice* self);
VALA_EXTERN gboolean astal_battery_device_get_is_battery (AstalBatteryDevice* self);
VALA_EXTERN const gchar* astal_battery_device_get_battery_icon_name (AstalBatteryDevice* self);
VALA_EXTERN const gchar* astal_battery_device_get_device_type_name (AstalBatteryDevice* self);
VALA_EXTERN const gchar* astal_battery_device_get_device_type_icon (AstalBatteryDevice* self);
VALA_EXTERN GType astal_battery_upower_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalBatteryUPower, g_object_unref)
VALA_EXTERN AstalBatteryUPower* astal_battery_upower_new (void);
VALA_EXTERN AstalBatteryUPower* astal_battery_upower_construct (GType object_type);
VALA_EXTERN GList* astal_battery_upower_get_devices (AstalBatteryUPower* self);
VALA_EXTERN AstalBatteryDevice* astal_battery_upower_get_display_device (AstalBatteryUPower* self);
VALA_EXTERN gchar* astal_battery_upower_get_daemon_version (AstalBatteryUPower* self);
VALA_EXTERN gboolean astal_battery_upower_get_on_battery (AstalBatteryUPower* self);
VALA_EXTERN gboolean astal_battery_upower_get_lid_is_closed (AstalBatteryUPower* self);
VALA_EXTERN gboolean astal_battery_upower_get_lid_is_present (AstalBatteryUPower* self);
VALA_EXTERN gchar* astal_battery_upower_get_critical_action (AstalBatteryUPower* self);

G_END_DECLS

#endif
