/* fsodevice.h generated by valac 0.16.1, the Vala compiler, do not modify */


#ifndef __FSODEVICE_H__
#define __FSODEVICE_H__

#include <glib.h>
#include <fsobasics.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <alsa/asoundlib.h>
#include <gio/gio.h>
#include <freesmartphone.h>
#include <gee.h>
#include <fsoresource.h>
#include <fsoframework.h>

G_BEGIN_DECLS


#define FSO_DEVICE_TYPE_BASE_ACCELEROMETER (fso_device_base_accelerometer_get_type ())
#define FSO_DEVICE_BASE_ACCELEROMETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_BASE_ACCELEROMETER, FsoDeviceBaseAccelerometer))
#define FSO_DEVICE_BASE_ACCELEROMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DEVICE_TYPE_BASE_ACCELEROMETER, FsoDeviceBaseAccelerometerClass))
#define FSO_DEVICE_IS_BASE_ACCELEROMETER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_BASE_ACCELEROMETER))
#define FSO_DEVICE_IS_BASE_ACCELEROMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DEVICE_TYPE_BASE_ACCELEROMETER))
#define FSO_DEVICE_BASE_ACCELEROMETER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DEVICE_TYPE_BASE_ACCELEROMETER, FsoDeviceBaseAccelerometerClass))

typedef struct _FsoDeviceBaseAccelerometer FsoDeviceBaseAccelerometer;
typedef struct _FsoDeviceBaseAccelerometerClass FsoDeviceBaseAccelerometerClass;
typedef struct _FsoDeviceBaseAccelerometerPrivate FsoDeviceBaseAccelerometerPrivate;

#define FSO_DEVICE_TYPE_BUNCH_OF_MIXER_CONTROLS (fso_device_bunch_of_mixer_controls_get_type ())
#define FSO_DEVICE_BUNCH_OF_MIXER_CONTROLS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_BUNCH_OF_MIXER_CONTROLS, FsoDeviceBunchOfMixerControls))
#define FSO_DEVICE_BUNCH_OF_MIXER_CONTROLS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DEVICE_TYPE_BUNCH_OF_MIXER_CONTROLS, FsoDeviceBunchOfMixerControlsClass))
#define FSO_DEVICE_IS_BUNCH_OF_MIXER_CONTROLS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_BUNCH_OF_MIXER_CONTROLS))
#define FSO_DEVICE_IS_BUNCH_OF_MIXER_CONTROLS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DEVICE_TYPE_BUNCH_OF_MIXER_CONTROLS))
#define FSO_DEVICE_BUNCH_OF_MIXER_CONTROLS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DEVICE_TYPE_BUNCH_OF_MIXER_CONTROLS, FsoDeviceBunchOfMixerControlsClass))

typedef struct _FsoDeviceBunchOfMixerControls FsoDeviceBunchOfMixerControls;
typedef struct _FsoDeviceBunchOfMixerControlsClass FsoDeviceBunchOfMixerControlsClass;
typedef struct _FsoDeviceBunchOfMixerControlsPrivate FsoDeviceBunchOfMixerControlsPrivate;

#define FSO_DEVICE_TYPE_MIXER_CONTROL (fso_device_mixer_control_get_type ())
#define FSO_DEVICE_MIXER_CONTROL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_MIXER_CONTROL, FsoDeviceMixerControl))
#define FSO_DEVICE_MIXER_CONTROL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DEVICE_TYPE_MIXER_CONTROL, FsoDeviceMixerControlClass))
#define FSO_DEVICE_IS_MIXER_CONTROL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_MIXER_CONTROL))
#define FSO_DEVICE_IS_MIXER_CONTROL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DEVICE_TYPE_MIXER_CONTROL))
#define FSO_DEVICE_MIXER_CONTROL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DEVICE_TYPE_MIXER_CONTROL, FsoDeviceMixerControlClass))

typedef struct _FsoDeviceMixerControl FsoDeviceMixerControl;
typedef struct _FsoDeviceMixerControlClass FsoDeviceMixerControlClass;

#define FSO_DEVICE_TYPE_SOUND_DEVICE (fso_device_sound_device_get_type ())
#define FSO_DEVICE_SOUND_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_SOUND_DEVICE, FsoDeviceSoundDevice))
#define FSO_DEVICE_SOUND_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DEVICE_TYPE_SOUND_DEVICE, FsoDeviceSoundDeviceClass))
#define FSO_DEVICE_IS_SOUND_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_SOUND_DEVICE))
#define FSO_DEVICE_IS_SOUND_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DEVICE_TYPE_SOUND_DEVICE))
#define FSO_DEVICE_SOUND_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DEVICE_TYPE_SOUND_DEVICE, FsoDeviceSoundDeviceClass))

typedef struct _FsoDeviceSoundDevice FsoDeviceSoundDevice;
typedef struct _FsoDeviceSoundDeviceClass FsoDeviceSoundDeviceClass;
typedef struct _FsoDeviceSoundDevicePrivate FsoDeviceSoundDevicePrivate;
typedef struct _FsoDeviceMixerControlPrivate FsoDeviceMixerControlPrivate;

#define FSO_DEVICE_TYPE_AUDIO_PLAYER (fso_device_audio_player_get_type ())
#define FSO_DEVICE_AUDIO_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_AUDIO_PLAYER, FsoDeviceAudioPlayer))
#define FSO_DEVICE_IS_AUDIO_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_AUDIO_PLAYER))
#define FSO_DEVICE_AUDIO_PLAYER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_DEVICE_TYPE_AUDIO_PLAYER, FsoDeviceAudioPlayerIface))

typedef struct _FsoDeviceAudioPlayer FsoDeviceAudioPlayer;
typedef struct _FsoDeviceAudioPlayerIface FsoDeviceAudioPlayerIface;

#define FSO_DEVICE_TYPE_NULL_PLAYER (fso_device_null_player_get_type ())
#define FSO_DEVICE_NULL_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_NULL_PLAYER, FsoDeviceNullPlayer))
#define FSO_DEVICE_NULL_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DEVICE_TYPE_NULL_PLAYER, FsoDeviceNullPlayerClass))
#define FSO_DEVICE_IS_NULL_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_NULL_PLAYER))
#define FSO_DEVICE_IS_NULL_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DEVICE_TYPE_NULL_PLAYER))
#define FSO_DEVICE_NULL_PLAYER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DEVICE_TYPE_NULL_PLAYER, FsoDeviceNullPlayerClass))

typedef struct _FsoDeviceNullPlayer FsoDeviceNullPlayer;
typedef struct _FsoDeviceNullPlayerClass FsoDeviceNullPlayerClass;
typedef struct _FsoDeviceNullPlayerPrivate FsoDeviceNullPlayerPrivate;

#define FSO_DEVICE_TYPE_PLAYING_SOUND (fso_device_playing_sound_get_type ())
#define FSO_DEVICE_PLAYING_SOUND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_PLAYING_SOUND, FsoDevicePlayingSound))
#define FSO_DEVICE_PLAYING_SOUND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DEVICE_TYPE_PLAYING_SOUND, FsoDevicePlayingSoundClass))
#define FSO_DEVICE_IS_PLAYING_SOUND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_PLAYING_SOUND))
#define FSO_DEVICE_IS_PLAYING_SOUND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DEVICE_TYPE_PLAYING_SOUND))
#define FSO_DEVICE_PLAYING_SOUND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DEVICE_TYPE_PLAYING_SOUND, FsoDevicePlayingSoundClass))

typedef struct _FsoDevicePlayingSound FsoDevicePlayingSound;
typedef struct _FsoDevicePlayingSoundClass FsoDevicePlayingSoundClass;
typedef struct _FsoDevicePlayingSoundPrivate FsoDevicePlayingSoundPrivate;

#define FSO_DEVICE_TYPE_BASE_AUDIO_PLAYER (fso_device_base_audio_player_get_type ())
#define FSO_DEVICE_BASE_AUDIO_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_BASE_AUDIO_PLAYER, FsoDeviceBaseAudioPlayer))
#define FSO_DEVICE_BASE_AUDIO_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DEVICE_TYPE_BASE_AUDIO_PLAYER, FsoDeviceBaseAudioPlayerClass))
#define FSO_DEVICE_IS_BASE_AUDIO_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_BASE_AUDIO_PLAYER))
#define FSO_DEVICE_IS_BASE_AUDIO_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DEVICE_TYPE_BASE_AUDIO_PLAYER))
#define FSO_DEVICE_BASE_AUDIO_PLAYER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DEVICE_TYPE_BASE_AUDIO_PLAYER, FsoDeviceBaseAudioPlayerClass))

typedef struct _FsoDeviceBaseAudioPlayer FsoDeviceBaseAudioPlayer;
typedef struct _FsoDeviceBaseAudioPlayerClass FsoDeviceBaseAudioPlayerClass;
typedef struct _FsoDeviceBaseAudioPlayerPrivate FsoDeviceBaseAudioPlayerPrivate;

#define FSO_DEVICE_TYPE_AUDIO_ROUTER (fso_device_audio_router_get_type ())
#define FSO_DEVICE_AUDIO_ROUTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_AUDIO_ROUTER, FsoDeviceAudioRouter))
#define FSO_DEVICE_IS_AUDIO_ROUTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_AUDIO_ROUTER))
#define FSO_DEVICE_AUDIO_ROUTER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_DEVICE_TYPE_AUDIO_ROUTER, FsoDeviceAudioRouterIface))

typedef struct _FsoDeviceAudioRouter FsoDeviceAudioRouter;
typedef struct _FsoDeviceAudioRouterIface FsoDeviceAudioRouterIface;

#define FSO_DEVICE_TYPE_NULL_ROUTER (fso_device_null_router_get_type ())
#define FSO_DEVICE_NULL_ROUTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_NULL_ROUTER, FsoDeviceNullRouter))
#define FSO_DEVICE_NULL_ROUTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DEVICE_TYPE_NULL_ROUTER, FsoDeviceNullRouterClass))
#define FSO_DEVICE_IS_NULL_ROUTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_NULL_ROUTER))
#define FSO_DEVICE_IS_NULL_ROUTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DEVICE_TYPE_NULL_ROUTER))
#define FSO_DEVICE_NULL_ROUTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DEVICE_TYPE_NULL_ROUTER, FsoDeviceNullRouterClass))

typedef struct _FsoDeviceNullRouter FsoDeviceNullRouter;
typedef struct _FsoDeviceNullRouterClass FsoDeviceNullRouterClass;
typedef struct _FsoDeviceNullRouterPrivate FsoDeviceNullRouterPrivate;

#define FSO_DEVICE_TYPE_BASE_AUDIO_ROUTER (fso_device_base_audio_router_get_type ())
#define FSO_DEVICE_BASE_AUDIO_ROUTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_BASE_AUDIO_ROUTER, FsoDeviceBaseAudioRouter))
#define FSO_DEVICE_BASE_AUDIO_ROUTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DEVICE_TYPE_BASE_AUDIO_ROUTER, FsoDeviceBaseAudioRouterClass))
#define FSO_DEVICE_IS_BASE_AUDIO_ROUTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_BASE_AUDIO_ROUTER))
#define FSO_DEVICE_IS_BASE_AUDIO_ROUTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DEVICE_TYPE_BASE_AUDIO_ROUTER))
#define FSO_DEVICE_BASE_AUDIO_ROUTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DEVICE_TYPE_BASE_AUDIO_ROUTER, FsoDeviceBaseAudioRouterClass))

typedef struct _FsoDeviceBaseAudioRouter FsoDeviceBaseAudioRouter;
typedef struct _FsoDeviceBaseAudioRouterClass FsoDeviceBaseAudioRouterClass;
typedef struct _FsoDeviceBaseAudioRouterPrivate FsoDeviceBaseAudioRouterPrivate;

#define FSO_DEVICE_TYPE_SIGNALLING_INPUT_DEVICE (fso_device_signalling_input_device_get_type ())
#define FSO_DEVICE_SIGNALLING_INPUT_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_SIGNALLING_INPUT_DEVICE, FsoDeviceSignallingInputDevice))
#define FSO_DEVICE_IS_SIGNALLING_INPUT_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_SIGNALLING_INPUT_DEVICE))
#define FSO_DEVICE_SIGNALLING_INPUT_DEVICE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_DEVICE_TYPE_SIGNALLING_INPUT_DEVICE, FsoDeviceSignallingInputDeviceIface))

typedef struct _FsoDeviceSignallingInputDevice FsoDeviceSignallingInputDevice;
typedef struct _FsoDeviceSignallingInputDeviceIface FsoDeviceSignallingInputDeviceIface;

#define FSO_DEVICE_TYPE_ISIMPLE_POWER_CONTROL (fso_device_isimple_power_control_get_type ())
#define FSO_DEVICE_ISIMPLE_POWER_CONTROL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_ISIMPLE_POWER_CONTROL, FsoDeviceISimplePowerControl))
#define FSO_DEVICE_IS_ISIMPLE_POWER_CONTROL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_ISIMPLE_POWER_CONTROL))
#define FSO_DEVICE_ISIMPLE_POWER_CONTROL_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_DEVICE_TYPE_ISIMPLE_POWER_CONTROL, FsoDeviceISimplePowerControlIface))

typedef struct _FsoDeviceISimplePowerControl FsoDeviceISimplePowerControl;
typedef struct _FsoDeviceISimplePowerControlIface FsoDeviceISimplePowerControlIface;

#define FSO_DEVICE_TYPE_BASE_POWER_CONTROL (fso_device_base_power_control_get_type ())
#define FSO_DEVICE_BASE_POWER_CONTROL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_BASE_POWER_CONTROL, FsoDeviceBasePowerControl))
#define FSO_DEVICE_BASE_POWER_CONTROL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DEVICE_TYPE_BASE_POWER_CONTROL, FsoDeviceBasePowerControlClass))
#define FSO_DEVICE_IS_BASE_POWER_CONTROL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_BASE_POWER_CONTROL))
#define FSO_DEVICE_IS_BASE_POWER_CONTROL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DEVICE_TYPE_BASE_POWER_CONTROL))
#define FSO_DEVICE_BASE_POWER_CONTROL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DEVICE_TYPE_BASE_POWER_CONTROL, FsoDeviceBasePowerControlClass))

typedef struct _FsoDeviceBasePowerControl FsoDeviceBasePowerControl;
typedef struct _FsoDeviceBasePowerControlClass FsoDeviceBasePowerControlClass;
typedef struct _FsoDeviceBasePowerControlPrivate FsoDeviceBasePowerControlPrivate;

#define FSO_DEVICE_TYPE_BASE_POWER_CONTROL_RESOURCE (fso_device_base_power_control_resource_get_type ())
#define FSO_DEVICE_BASE_POWER_CONTROL_RESOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DEVICE_TYPE_BASE_POWER_CONTROL_RESOURCE, FsoDeviceBasePowerControlResource))
#define FSO_DEVICE_BASE_POWER_CONTROL_RESOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DEVICE_TYPE_BASE_POWER_CONTROL_RESOURCE, FsoDeviceBasePowerControlResourceClass))
#define FSO_DEVICE_IS_BASE_POWER_CONTROL_RESOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DEVICE_TYPE_BASE_POWER_CONTROL_RESOURCE))
#define FSO_DEVICE_IS_BASE_POWER_CONTROL_RESOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DEVICE_TYPE_BASE_POWER_CONTROL_RESOURCE))
#define FSO_DEVICE_BASE_POWER_CONTROL_RESOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DEVICE_TYPE_BASE_POWER_CONTROL_RESOURCE, FsoDeviceBasePowerControlResourceClass))

typedef struct _FsoDeviceBasePowerControlResource FsoDeviceBasePowerControlResource;
typedef struct _FsoDeviceBasePowerControlResourceClass FsoDeviceBasePowerControlResourceClass;
typedef struct _FsoDeviceBasePowerControlResourcePrivate FsoDeviceBasePowerControlResourcePrivate;

struct _FsoDeviceBaseAccelerometer {
	FsoFrameworkAbstractObject parent_instance;
	FsoDeviceBaseAccelerometerPrivate * priv;
};

struct _FsoDeviceBaseAccelerometerClass {
	FsoFrameworkAbstractObjectClass parent_class;
	void (*start) (FsoDeviceBaseAccelerometer* self);
	void (*stop) (FsoDeviceBaseAccelerometer* self);
};

typedef enum  {
	FSO_DEVICE_SOUND_ERROR_NO_DEVICE,
	FSO_DEVICE_SOUND_ERROR_DEVICE_ERROR,
	FSO_DEVICE_SOUND_ERROR_NOT_ENOUGH_CONTROLS,
	FSO_DEVICE_SOUND_ERROR_INVALID_DESCRIPTOR
} FsoDeviceSoundError;
#define FSO_DEVICE_SOUND_ERROR fso_device_sound_error_quark ()
struct _FsoDeviceBunchOfMixerControls {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FsoDeviceBunchOfMixerControlsPrivate * priv;
	FsoDeviceMixerControl** controls;
	gint controls_length1;
	guint idxMainVolume;
};

struct _FsoDeviceBunchOfMixerControlsClass {
	GTypeClass parent_class;
	void (*finalize) (FsoDeviceBunchOfMixerControls *self);
};

struct _FsoDeviceSoundDevice {
	FsoFrameworkAbstractObject parent_instance;
	FsoDeviceSoundDevicePrivate * priv;
	gchar* name;
	gchar* fullname;
	gchar* mixername;
	gchar* cardname;
};

struct _FsoDeviceSoundDeviceClass {
	FsoFrameworkAbstractObjectClass parent_class;
};

struct _FsoDeviceMixerControl {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FsoDeviceMixerControlPrivate * priv;
	snd_ctl_elem_id_t* eid;
	snd_ctl_elem_info_t* info;
	snd_ctl_elem_value_t* value;
};

struct _FsoDeviceMixerControlClass {
	GTypeClass parent_class;
	void (*finalize) (FsoDeviceMixerControl *self);
};

struct _FsoDeviceAudioPlayerIface {
	GTypeInterface parent_iface;
	gchar** (*supportedFormats) (FsoDeviceAudioPlayer* self, int* result_length1);
	void (*play_sound) (FsoDeviceAudioPlayer* self, const gchar* name, gint loop, gint length, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*play_sound_finish) (FsoDeviceAudioPlayer* self, GAsyncResult* _res_, GError** error);
	void (*stop_sound) (FsoDeviceAudioPlayer* self, const gchar* name, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*stop_sound_finish) (FsoDeviceAudioPlayer* self, GAsyncResult* _res_, GError** error);
	void (*stop_all_sounds) (FsoDeviceAudioPlayer* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*stop_all_sounds_finish) (FsoDeviceAudioPlayer* self, GAsyncResult* _res_);
};

struct _FsoDeviceNullPlayer {
	GObject parent_instance;
	FsoDeviceNullPlayerPrivate * priv;
};

struct _FsoDeviceNullPlayerClass {
	GObjectClass parent_class;
};

struct _FsoDevicePlayingSound {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FsoDevicePlayingSoundPrivate * priv;
	gchar* name;
	gint loop;
	gint length;
	gboolean finished;
	guint32 data;
	guint watch;
};

struct _FsoDevicePlayingSoundClass {
	GTypeClass parent_class;
	void (*finalize) (FsoDevicePlayingSound *self);
};

struct _FsoDeviceBaseAudioPlayer {
	GObject parent_instance;
	FsoDeviceBaseAudioPlayerPrivate * priv;
	GeeHashMap* sounds;
};

struct _FsoDeviceBaseAudioPlayerClass {
	GObjectClass parent_class;
	gchar** (*supportedFormats) (FsoDeviceBaseAudioPlayer* self, int* result_length1);
	void (*play_sound) (FsoDeviceBaseAudioPlayer* self, const gchar* name, gint loop, gint length, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*play_sound_finish) (FsoDeviceBaseAudioPlayer* self, GAsyncResult* _res_, GError** error);
	void (*stop_sound) (FsoDeviceBaseAudioPlayer* self, const gchar* name, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*stop_sound_finish) (FsoDeviceBaseAudioPlayer* self, GAsyncResult* _res_, GError** error);
	void (*stop_all_sounds) (FsoDeviceBaseAudioPlayer* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*stop_all_sounds_finish) (FsoDeviceBaseAudioPlayer* self, GAsyncResult* _res_);
};

struct _FsoDeviceAudioRouterIface {
	GTypeInterface parent_iface;
	gboolean (*isScenarioAvailable) (FsoDeviceAudioRouter* self, const gchar* scenario);
	gchar** (*availableScenarios) (FsoDeviceAudioRouter* self, int* result_length1);
	gchar* (*currentScenario) (FsoDeviceAudioRouter* self);
	gchar* (*pullScenario) (FsoDeviceAudioRouter* self, GError** error);
	void (*pushScenario) (FsoDeviceAudioRouter* self, const gchar* scenario);
	void (*setScenario) (FsoDeviceAudioRouter* self, const gchar* scenario);
	void (*saveScenario) (FsoDeviceAudioRouter* self, const gchar* scenario, GError** error);
	guint8 (*currentVolume) (FsoDeviceAudioRouter* self, GError** error);
	void (*setVolume) (FsoDeviceAudioRouter* self, guint8 volume, GError** error);
};

struct _FsoDeviceNullRouter {
	GObject parent_instance;
	FsoDeviceNullRouterPrivate * priv;
};

struct _FsoDeviceNullRouterClass {
	GObjectClass parent_class;
};

struct _FsoDeviceBaseAudioRouter {
	FsoFrameworkAbstractObject parent_instance;
	FsoDeviceBaseAudioRouterPrivate * priv;
};

struct _FsoDeviceBaseAudioRouterClass {
	FsoFrameworkAbstractObjectClass parent_class;
	gboolean (*isScenarioAvailable) (FsoDeviceBaseAudioRouter* self, const gchar* scenario);
	gchar** (*availableScenarios) (FsoDeviceBaseAudioRouter* self, int* result_length1);
	gchar* (*currentScenario) (FsoDeviceBaseAudioRouter* self);
	gchar* (*pullScenario) (FsoDeviceBaseAudioRouter* self, GError** error);
	void (*pushScenario) (FsoDeviceBaseAudioRouter* self, const gchar* scenario);
	void (*setScenario) (FsoDeviceBaseAudioRouter* self, const gchar* scenario);
	void (*saveScenario) (FsoDeviceBaseAudioRouter* self, const gchar* scenario, GError** error);
	guint8 (*currentVolume) (FsoDeviceBaseAudioRouter* self, GError** error);
	void (*setVolume) (FsoDeviceBaseAudioRouter* self, guint8 volume, GError** error);
};

struct _FsoDeviceSignallingInputDeviceIface {
	GTypeInterface parent_iface;
};

struct _FsoDeviceISimplePowerControlIface {
	GTypeInterface parent_iface;
	gboolean (*getPower) (FsoDeviceISimplePowerControl* self);
	void (*setPower) (FsoDeviceISimplePowerControl* self, gboolean on);
};

struct _FsoDeviceBasePowerControl {
	FsoFrameworkAbstractObject parent_instance;
	FsoDeviceBasePowerControlPrivate * priv;
};

struct _FsoDeviceBasePowerControlClass {
	FsoFrameworkAbstractObjectClass parent_class;
	gboolean (*getPower) (FsoDeviceBasePowerControl* self);
	void (*setPower) (FsoDeviceBasePowerControl* self, gboolean on);
};

struct _FsoDeviceBasePowerControlResource {
	FsoFrameworkAbstractDBusResource parent_instance;
	FsoDeviceBasePowerControlResourcePrivate * priv;
};

struct _FsoDeviceBasePowerControlResourceClass {
	FsoFrameworkAbstractDBusResourceClass parent_class;
};


GType fso_device_base_accelerometer_get_type (void) G_GNUC_CONST;
void fso_device_base_accelerometer_setThreshold (FsoDeviceBaseAccelerometer* self, gint mg);
void fso_device_base_accelerometer_setRate (FsoDeviceBaseAccelerometer* self, guint ms);
void fso_device_base_accelerometer_start (FsoDeviceBaseAccelerometer* self);
void fso_device_base_accelerometer_stop (FsoDeviceBaseAccelerometer* self);
FsoDeviceBaseAccelerometer* fso_device_base_accelerometer_construct (GType object_type);
GQuark fso_device_sound_error_quark (void);
gpointer fso_device_bunch_of_mixer_controls_ref (gpointer instance);
void fso_device_bunch_of_mixer_controls_unref (gpointer instance);
GParamSpec* fso_device_param_spec_bunch_of_mixer_controls (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_device_value_set_bunch_of_mixer_controls (GValue* value, gpointer v_object);
void fso_device_value_take_bunch_of_mixer_controls (GValue* value, gpointer v_object);
gpointer fso_device_value_get_bunch_of_mixer_controls (const GValue* value);
GType fso_device_bunch_of_mixer_controls_get_type (void) G_GNUC_CONST;
gpointer fso_device_mixer_control_ref (gpointer instance);
void fso_device_mixer_control_unref (gpointer instance);
GParamSpec* fso_device_param_spec_mixer_control (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_device_value_set_mixer_control (GValue* value, gpointer v_object);
void fso_device_value_take_mixer_control (GValue* value, gpointer v_object);
gpointer fso_device_value_get_mixer_control (const GValue* value);
GType fso_device_mixer_control_get_type (void) G_GNUC_CONST;
FsoDeviceBunchOfMixerControls* fso_device_bunch_of_mixer_controls_new (FsoDeviceMixerControl** controls, int controls_length1, guint idxMainVolume);
FsoDeviceBunchOfMixerControls* fso_device_bunch_of_mixer_controls_construct (GType object_type, FsoDeviceMixerControl** controls, int controls_length1, guint idxMainVolume);
gchar* fso_device_bunch_of_mixer_controls_to_string (FsoDeviceBunchOfMixerControls* self);
GType fso_device_sound_device_get_type (void) G_GNUC_CONST;
FsoDeviceSoundDevice* fso_device_sound_device_create (const gchar* cardname, GError** error);
FsoDeviceMixerControl* fso_device_sound_device_controlForId (FsoDeviceSoundDevice* self, guint idx, GError** error);
void fso_device_sound_device_setControl (FsoDeviceSoundDevice* self, FsoDeviceMixerControl* control, GError** error);
FsoDeviceMixerControl** fso_device_sound_device_allMixerControls (FsoDeviceSoundDevice* self, int* result_length1, GError** error);
void fso_device_sound_device_setAllMixerControls (FsoDeviceSoundDevice* self, FsoDeviceMixerControl** controls, int controls_length1, GError** error);
FsoDeviceMixerControl* fso_device_sound_device_controlForString (FsoDeviceSoundDevice* self, const gchar* description, GError** error);
guint8 fso_device_sound_device_volumeForIndex (FsoDeviceSoundDevice* self, guint id);
void fso_device_sound_device_setVolumeForIndex (FsoDeviceSoundDevice* self, guint id, guint8 val);
FsoDeviceMixerControl* fso_device_mixer_control_new (snd_ctl_elem_id_t** eid, snd_ctl_elem_info_t** info, snd_ctl_elem_value_t** value);
FsoDeviceMixerControl* fso_device_mixer_control_construct (GType object_type, snd_ctl_elem_id_t** eid, snd_ctl_elem_info_t** info, snd_ctl_elem_value_t** value);
gchar* fso_device_mixer_control_to_string (FsoDeviceMixerControl* self);
guint fso_device_mixer_control_get_volume (FsoDeviceMixerControl* self);
void fso_device_mixer_control_set_volume (FsoDeviceMixerControl* self, guint value);
GType fso_device_audio_player_get_type (void) G_GNUC_CONST;
gchar** fso_device_audio_player_supportedFormats (FsoDeviceAudioPlayer* self, int* result_length1);
void fso_device_audio_player_play_sound (FsoDeviceAudioPlayer* self, const gchar* name, gint loop, gint length, GAsyncReadyCallback _callback_, gpointer _user_data_);
void fso_device_audio_player_play_sound_finish (FsoDeviceAudioPlayer* self, GAsyncResult* _res_, GError** error);
void fso_device_audio_player_stop_sound (FsoDeviceAudioPlayer* self, const gchar* name, GAsyncReadyCallback _callback_, gpointer _user_data_);
void fso_device_audio_player_stop_sound_finish (FsoDeviceAudioPlayer* self, GAsyncResult* _res_, GError** error);
void fso_device_audio_player_stop_all_sounds (FsoDeviceAudioPlayer* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
void fso_device_audio_player_stop_all_sounds_finish (FsoDeviceAudioPlayer* self, GAsyncResult* _res_);
GType fso_device_null_player_get_type (void) G_GNUC_CONST;
FsoDeviceNullPlayer* fso_device_null_player_new (void);
FsoDeviceNullPlayer* fso_device_null_player_construct (GType object_type);
gpointer fso_device_playing_sound_ref (gpointer instance);
void fso_device_playing_sound_unref (gpointer instance);
GParamSpec* fso_device_param_spec_playing_sound (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_device_value_set_playing_sound (GValue* value, gpointer v_object);
void fso_device_value_take_playing_sound (GValue* value, gpointer v_object);
gpointer fso_device_value_get_playing_sound (const GValue* value);
GType fso_device_playing_sound_get_type (void) G_GNUC_CONST;
FsoDevicePlayingSound* fso_device_playing_sound_new (const gchar* name, gint loop, gint length, guint32 data);
FsoDevicePlayingSound* fso_device_playing_sound_construct (GType object_type, const gchar* name, gint loop, gint length, guint32 data);
gboolean fso_device_playing_sound_onTimeout (FsoDevicePlayingSound* self);
GType fso_device_base_audio_player_get_type (void) G_GNUC_CONST;
gchar** fso_device_base_audio_player_supportedFormats (FsoDeviceBaseAudioPlayer* self, int* result_length1);
void fso_device_base_audio_player_play_sound (FsoDeviceBaseAudioPlayer* self, const gchar* name, gint loop, gint length, GAsyncReadyCallback _callback_, gpointer _user_data_);
void fso_device_base_audio_player_play_sound_finish (FsoDeviceBaseAudioPlayer* self, GAsyncResult* _res_, GError** error);
void fso_device_base_audio_player_stop_sound (FsoDeviceBaseAudioPlayer* self, const gchar* name, GAsyncReadyCallback _callback_, gpointer _user_data_);
void fso_device_base_audio_player_stop_sound_finish (FsoDeviceBaseAudioPlayer* self, GAsyncResult* _res_, GError** error);
void fso_device_base_audio_player_stop_all_sounds (FsoDeviceBaseAudioPlayer* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
void fso_device_base_audio_player_stop_all_sounds_finish (FsoDeviceBaseAudioPlayer* self, GAsyncResult* _res_);
FsoDeviceBaseAudioPlayer* fso_device_base_audio_player_construct (GType object_type);
GType fso_device_audio_router_get_type (void) G_GNUC_CONST;
gboolean fso_device_audio_router_isScenarioAvailable (FsoDeviceAudioRouter* self, const gchar* scenario);
gchar** fso_device_audio_router_availableScenarios (FsoDeviceAudioRouter* self, int* result_length1);
gchar* fso_device_audio_router_currentScenario (FsoDeviceAudioRouter* self);
gchar* fso_device_audio_router_pullScenario (FsoDeviceAudioRouter* self, GError** error);
void fso_device_audio_router_pushScenario (FsoDeviceAudioRouter* self, const gchar* scenario);
void fso_device_audio_router_setScenario (FsoDeviceAudioRouter* self, const gchar* scenario);
void fso_device_audio_router_saveScenario (FsoDeviceAudioRouter* self, const gchar* scenario, GError** error);
guint8 fso_device_audio_router_currentVolume (FsoDeviceAudioRouter* self, GError** error);
void fso_device_audio_router_setVolume (FsoDeviceAudioRouter* self, guint8 volume, GError** error);
GType fso_device_null_router_get_type (void) G_GNUC_CONST;
FsoDeviceNullRouter* fso_device_null_router_new (void);
FsoDeviceNullRouter* fso_device_null_router_construct (GType object_type);
GType fso_device_base_audio_router_get_type (void) G_GNUC_CONST;
gboolean fso_device_base_audio_router_isScenarioAvailable (FsoDeviceBaseAudioRouter* self, const gchar* scenario);
gchar** fso_device_base_audio_router_availableScenarios (FsoDeviceBaseAudioRouter* self, int* result_length1);
gchar* fso_device_base_audio_router_currentScenario (FsoDeviceBaseAudioRouter* self);
gchar* fso_device_base_audio_router_pullScenario (FsoDeviceBaseAudioRouter* self, GError** error);
void fso_device_base_audio_router_pushScenario (FsoDeviceBaseAudioRouter* self, const gchar* scenario);
void fso_device_base_audio_router_setScenario (FsoDeviceBaseAudioRouter* self, const gchar* scenario);
void fso_device_base_audio_router_saveScenario (FsoDeviceBaseAudioRouter* self, const gchar* scenario, GError** error);
guint8 fso_device_base_audio_router_currentVolume (FsoDeviceBaseAudioRouter* self, GError** error);
void fso_device_base_audio_router_setVolume (FsoDeviceBaseAudioRouter* self, guint8 volume, GError** error);
FsoDeviceBaseAudioRouter* fso_device_base_audio_router_construct (GType object_type);
GType fso_device_signalling_input_device_get_type (void) G_GNUC_CONST;
GType fso_device_isimple_power_control_get_type (void) G_GNUC_CONST;
gboolean fso_device_isimple_power_control_getPower (FsoDeviceISimplePowerControl* self);
void fso_device_isimple_power_control_setPower (FsoDeviceISimplePowerControl* self, gboolean on);
GType fso_device_base_power_control_get_type (void) G_GNUC_CONST;
extern guint fso_device_base_power_control_counter;
FsoDeviceBasePowerControl* fso_device_base_power_control_new (const gchar* powernode, const gchar* onvalue, const gchar* offvalue, guint switchtimeout);
FsoDeviceBasePowerControl* fso_device_base_power_control_construct (GType object_type, const gchar* powernode, const gchar* onvalue, const gchar* offvalue, guint switchtimeout);
gboolean fso_device_base_power_control_getPower (FsoDeviceBasePowerControl* self);
void fso_device_base_power_control_setPower (FsoDeviceBasePowerControl* self, gboolean on);
GType fso_device_base_power_control_resource_get_type (void) G_GNUC_CONST;
FsoDeviceBasePowerControlResource* fso_device_base_power_control_resource_new (FsoDeviceISimplePowerControl* bpc, const gchar* name, FsoFrameworkSubsystem* subsystem, FreeSmartphoneUsageResourcePolicy policy);
FsoDeviceBasePowerControlResource* fso_device_base_power_control_resource_construct (GType object_type, FsoDeviceISimplePowerControl* bpc, const gchar* name, FsoFrameworkSubsystem* subsystem, FreeSmartphoneUsageResourcePolicy policy);


G_END_DECLS

#endif
