/* atdevicemediators.c generated by valac 0.14.2, the Vala compiler
 * generated from atdevicemediators.vala, do not modify */

/*
 * Copyright (C) 2009-2011 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 *
 */

#include <glib.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <freesmartphone.h>
#include <fsobasics.h>
#include <stdlib.h>
#include <string.h>
#include <fsotransport.h>
#include <gee.h>
#include <smsutil.h>
#include <conversions.h>
#include <time.h>
#include <float.h>
#include <math.h>


#define FSO_GSM_TYPE_MEDIATOR (fso_gsm_mediator_get_type ())
#define FSO_GSM_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_MEDIATOR, FsoGsmMediator))
#define FSO_GSM_IS_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_MEDIATOR))
#define FSO_GSM_MEDIATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_MEDIATOR, FsoGsmMediatorIface))

typedef struct _FsoGsmMediator FsoGsmMediator;
typedef struct _FsoGsmMediatorIface FsoGsmMediatorIface;

#define FSO_GSM_TYPE_ABSTRACT_MEDIATOR (fso_gsm_abstract_mediator_get_type ())
#define FSO_GSM_ABSTRACT_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ABSTRACT_MEDIATOR, FsoGsmAbstractMediator))
#define FSO_GSM_ABSTRACT_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_ABSTRACT_MEDIATOR, FsoGsmAbstractMediatorClass))
#define FSO_GSM_IS_ABSTRACT_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ABSTRACT_MEDIATOR))
#define FSO_GSM_IS_ABSTRACT_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_ABSTRACT_MEDIATOR))
#define FSO_GSM_ABSTRACT_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_ABSTRACT_MEDIATOR, FsoGsmAbstractMediatorClass))

typedef struct _FsoGsmAbstractMediator FsoGsmAbstractMediator;
typedef struct _FsoGsmAbstractMediatorClass FsoGsmAbstractMediatorClass;
typedef struct _FsoGsmAbstractMediatorPrivate FsoGsmAbstractMediatorPrivate;

#define FSO_GSM_TYPE_DEVICE_GET_ALARM_TIME (fso_gsm_device_get_alarm_time_get_type ())
#define FSO_GSM_DEVICE_GET_ALARM_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_GET_ALARM_TIME, FsoGsmDeviceGetAlarmTime))
#define FSO_GSM_DEVICE_GET_ALARM_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_GET_ALARM_TIME, FsoGsmDeviceGetAlarmTimeClass))
#define FSO_GSM_IS_DEVICE_GET_ALARM_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_GET_ALARM_TIME))
#define FSO_GSM_IS_DEVICE_GET_ALARM_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_GET_ALARM_TIME))
#define FSO_GSM_DEVICE_GET_ALARM_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_GET_ALARM_TIME, FsoGsmDeviceGetAlarmTimeClass))

typedef struct _FsoGsmDeviceGetAlarmTime FsoGsmDeviceGetAlarmTime;
typedef struct _FsoGsmDeviceGetAlarmTimeClass FsoGsmDeviceGetAlarmTimeClass;
typedef struct _FsoGsmDeviceGetAlarmTimePrivate FsoGsmDeviceGetAlarmTimePrivate;

#define FSO_GSM_TYPE_AT_DEVICE_GET_ALARM_TIME (fso_gsm_at_device_get_alarm_time_get_type ())
#define FSO_GSM_AT_DEVICE_GET_ALARM_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_ALARM_TIME, FsoGsmAtDeviceGetAlarmTime))
#define FSO_GSM_AT_DEVICE_GET_ALARM_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_ALARM_TIME, FsoGsmAtDeviceGetAlarmTimeClass))
#define FSO_GSM_IS_AT_DEVICE_GET_ALARM_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_ALARM_TIME))
#define FSO_GSM_IS_AT_DEVICE_GET_ALARM_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_ALARM_TIME))
#define FSO_GSM_AT_DEVICE_GET_ALARM_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_ALARM_TIME, FsoGsmAtDeviceGetAlarmTimeClass))

typedef struct _FsoGsmAtDeviceGetAlarmTime FsoGsmAtDeviceGetAlarmTime;
typedef struct _FsoGsmAtDeviceGetAlarmTimeClass FsoGsmAtDeviceGetAlarmTimeClass;
typedef struct _FsoGsmAtDeviceGetAlarmTimePrivate FsoGsmAtDeviceGetAlarmTimePrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define FSO_GSM_TYPE_MODEM (fso_gsm_modem_get_type ())
#define FSO_GSM_MODEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_MODEM, FsoGsmModem))
#define FSO_GSM_IS_MODEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_MODEM))
#define FSO_GSM_MODEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_MODEM, FsoGsmModemIface))

typedef struct _FsoGsmModem FsoGsmModem;
typedef struct _FsoGsmModemIface FsoGsmModemIface;

#define FSO_GSM_TYPE_CHANNEL (fso_gsm_channel_get_type ())
#define FSO_GSM_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CHANNEL, FsoGsmChannel))
#define FSO_GSM_IS_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CHANNEL))
#define FSO_GSM_CHANNEL_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_CHANNEL, FsoGsmChannelIface))

typedef struct _FsoGsmChannel FsoGsmChannel;
typedef struct _FsoGsmChannelIface FsoGsmChannelIface;

#define FSO_GSM_MODEM_TYPE_STATUS (fso_gsm_modem_status_get_type ())

#define FSO_GSM_MODEM_TYPE_NETWORK_STATUS (fso_gsm_modem_network_status_get_type ())

#define FSO_GSM_TYPE_AT_COMMAND_SEQUENCE (fso_gsm_at_command_sequence_get_type ())
#define FSO_GSM_AT_COMMAND_SEQUENCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE, FsoGsmAtCommandSequence))
#define FSO_GSM_AT_COMMAND_SEQUENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE, FsoGsmAtCommandSequenceClass))
#define FSO_GSM_IS_AT_COMMAND_SEQUENCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE))
#define FSO_GSM_IS_AT_COMMAND_SEQUENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE))
#define FSO_GSM_AT_COMMAND_SEQUENCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE, FsoGsmAtCommandSequenceClass))

typedef struct _FsoGsmAtCommandSequence FsoGsmAtCommandSequence;
typedef struct _FsoGsmAtCommandSequenceClass FsoGsmAtCommandSequenceClass;

#define FSO_GSM_TYPE_AT_COMMAND_QUEUE_COMMAND (fso_gsm_at_command_queue_command_get_type ())
#define FSO_GSM_AT_COMMAND_QUEUE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_COMMAND_QUEUE_COMMAND, FsoGsmAtCommandQueueCommand))
#define FSO_GSM_IS_AT_COMMAND_QUEUE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_COMMAND_QUEUE_COMMAND))
#define FSO_GSM_AT_COMMAND_QUEUE_COMMAND_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_AT_COMMAND_QUEUE_COMMAND, FsoGsmAtCommandQueueCommandIface))

typedef struct _FsoGsmAtCommandQueueCommand FsoGsmAtCommandQueueCommand;
typedef struct _FsoGsmAtCommandQueueCommandIface FsoGsmAtCommandQueueCommandIface;

#define FSO_GSM_TYPE_AT_COMMAND (fso_gsm_at_command_get_type ())
#define FSO_GSM_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_COMMAND, FsoGsmAtCommand))
#define FSO_GSM_IS_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_COMMAND))
#define FSO_GSM_AT_COMMAND_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_AT_COMMAND, FsoGsmAtCommandIface))

typedef struct _FsoGsmAtCommand FsoGsmAtCommand;
typedef struct _FsoGsmAtCommandIface FsoGsmAtCommandIface;

#define FSO_GSM_CONSTANTS_TYPE_AT_RESPONSE (fso_gsm_constants_at_response_get_type ())

#define FSO_GSM_MODEM_TYPE_DATA (fso_gsm_modem_data_get_type ())
#define FSO_GSM_MODEM_DATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_MODEM_TYPE_DATA, FsoGsmModemData))
#define FSO_GSM_MODEM_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_MODEM_TYPE_DATA, FsoGsmModemDataClass))
#define FSO_GSM_MODEM_IS_DATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_MODEM_TYPE_DATA))
#define FSO_GSM_MODEM_IS_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_MODEM_TYPE_DATA))
#define FSO_GSM_MODEM_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_MODEM_TYPE_DATA, FsoGsmModemDataClass))

typedef struct _FsoGsmModemData FsoGsmModemData;
typedef struct _FsoGsmModemDataClass FsoGsmModemDataClass;

#define FSO_GSM_TYPE_CALL_HANDLER (fso_gsm_call_handler_get_type ())
#define FSO_GSM_CALL_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CALL_HANDLER, FsoGsmCallHandler))
#define FSO_GSM_IS_CALL_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CALL_HANDLER))
#define FSO_GSM_CALL_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_CALL_HANDLER, FsoGsmCallHandlerIface))

typedef struct _FsoGsmCallHandler FsoGsmCallHandler;
typedef struct _FsoGsmCallHandlerIface FsoGsmCallHandlerIface;

#define FSO_GSM_TYPE_CALL_INFO (fso_gsm_call_info_get_type ())
#define FSO_GSM_CALL_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CALL_INFO, FsoGsmCallInfo))
#define FSO_GSM_CALL_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_CALL_INFO, FsoGsmCallInfoClass))
#define FSO_GSM_IS_CALL_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CALL_INFO))
#define FSO_GSM_IS_CALL_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_CALL_INFO))
#define FSO_GSM_CALL_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_CALL_INFO, FsoGsmCallInfoClass))

typedef struct _FsoGsmCallInfo FsoGsmCallInfo;
typedef struct _FsoGsmCallInfoClass FsoGsmCallInfoClass;

#define FSO_GSM_TYPE_SMS_HANDLER (fso_gsm_sms_handler_get_type ())
#define FSO_GSM_SMS_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SMS_HANDLER, FsoGsmSmsHandler))
#define FSO_GSM_IS_SMS_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SMS_HANDLER))
#define FSO_GSM_SMS_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_SMS_HANDLER, FsoGsmSmsHandlerIface))

typedef struct _FsoGsmSmsHandler FsoGsmSmsHandler;
typedef struct _FsoGsmSmsHandlerIface FsoGsmSmsHandlerIface;

#define TYPE_WRAP_HEX_PDU (wrap_hex_pdu_get_type ())
#define WRAP_HEX_PDU(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WRAP_HEX_PDU, WrapHexPdu))
#define WRAP_HEX_PDU_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WRAP_HEX_PDU, WrapHexPduClass))
#define IS_WRAP_HEX_PDU(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WRAP_HEX_PDU))
#define IS_WRAP_HEX_PDU_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WRAP_HEX_PDU))
#define WRAP_HEX_PDU_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WRAP_HEX_PDU, WrapHexPduClass))

typedef struct _WrapHexPdu WrapHexPdu;
typedef struct _WrapHexPduClass WrapHexPduClass;

#define FSO_GSM_TYPE_ISMS_STORAGE (fso_gsm_isms_storage_get_type ())
#define FSO_GSM_ISMS_STORAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ISMS_STORAGE, FsoGsmISmsStorage))
#define FSO_GSM_IS_ISMS_STORAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ISMS_STORAGE))
#define FSO_GSM_ISMS_STORAGE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_ISMS_STORAGE, FsoGsmISmsStorageIface))

typedef struct _FsoGsmISmsStorage FsoGsmISmsStorage;
typedef struct _FsoGsmISmsStorageIface FsoGsmISmsStorageIface;

#define FSO_GSM_TYPE_PHONEBOOK_HANDLER (fso_gsm_phonebook_handler_get_type ())
#define FSO_GSM_PHONEBOOK_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PHONEBOOK_HANDLER, FsoGsmPhonebookHandler))
#define FSO_GSM_IS_PHONEBOOK_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PHONEBOOK_HANDLER))
#define FSO_GSM_PHONEBOOK_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_PHONEBOOK_HANDLER, FsoGsmPhonebookHandlerIface))

typedef struct _FsoGsmPhonebookHandler FsoGsmPhonebookHandler;
typedef struct _FsoGsmPhonebookHandlerIface FsoGsmPhonebookHandlerIface;

#define FSO_GSM_TYPE_PHONEBOOK_STORAGE (fso_gsm_phonebook_storage_get_type ())
#define FSO_GSM_PHONEBOOK_STORAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PHONEBOOK_STORAGE, FsoGsmPhonebookStorage))
#define FSO_GSM_PHONEBOOK_STORAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PHONEBOOK_STORAGE, FsoGsmPhonebookStorageClass))
#define FSO_GSM_IS_PHONEBOOK_STORAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PHONEBOOK_STORAGE))
#define FSO_GSM_IS_PHONEBOOK_STORAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PHONEBOOK_STORAGE))
#define FSO_GSM_PHONEBOOK_STORAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PHONEBOOK_STORAGE, FsoGsmPhonebookStorageClass))

typedef struct _FsoGsmPhonebookStorage FsoGsmPhonebookStorage;
typedef struct _FsoGsmPhonebookStorageClass FsoGsmPhonebookStorageClass;

#define FSO_GSM_TYPE_WATCH_DOG (fso_gsm_watch_dog_get_type ())
#define FSO_GSM_WATCH_DOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_WATCH_DOG, FsoGsmWatchDog))
#define FSO_GSM_IS_WATCH_DOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_WATCH_DOG))
#define FSO_GSM_WATCH_DOG_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_WATCH_DOG, FsoGsmWatchDogIface))

typedef struct _FsoGsmWatchDog FsoGsmWatchDog;
typedef struct _FsoGsmWatchDogIface FsoGsmWatchDogIface;

#define FSO_GSM_TYPE_IPDP_HANDLER (fso_gsm_ipdp_handler_get_type ())
#define FSO_GSM_IPDP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_IPDP_HANDLER, FsoGsmIPdpHandler))
#define FSO_GSM_IS_IPDP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_IPDP_HANDLER))
#define FSO_GSM_IPDP_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_IPDP_HANDLER, FsoGsmIPdpHandlerIface))

typedef struct _FsoGsmIPdpHandler FsoGsmIPdpHandler;
typedef struct _FsoGsmIPdpHandlerIface FsoGsmIPdpHandlerIface;

#define FSO_GSM_TYPE_ROUTE_INFO (fso_gsm_route_info_get_type ())
#define FSO_GSM_ROUTE_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ROUTE_INFO, FsoGsmRouteInfo))
#define FSO_GSM_ROUTE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_ROUTE_INFO, FsoGsmRouteInfoClass))
#define FSO_GSM_IS_ROUTE_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ROUTE_INFO))
#define FSO_GSM_IS_ROUTE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_ROUTE_INFO))
#define FSO_GSM_ROUTE_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_ROUTE_INFO, FsoGsmRouteInfoClass))

typedef struct _FsoGsmRouteInfo FsoGsmRouteInfo;
typedef struct _FsoGsmRouteInfoClass FsoGsmRouteInfoClass;

#define FSO_GSM_TYPE_ABSTRACT_AT_COMMAND (fso_gsm_abstract_at_command_get_type ())
#define FSO_GSM_ABSTRACT_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND, FsoGsmAbstractAtCommand))
#define FSO_GSM_ABSTRACT_AT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND, FsoGsmAbstractAtCommandClass))
#define FSO_GSM_IS_ABSTRACT_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND))
#define FSO_GSM_IS_ABSTRACT_AT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND))
#define FSO_GSM_ABSTRACT_AT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND, FsoGsmAbstractAtCommandClass))

typedef struct _FsoGsmAbstractAtCommand FsoGsmAbstractAtCommand;
typedef struct _FsoGsmAbstractAtCommandClass FsoGsmAbstractAtCommandClass;

#define FSO_GSM_TYPE_PLUS_CALA (fso_gsm_plus_cala_get_type ())
#define FSO_GSM_PLUS_CALA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CALA, FsoGsmPlusCALA))
#define FSO_GSM_PLUS_CALA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CALA, FsoGsmPlusCALAClass))
#define FSO_GSM_IS_PLUS_CALA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CALA))
#define FSO_GSM_IS_PLUS_CALA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CALA))
#define FSO_GSM_PLUS_CALA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CALA, FsoGsmPlusCALAClass))

typedef struct _FsoGsmPlusCALA FsoGsmPlusCALA;
typedef struct _FsoGsmPlusCALAClass FsoGsmPlusCALAClass;
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
typedef struct _FsoGsmAbstractAtCommandPrivate FsoGsmAbstractAtCommandPrivate;
typedef struct _FsoGsmPlusCALAPrivate FsoGsmPlusCALAPrivate;
typedef struct _FsoGsmModemDataPrivate FsoGsmModemDataPrivate;

#define FSO_GSM_TYPE_PHONEBOOK_PARAMS (fso_gsm_phonebook_params_get_type ())
#define FSO_GSM_PHONEBOOK_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PHONEBOOK_PARAMS, FsoGsmPhonebookParams))
#define FSO_GSM_PHONEBOOK_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PHONEBOOK_PARAMS, FsoGsmPhonebookParamsClass))
#define FSO_GSM_IS_PHONEBOOK_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PHONEBOOK_PARAMS))
#define FSO_GSM_IS_PHONEBOOK_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PHONEBOOK_PARAMS))
#define FSO_GSM_PHONEBOOK_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PHONEBOOK_PARAMS, FsoGsmPhonebookParamsClass))

typedef struct _FsoGsmPhonebookParams FsoGsmPhonebookParams;
typedef struct _FsoGsmPhonebookParamsClass FsoGsmPhonebookParamsClass;

#define FSO_GSM_TYPE_CONTEXT_PARAMS (fso_gsm_context_params_get_type ())
#define FSO_GSM_CONTEXT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CONTEXT_PARAMS, FsoGsmContextParams))
#define FSO_GSM_CONTEXT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_CONTEXT_PARAMS, FsoGsmContextParamsClass))
#define FSO_GSM_IS_CONTEXT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CONTEXT_PARAMS))
#define FSO_GSM_IS_CONTEXT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_CONTEXT_PARAMS))
#define FSO_GSM_CONTEXT_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_CONTEXT_PARAMS, FsoGsmContextParamsClass))

typedef struct _FsoGsmContextParams FsoGsmContextParams;
typedef struct _FsoGsmContextParamsClass FsoGsmContextParamsClass;

#define FSO_GSM_TYPE_NETWORK_TIME_REPORT (fso_gsm_network_time_report_get_type ())
#define FSO_GSM_NETWORK_TIME_REPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_NETWORK_TIME_REPORT, FsoGsmNetworkTimeReport))
#define FSO_GSM_NETWORK_TIME_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_NETWORK_TIME_REPORT, FsoGsmNetworkTimeReportClass))
#define FSO_GSM_IS_NETWORK_TIME_REPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_NETWORK_TIME_REPORT))
#define FSO_GSM_IS_NETWORK_TIME_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_NETWORK_TIME_REPORT))
#define FSO_GSM_NETWORK_TIME_REPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_NETWORK_TIME_REPORT, FsoGsmNetworkTimeReportClass))

typedef struct _FsoGsmNetworkTimeReport FsoGsmNetworkTimeReport;
typedef struct _FsoGsmNetworkTimeReportClass FsoGsmNetworkTimeReportClass;
typedef struct _FsoGsmAtDeviceGetAlarmTimeRunData FsoGsmAtDeviceGetAlarmTimeRunData;

#define FSO_GSM_TYPE_DEVICE_GET_CURRENT_TIME (fso_gsm_device_get_current_time_get_type ())
#define FSO_GSM_DEVICE_GET_CURRENT_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_GET_CURRENT_TIME, FsoGsmDeviceGetCurrentTime))
#define FSO_GSM_DEVICE_GET_CURRENT_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_GET_CURRENT_TIME, FsoGsmDeviceGetCurrentTimeClass))
#define FSO_GSM_IS_DEVICE_GET_CURRENT_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_GET_CURRENT_TIME))
#define FSO_GSM_IS_DEVICE_GET_CURRENT_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_GET_CURRENT_TIME))
#define FSO_GSM_DEVICE_GET_CURRENT_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_GET_CURRENT_TIME, FsoGsmDeviceGetCurrentTimeClass))

typedef struct _FsoGsmDeviceGetCurrentTime FsoGsmDeviceGetCurrentTime;
typedef struct _FsoGsmDeviceGetCurrentTimeClass FsoGsmDeviceGetCurrentTimeClass;
typedef struct _FsoGsmDeviceGetCurrentTimePrivate FsoGsmDeviceGetCurrentTimePrivate;

#define FSO_GSM_TYPE_AT_DEVICE_GET_CURRENT_TIME (fso_gsm_at_device_get_current_time_get_type ())
#define FSO_GSM_AT_DEVICE_GET_CURRENT_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_CURRENT_TIME, FsoGsmAtDeviceGetCurrentTime))
#define FSO_GSM_AT_DEVICE_GET_CURRENT_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_CURRENT_TIME, FsoGsmAtDeviceGetCurrentTimeClass))
#define FSO_GSM_IS_AT_DEVICE_GET_CURRENT_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_CURRENT_TIME))
#define FSO_GSM_IS_AT_DEVICE_GET_CURRENT_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_CURRENT_TIME))
#define FSO_GSM_AT_DEVICE_GET_CURRENT_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_CURRENT_TIME, FsoGsmAtDeviceGetCurrentTimeClass))

typedef struct _FsoGsmAtDeviceGetCurrentTime FsoGsmAtDeviceGetCurrentTime;
typedef struct _FsoGsmAtDeviceGetCurrentTimeClass FsoGsmAtDeviceGetCurrentTimeClass;
typedef struct _FsoGsmAtDeviceGetCurrentTimePrivate FsoGsmAtDeviceGetCurrentTimePrivate;

#define FSO_GSM_TYPE_PLUS_CCLK (fso_gsm_plus_cclk_get_type ())
#define FSO_GSM_PLUS_CCLK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CCLK, FsoGsmPlusCCLK))
#define FSO_GSM_PLUS_CCLK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CCLK, FsoGsmPlusCCLKClass))
#define FSO_GSM_IS_PLUS_CCLK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CCLK))
#define FSO_GSM_IS_PLUS_CCLK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CCLK))
#define FSO_GSM_PLUS_CCLK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CCLK, FsoGsmPlusCCLKClass))

typedef struct _FsoGsmPlusCCLK FsoGsmPlusCCLK;
typedef struct _FsoGsmPlusCCLKClass FsoGsmPlusCCLKClass;
typedef struct _FsoGsmPlusCCLKPrivate FsoGsmPlusCCLKPrivate;
typedef struct _FsoGsmAtDeviceGetCurrentTimeRunData FsoGsmAtDeviceGetCurrentTimeRunData;

#define FSO_GSM_TYPE_DEVICE_GET_FUNCTIONALITY (fso_gsm_device_get_functionality_get_type ())
#define FSO_GSM_DEVICE_GET_FUNCTIONALITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_GET_FUNCTIONALITY, FsoGsmDeviceGetFunctionality))
#define FSO_GSM_DEVICE_GET_FUNCTIONALITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_GET_FUNCTIONALITY, FsoGsmDeviceGetFunctionalityClass))
#define FSO_GSM_IS_DEVICE_GET_FUNCTIONALITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_GET_FUNCTIONALITY))
#define FSO_GSM_IS_DEVICE_GET_FUNCTIONALITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_GET_FUNCTIONALITY))
#define FSO_GSM_DEVICE_GET_FUNCTIONALITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_GET_FUNCTIONALITY, FsoGsmDeviceGetFunctionalityClass))

typedef struct _FsoGsmDeviceGetFunctionality FsoGsmDeviceGetFunctionality;
typedef struct _FsoGsmDeviceGetFunctionalityClass FsoGsmDeviceGetFunctionalityClass;
typedef struct _FsoGsmDeviceGetFunctionalityPrivate FsoGsmDeviceGetFunctionalityPrivate;

#define FSO_GSM_TYPE_AT_DEVICE_GET_FUNCTIONALITY (fso_gsm_at_device_get_functionality_get_type ())
#define FSO_GSM_AT_DEVICE_GET_FUNCTIONALITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_FUNCTIONALITY, FsoGsmAtDeviceGetFunctionality))
#define FSO_GSM_AT_DEVICE_GET_FUNCTIONALITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_FUNCTIONALITY, FsoGsmAtDeviceGetFunctionalityClass))
#define FSO_GSM_IS_AT_DEVICE_GET_FUNCTIONALITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_FUNCTIONALITY))
#define FSO_GSM_IS_AT_DEVICE_GET_FUNCTIONALITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_FUNCTIONALITY))
#define FSO_GSM_AT_DEVICE_GET_FUNCTIONALITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_FUNCTIONALITY, FsoGsmAtDeviceGetFunctionalityClass))

typedef struct _FsoGsmAtDeviceGetFunctionality FsoGsmAtDeviceGetFunctionality;
typedef struct _FsoGsmAtDeviceGetFunctionalityClass FsoGsmAtDeviceGetFunctionalityClass;
typedef struct _FsoGsmAtDeviceGetFunctionalityPrivate FsoGsmAtDeviceGetFunctionalityPrivate;

#define FSO_GSM_TYPE_SIMPLE_AT_COMMAND (fso_gsm_simple_at_command_get_type ())
#define FSO_GSM_SIMPLE_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIMPLE_AT_COMMAND, FsoGsmSimpleAtCommand))
#define FSO_GSM_SIMPLE_AT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIMPLE_AT_COMMAND, FsoGsmSimpleAtCommandClass))
#define FSO_GSM_IS_SIMPLE_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIMPLE_AT_COMMAND))
#define FSO_GSM_IS_SIMPLE_AT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIMPLE_AT_COMMAND))
#define FSO_GSM_SIMPLE_AT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIMPLE_AT_COMMAND, FsoGsmSimpleAtCommandClass))

typedef struct _FsoGsmSimpleAtCommand FsoGsmSimpleAtCommand;
typedef struct _FsoGsmSimpleAtCommandClass FsoGsmSimpleAtCommandClass;

#define FSO_GSM_TYPE_PLUS_CFUN (fso_gsm_plus_cfun_get_type ())
#define FSO_GSM_PLUS_CFUN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CFUN, FsoGsmPlusCFUN))
#define FSO_GSM_PLUS_CFUN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CFUN, FsoGsmPlusCFUNClass))
#define FSO_GSM_IS_PLUS_CFUN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CFUN))
#define FSO_GSM_IS_PLUS_CFUN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CFUN))
#define FSO_GSM_PLUS_CFUN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CFUN, FsoGsmPlusCFUNClass))

typedef struct _FsoGsmPlusCFUN FsoGsmPlusCFUN;
typedef struct _FsoGsmPlusCFUNClass FsoGsmPlusCFUNClass;

#define FSO_GSM_TYPE_CONSTANTS (fso_gsm_constants_get_type ())
#define FSO_GSM_CONSTANTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CONSTANTS, FsoGsmConstants))
#define FSO_GSM_CONSTANTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_CONSTANTS, FsoGsmConstantsClass))
#define FSO_GSM_IS_CONSTANTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CONSTANTS))
#define FSO_GSM_IS_CONSTANTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_CONSTANTS))
#define FSO_GSM_CONSTANTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_CONSTANTS, FsoGsmConstantsClass))

typedef struct _FsoGsmConstants FsoGsmConstants;
typedef struct _FsoGsmConstantsClass FsoGsmConstantsClass;
typedef struct _FsoGsmSimpleAtCommandPrivate FsoGsmSimpleAtCommandPrivate;
#define _fso_gsm_constants_unref0(var) ((var == NULL) ? NULL : (var = (fso_gsm_constants_unref (var), NULL)))
typedef struct _FsoGsmAtDeviceGetFunctionalityRunData FsoGsmAtDeviceGetFunctionalityRunData;

#define FSO_GSM_TYPE_DEVICE_GET_INFORMATION (fso_gsm_device_get_information_get_type ())
#define FSO_GSM_DEVICE_GET_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_GET_INFORMATION, FsoGsmDeviceGetInformation))
#define FSO_GSM_DEVICE_GET_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_GET_INFORMATION, FsoGsmDeviceGetInformationClass))
#define FSO_GSM_IS_DEVICE_GET_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_GET_INFORMATION))
#define FSO_GSM_IS_DEVICE_GET_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_GET_INFORMATION))
#define FSO_GSM_DEVICE_GET_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_GET_INFORMATION, FsoGsmDeviceGetInformationClass))

typedef struct _FsoGsmDeviceGetInformation FsoGsmDeviceGetInformation;
typedef struct _FsoGsmDeviceGetInformationClass FsoGsmDeviceGetInformationClass;
typedef struct _FsoGsmDeviceGetInformationPrivate FsoGsmDeviceGetInformationPrivate;

#define FSO_GSM_TYPE_AT_DEVICE_GET_INFORMATION (fso_gsm_at_device_get_information_get_type ())
#define FSO_GSM_AT_DEVICE_GET_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_INFORMATION, FsoGsmAtDeviceGetInformation))
#define FSO_GSM_AT_DEVICE_GET_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_INFORMATION, FsoGsmAtDeviceGetInformationClass))
#define FSO_GSM_IS_AT_DEVICE_GET_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_INFORMATION))
#define FSO_GSM_IS_AT_DEVICE_GET_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_INFORMATION))
#define FSO_GSM_AT_DEVICE_GET_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_INFORMATION, FsoGsmAtDeviceGetInformationClass))

typedef struct _FsoGsmAtDeviceGetInformation FsoGsmAtDeviceGetInformation;
typedef struct _FsoGsmAtDeviceGetInformationClass FsoGsmAtDeviceGetInformationClass;
typedef struct _FsoGsmAtDeviceGetInformationPrivate FsoGsmAtDeviceGetInformationPrivate;
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))

#define FSO_GSM_TYPE_PLUS_CGMR (fso_gsm_plus_cgmr_get_type ())
#define FSO_GSM_PLUS_CGMR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CGMR, FsoGsmPlusCGMR))
#define FSO_GSM_PLUS_CGMR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CGMR, FsoGsmPlusCGMRClass))
#define FSO_GSM_IS_PLUS_CGMR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CGMR))
#define FSO_GSM_IS_PLUS_CGMR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CGMR))
#define FSO_GSM_PLUS_CGMR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CGMR, FsoGsmPlusCGMRClass))

typedef struct _FsoGsmPlusCGMR FsoGsmPlusCGMR;
typedef struct _FsoGsmPlusCGMRClass FsoGsmPlusCGMRClass;
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))

#define FSO_GSM_TYPE_PLUS_CGMM (fso_gsm_plus_cgmm_get_type ())
#define FSO_GSM_PLUS_CGMM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CGMM, FsoGsmPlusCGMM))
#define FSO_GSM_PLUS_CGMM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CGMM, FsoGsmPlusCGMMClass))
#define FSO_GSM_IS_PLUS_CGMM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CGMM))
#define FSO_GSM_IS_PLUS_CGMM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CGMM))
#define FSO_GSM_PLUS_CGMM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CGMM, FsoGsmPlusCGMMClass))

typedef struct _FsoGsmPlusCGMM FsoGsmPlusCGMM;
typedef struct _FsoGsmPlusCGMMClass FsoGsmPlusCGMMClass;

#define FSO_GSM_TYPE_PLUS_CGMI (fso_gsm_plus_cgmi_get_type ())
#define FSO_GSM_PLUS_CGMI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CGMI, FsoGsmPlusCGMI))
#define FSO_GSM_PLUS_CGMI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CGMI, FsoGsmPlusCGMIClass))
#define FSO_GSM_IS_PLUS_CGMI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CGMI))
#define FSO_GSM_IS_PLUS_CGMI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CGMI))
#define FSO_GSM_PLUS_CGMI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CGMI, FsoGsmPlusCGMIClass))

typedef struct _FsoGsmPlusCGMI FsoGsmPlusCGMI;
typedef struct _FsoGsmPlusCGMIClass FsoGsmPlusCGMIClass;

#define FSO_GSM_TYPE_PLUS_CGSN (fso_gsm_plus_cgsn_get_type ())
#define FSO_GSM_PLUS_CGSN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CGSN, FsoGsmPlusCGSN))
#define FSO_GSM_PLUS_CGSN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CGSN, FsoGsmPlusCGSNClass))
#define FSO_GSM_IS_PLUS_CGSN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CGSN))
#define FSO_GSM_IS_PLUS_CGSN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CGSN))
#define FSO_GSM_PLUS_CGSN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CGSN, FsoGsmPlusCGSNClass))

typedef struct _FsoGsmPlusCGSN FsoGsmPlusCGSN;
typedef struct _FsoGsmPlusCGSNClass FsoGsmPlusCGSNClass;

#define FSO_GSM_TYPE_PLUS_CMICKEY (fso_gsm_plus_cmickey_get_type ())
#define FSO_GSM_PLUS_CMICKEY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CMICKEY, FsoGsmPlusCMICKEY))
#define FSO_GSM_PLUS_CMICKEY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CMICKEY, FsoGsmPlusCMICKEYClass))
#define FSO_GSM_IS_PLUS_CMICKEY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CMICKEY))
#define FSO_GSM_IS_PLUS_CMICKEY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CMICKEY))
#define FSO_GSM_PLUS_CMICKEY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CMICKEY, FsoGsmPlusCMICKEYClass))

typedef struct _FsoGsmPlusCMICKEY FsoGsmPlusCMICKEY;
typedef struct _FsoGsmPlusCMICKEYClass FsoGsmPlusCMICKEYClass;
typedef struct _FsoGsmAtDeviceGetInformationRunData FsoGsmAtDeviceGetInformationRunData;

#define FSO_GSM_TYPE_DEVICE_GET_FEATURES (fso_gsm_device_get_features_get_type ())
#define FSO_GSM_DEVICE_GET_FEATURES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_GET_FEATURES, FsoGsmDeviceGetFeatures))
#define FSO_GSM_DEVICE_GET_FEATURES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_GET_FEATURES, FsoGsmDeviceGetFeaturesClass))
#define FSO_GSM_IS_DEVICE_GET_FEATURES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_GET_FEATURES))
#define FSO_GSM_IS_DEVICE_GET_FEATURES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_GET_FEATURES))
#define FSO_GSM_DEVICE_GET_FEATURES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_GET_FEATURES, FsoGsmDeviceGetFeaturesClass))

typedef struct _FsoGsmDeviceGetFeatures FsoGsmDeviceGetFeatures;
typedef struct _FsoGsmDeviceGetFeaturesClass FsoGsmDeviceGetFeaturesClass;
typedef struct _FsoGsmDeviceGetFeaturesPrivate FsoGsmDeviceGetFeaturesPrivate;

#define FSO_GSM_TYPE_AT_DEVICE_GET_FEATURES (fso_gsm_at_device_get_features_get_type ())
#define FSO_GSM_AT_DEVICE_GET_FEATURES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_FEATURES, FsoGsmAtDeviceGetFeatures))
#define FSO_GSM_AT_DEVICE_GET_FEATURES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_FEATURES, FsoGsmAtDeviceGetFeaturesClass))
#define FSO_GSM_IS_AT_DEVICE_GET_FEATURES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_FEATURES))
#define FSO_GSM_IS_AT_DEVICE_GET_FEATURES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_FEATURES))
#define FSO_GSM_AT_DEVICE_GET_FEATURES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_FEATURES, FsoGsmAtDeviceGetFeaturesClass))

typedef struct _FsoGsmAtDeviceGetFeatures FsoGsmAtDeviceGetFeatures;
typedef struct _FsoGsmAtDeviceGetFeaturesClass FsoGsmAtDeviceGetFeaturesClass;
typedef struct _FsoGsmAtDeviceGetFeaturesPrivate FsoGsmAtDeviceGetFeaturesPrivate;

#define FSO_GSM_TYPE_PLUS_GCAP (fso_gsm_plus_gcap_get_type ())
#define FSO_GSM_PLUS_GCAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_GCAP, FsoGsmPlusGCAP))
#define FSO_GSM_PLUS_GCAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_GCAP, FsoGsmPlusGCAPClass))
#define FSO_GSM_IS_PLUS_GCAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_GCAP))
#define FSO_GSM_IS_PLUS_GCAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_GCAP))
#define FSO_GSM_PLUS_GCAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_GCAP, FsoGsmPlusGCAPClass))

typedef struct _FsoGsmPlusGCAP FsoGsmPlusGCAP;
typedef struct _FsoGsmPlusGCAPClass FsoGsmPlusGCAPClass;

#define FSO_GSM_TYPE_PLUS_CGCLASS (fso_gsm_plus_cgclass_get_type ())
#define FSO_GSM_PLUS_CGCLASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CGCLASS, FsoGsmPlusCGCLASS))
#define FSO_GSM_PLUS_CGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CGCLASS, FsoGsmPlusCGCLASSClass))
#define FSO_GSM_IS_PLUS_CGCLASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CGCLASS))
#define FSO_GSM_IS_PLUS_CGCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CGCLASS))
#define FSO_GSM_PLUS_CGCLASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CGCLASS, FsoGsmPlusCGCLASSClass))

typedef struct _FsoGsmPlusCGCLASS FsoGsmPlusCGCLASS;
typedef struct _FsoGsmPlusCGCLASSClass FsoGsmPlusCGCLASSClass;

#define FSO_GSM_TYPE_PLUS_FCLASS (fso_gsm_plus_fclass_get_type ())
#define FSO_GSM_PLUS_FCLASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_FCLASS, FsoGsmPlusFCLASS))
#define FSO_GSM_PLUS_FCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_FCLASS, FsoGsmPlusFCLASSClass))
#define FSO_GSM_IS_PLUS_FCLASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_FCLASS))
#define FSO_GSM_IS_PLUS_FCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_FCLASS))
#define FSO_GSM_PLUS_FCLASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_FCLASS, FsoGsmPlusFCLASSClass))

typedef struct _FsoGsmPlusFCLASS FsoGsmPlusFCLASS;
typedef struct _FsoGsmPlusFCLASSClass FsoGsmPlusFCLASSClass;

#define FSO_GSM_TYPE_PLUS_CLCK (fso_gsm_plus_clck_get_type ())
#define FSO_GSM_PLUS_CLCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CLCK, FsoGsmPlusCLCK))
#define FSO_GSM_PLUS_CLCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CLCK, FsoGsmPlusCLCKClass))
#define FSO_GSM_IS_PLUS_CLCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CLCK))
#define FSO_GSM_IS_PLUS_CLCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CLCK))
#define FSO_GSM_PLUS_CLCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CLCK, FsoGsmPlusCLCKClass))

typedef struct _FsoGsmPlusCLCK FsoGsmPlusCLCK;
typedef struct _FsoGsmPlusCLCKClass FsoGsmPlusCLCKClass;
typedef struct _FsoGsmPlusCLCKPrivate FsoGsmPlusCLCKPrivate;
typedef struct _FsoGsmAtDeviceGetFeaturesRunData FsoGsmAtDeviceGetFeaturesRunData;

#define FSO_GSM_TYPE_DEVICE_GET_MICROPHONE_MUTED (fso_gsm_device_get_microphone_muted_get_type ())
#define FSO_GSM_DEVICE_GET_MICROPHONE_MUTED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_GET_MICROPHONE_MUTED, FsoGsmDeviceGetMicrophoneMuted))
#define FSO_GSM_DEVICE_GET_MICROPHONE_MUTED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_GET_MICROPHONE_MUTED, FsoGsmDeviceGetMicrophoneMutedClass))
#define FSO_GSM_IS_DEVICE_GET_MICROPHONE_MUTED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_GET_MICROPHONE_MUTED))
#define FSO_GSM_IS_DEVICE_GET_MICROPHONE_MUTED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_GET_MICROPHONE_MUTED))
#define FSO_GSM_DEVICE_GET_MICROPHONE_MUTED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_GET_MICROPHONE_MUTED, FsoGsmDeviceGetMicrophoneMutedClass))

typedef struct _FsoGsmDeviceGetMicrophoneMuted FsoGsmDeviceGetMicrophoneMuted;
typedef struct _FsoGsmDeviceGetMicrophoneMutedClass FsoGsmDeviceGetMicrophoneMutedClass;
typedef struct _FsoGsmDeviceGetMicrophoneMutedPrivate FsoGsmDeviceGetMicrophoneMutedPrivate;

#define FSO_GSM_TYPE_AT_DEVICE_GET_MICROPHONE_MUTED (fso_gsm_at_device_get_microphone_muted_get_type ())
#define FSO_GSM_AT_DEVICE_GET_MICROPHONE_MUTED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_MICROPHONE_MUTED, FsoGsmAtDeviceGetMicrophoneMuted))
#define FSO_GSM_AT_DEVICE_GET_MICROPHONE_MUTED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_MICROPHONE_MUTED, FsoGsmAtDeviceGetMicrophoneMutedClass))
#define FSO_GSM_IS_AT_DEVICE_GET_MICROPHONE_MUTED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_MICROPHONE_MUTED))
#define FSO_GSM_IS_AT_DEVICE_GET_MICROPHONE_MUTED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_MICROPHONE_MUTED))
#define FSO_GSM_AT_DEVICE_GET_MICROPHONE_MUTED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_MICROPHONE_MUTED, FsoGsmAtDeviceGetMicrophoneMutedClass))

typedef struct _FsoGsmAtDeviceGetMicrophoneMuted FsoGsmAtDeviceGetMicrophoneMuted;
typedef struct _FsoGsmAtDeviceGetMicrophoneMutedClass FsoGsmAtDeviceGetMicrophoneMutedClass;
typedef struct _FsoGsmAtDeviceGetMicrophoneMutedPrivate FsoGsmAtDeviceGetMicrophoneMutedPrivate;

#define FSO_GSM_TYPE_PLUS_CMUT (fso_gsm_plus_cmut_get_type ())
#define FSO_GSM_PLUS_CMUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CMUT, FsoGsmPlusCMUT))
#define FSO_GSM_PLUS_CMUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CMUT, FsoGsmPlusCMUTClass))
#define FSO_GSM_IS_PLUS_CMUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CMUT))
#define FSO_GSM_IS_PLUS_CMUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CMUT))
#define FSO_GSM_PLUS_CMUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CMUT, FsoGsmPlusCMUTClass))

typedef struct _FsoGsmPlusCMUT FsoGsmPlusCMUT;
typedef struct _FsoGsmPlusCMUTClass FsoGsmPlusCMUTClass;
typedef struct _FsoGsmAtDeviceGetMicrophoneMutedRunData FsoGsmAtDeviceGetMicrophoneMutedRunData;

#define FSO_GSM_TYPE_DEVICE_GET_SIM_BUFFERS_SMS (fso_gsm_device_get_sim_buffers_sms_get_type ())
#define FSO_GSM_DEVICE_GET_SIM_BUFFERS_SMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_GET_SIM_BUFFERS_SMS, FsoGsmDeviceGetSimBuffersSms))
#define FSO_GSM_DEVICE_GET_SIM_BUFFERS_SMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_GET_SIM_BUFFERS_SMS, FsoGsmDeviceGetSimBuffersSmsClass))
#define FSO_GSM_IS_DEVICE_GET_SIM_BUFFERS_SMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_GET_SIM_BUFFERS_SMS))
#define FSO_GSM_IS_DEVICE_GET_SIM_BUFFERS_SMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_GET_SIM_BUFFERS_SMS))
#define FSO_GSM_DEVICE_GET_SIM_BUFFERS_SMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_GET_SIM_BUFFERS_SMS, FsoGsmDeviceGetSimBuffersSmsClass))

typedef struct _FsoGsmDeviceGetSimBuffersSms FsoGsmDeviceGetSimBuffersSms;
typedef struct _FsoGsmDeviceGetSimBuffersSmsClass FsoGsmDeviceGetSimBuffersSmsClass;
typedef struct _FsoGsmDeviceGetSimBuffersSmsPrivate FsoGsmDeviceGetSimBuffersSmsPrivate;

#define FSO_GSM_TYPE_AT_DEVICE_GET_SIM_BUFFERS_SMS (fso_gsm_at_device_get_sim_buffers_sms_get_type ())
#define FSO_GSM_AT_DEVICE_GET_SIM_BUFFERS_SMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_SIM_BUFFERS_SMS, FsoGsmAtDeviceGetSimBuffersSms))
#define FSO_GSM_AT_DEVICE_GET_SIM_BUFFERS_SMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_SIM_BUFFERS_SMS, FsoGsmAtDeviceGetSimBuffersSmsClass))
#define FSO_GSM_IS_AT_DEVICE_GET_SIM_BUFFERS_SMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_SIM_BUFFERS_SMS))
#define FSO_GSM_IS_AT_DEVICE_GET_SIM_BUFFERS_SMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_SIM_BUFFERS_SMS))
#define FSO_GSM_AT_DEVICE_GET_SIM_BUFFERS_SMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_SIM_BUFFERS_SMS, FsoGsmAtDeviceGetSimBuffersSmsClass))

typedef struct _FsoGsmAtDeviceGetSimBuffersSms FsoGsmAtDeviceGetSimBuffersSms;
typedef struct _FsoGsmAtDeviceGetSimBuffersSmsClass FsoGsmAtDeviceGetSimBuffersSmsClass;
typedef struct _FsoGsmAtDeviceGetSimBuffersSmsPrivate FsoGsmAtDeviceGetSimBuffersSmsPrivate;

#define FSO_GSM_TYPE_PLUS_CNMI (fso_gsm_plus_cnmi_get_type ())
#define FSO_GSM_PLUS_CNMI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CNMI, FsoGsmPlusCNMI))
#define FSO_GSM_PLUS_CNMI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CNMI, FsoGsmPlusCNMIClass))
#define FSO_GSM_IS_PLUS_CNMI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CNMI))
#define FSO_GSM_IS_PLUS_CNMI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CNMI))
#define FSO_GSM_PLUS_CNMI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CNMI, FsoGsmPlusCNMIClass))

typedef struct _FsoGsmPlusCNMI FsoGsmPlusCNMI;
typedef struct _FsoGsmPlusCNMIClass FsoGsmPlusCNMIClass;
typedef struct _FsoGsmPlusCNMIPrivate FsoGsmPlusCNMIPrivate;
typedef struct _FsoGsmAtDeviceGetSimBuffersSmsRunData FsoGsmAtDeviceGetSimBuffersSmsRunData;

#define FSO_GSM_TYPE_DEVICE_GET_SPEAKER_VOLUME (fso_gsm_device_get_speaker_volume_get_type ())
#define FSO_GSM_DEVICE_GET_SPEAKER_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_GET_SPEAKER_VOLUME, FsoGsmDeviceGetSpeakerVolume))
#define FSO_GSM_DEVICE_GET_SPEAKER_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_GET_SPEAKER_VOLUME, FsoGsmDeviceGetSpeakerVolumeClass))
#define FSO_GSM_IS_DEVICE_GET_SPEAKER_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_GET_SPEAKER_VOLUME))
#define FSO_GSM_IS_DEVICE_GET_SPEAKER_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_GET_SPEAKER_VOLUME))
#define FSO_GSM_DEVICE_GET_SPEAKER_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_GET_SPEAKER_VOLUME, FsoGsmDeviceGetSpeakerVolumeClass))

typedef struct _FsoGsmDeviceGetSpeakerVolume FsoGsmDeviceGetSpeakerVolume;
typedef struct _FsoGsmDeviceGetSpeakerVolumeClass FsoGsmDeviceGetSpeakerVolumeClass;
typedef struct _FsoGsmDeviceGetSpeakerVolumePrivate FsoGsmDeviceGetSpeakerVolumePrivate;

#define FSO_GSM_TYPE_AT_DEVICE_GET_SPEAKER_VOLUME (fso_gsm_at_device_get_speaker_volume_get_type ())
#define FSO_GSM_AT_DEVICE_GET_SPEAKER_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_SPEAKER_VOLUME, FsoGsmAtDeviceGetSpeakerVolume))
#define FSO_GSM_AT_DEVICE_GET_SPEAKER_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_SPEAKER_VOLUME, FsoGsmAtDeviceGetSpeakerVolumeClass))
#define FSO_GSM_IS_AT_DEVICE_GET_SPEAKER_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_SPEAKER_VOLUME))
#define FSO_GSM_IS_AT_DEVICE_GET_SPEAKER_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_SPEAKER_VOLUME))
#define FSO_GSM_AT_DEVICE_GET_SPEAKER_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_SPEAKER_VOLUME, FsoGsmAtDeviceGetSpeakerVolumeClass))

typedef struct _FsoGsmAtDeviceGetSpeakerVolume FsoGsmAtDeviceGetSpeakerVolume;
typedef struct _FsoGsmAtDeviceGetSpeakerVolumeClass FsoGsmAtDeviceGetSpeakerVolumeClass;
typedef struct _FsoGsmAtDeviceGetSpeakerVolumePrivate FsoGsmAtDeviceGetSpeakerVolumePrivate;

#define FSO_GSM_TYPE_PLUS_CLVL (fso_gsm_plus_clvl_get_type ())
#define FSO_GSM_PLUS_CLVL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CLVL, FsoGsmPlusCLVL))
#define FSO_GSM_PLUS_CLVL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CLVL, FsoGsmPlusCLVLClass))
#define FSO_GSM_IS_PLUS_CLVL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CLVL))
#define FSO_GSM_IS_PLUS_CLVL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CLVL))
#define FSO_GSM_PLUS_CLVL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CLVL, FsoGsmPlusCLVLClass))

typedef struct _FsoGsmPlusCLVL FsoGsmPlusCLVL;
typedef struct _FsoGsmPlusCLVLClass FsoGsmPlusCLVLClass;
typedef struct _FsoGsmAtDeviceGetSpeakerVolumeRunData FsoGsmAtDeviceGetSpeakerVolumeRunData;

#define FSO_GSM_TYPE_DEVICE_GET_POWER_STATUS (fso_gsm_device_get_power_status_get_type ())
#define FSO_GSM_DEVICE_GET_POWER_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_GET_POWER_STATUS, FsoGsmDeviceGetPowerStatus))
#define FSO_GSM_DEVICE_GET_POWER_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_GET_POWER_STATUS, FsoGsmDeviceGetPowerStatusClass))
#define FSO_GSM_IS_DEVICE_GET_POWER_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_GET_POWER_STATUS))
#define FSO_GSM_IS_DEVICE_GET_POWER_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_GET_POWER_STATUS))
#define FSO_GSM_DEVICE_GET_POWER_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_GET_POWER_STATUS, FsoGsmDeviceGetPowerStatusClass))

typedef struct _FsoGsmDeviceGetPowerStatus FsoGsmDeviceGetPowerStatus;
typedef struct _FsoGsmDeviceGetPowerStatusClass FsoGsmDeviceGetPowerStatusClass;
typedef struct _FsoGsmDeviceGetPowerStatusPrivate FsoGsmDeviceGetPowerStatusPrivate;

#define FSO_GSM_TYPE_AT_DEVICE_GET_POWER_STATUS (fso_gsm_at_device_get_power_status_get_type ())
#define FSO_GSM_AT_DEVICE_GET_POWER_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_POWER_STATUS, FsoGsmAtDeviceGetPowerStatus))
#define FSO_GSM_AT_DEVICE_GET_POWER_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_POWER_STATUS, FsoGsmAtDeviceGetPowerStatusClass))
#define FSO_GSM_IS_AT_DEVICE_GET_POWER_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_POWER_STATUS))
#define FSO_GSM_IS_AT_DEVICE_GET_POWER_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_GET_POWER_STATUS))
#define FSO_GSM_AT_DEVICE_GET_POWER_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_GET_POWER_STATUS, FsoGsmAtDeviceGetPowerStatusClass))

typedef struct _FsoGsmAtDeviceGetPowerStatus FsoGsmAtDeviceGetPowerStatus;
typedef struct _FsoGsmAtDeviceGetPowerStatusClass FsoGsmAtDeviceGetPowerStatusClass;
typedef struct _FsoGsmAtDeviceGetPowerStatusPrivate FsoGsmAtDeviceGetPowerStatusPrivate;

#define FSO_GSM_TYPE_PLUS_CBC (fso_gsm_plus_cbc_get_type ())
#define FSO_GSM_PLUS_CBC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CBC, FsoGsmPlusCBC))
#define FSO_GSM_PLUS_CBC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CBC, FsoGsmPlusCBCClass))
#define FSO_GSM_IS_PLUS_CBC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CBC))
#define FSO_GSM_IS_PLUS_CBC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CBC))
#define FSO_GSM_PLUS_CBC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CBC, FsoGsmPlusCBCClass))

typedef struct _FsoGsmPlusCBC FsoGsmPlusCBC;
typedef struct _FsoGsmPlusCBCClass FsoGsmPlusCBCClass;
typedef struct _FsoGsmPlusCBCPrivate FsoGsmPlusCBCPrivate;

#define FSO_GSM_PLUS_CBC_TYPE_STATUS (fso_gsm_plus_cbc_status_get_type ())
typedef struct _FsoGsmAtDeviceGetPowerStatusRunData FsoGsmAtDeviceGetPowerStatusRunData;

#define FSO_GSM_TYPE_DEVICE_SET_ALARM_TIME (fso_gsm_device_set_alarm_time_get_type ())
#define FSO_GSM_DEVICE_SET_ALARM_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_SET_ALARM_TIME, FsoGsmDeviceSetAlarmTime))
#define FSO_GSM_DEVICE_SET_ALARM_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_SET_ALARM_TIME, FsoGsmDeviceSetAlarmTimeClass))
#define FSO_GSM_IS_DEVICE_SET_ALARM_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_SET_ALARM_TIME))
#define FSO_GSM_IS_DEVICE_SET_ALARM_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_SET_ALARM_TIME))
#define FSO_GSM_DEVICE_SET_ALARM_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_SET_ALARM_TIME, FsoGsmDeviceSetAlarmTimeClass))

typedef struct _FsoGsmDeviceSetAlarmTime FsoGsmDeviceSetAlarmTime;
typedef struct _FsoGsmDeviceSetAlarmTimeClass FsoGsmDeviceSetAlarmTimeClass;
typedef struct _FsoGsmDeviceSetAlarmTimePrivate FsoGsmDeviceSetAlarmTimePrivate;

#define FSO_GSM_TYPE_AT_DEVICE_SET_ALARM_TIME (fso_gsm_at_device_set_alarm_time_get_type ())
#define FSO_GSM_AT_DEVICE_SET_ALARM_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_ALARM_TIME, FsoGsmAtDeviceSetAlarmTime))
#define FSO_GSM_AT_DEVICE_SET_ALARM_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_SET_ALARM_TIME, FsoGsmAtDeviceSetAlarmTimeClass))
#define FSO_GSM_IS_AT_DEVICE_SET_ALARM_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_ALARM_TIME))
#define FSO_GSM_IS_AT_DEVICE_SET_ALARM_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_SET_ALARM_TIME))
#define FSO_GSM_AT_DEVICE_SET_ALARM_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_ALARM_TIME, FsoGsmAtDeviceSetAlarmTimeClass))

typedef struct _FsoGsmAtDeviceSetAlarmTime FsoGsmAtDeviceSetAlarmTime;
typedef struct _FsoGsmAtDeviceSetAlarmTimeClass FsoGsmAtDeviceSetAlarmTimeClass;
typedef struct _FsoGsmAtDeviceSetAlarmTimePrivate FsoGsmAtDeviceSetAlarmTimePrivate;
typedef struct _FsoGsmAtDeviceSetAlarmTimeRunData FsoGsmAtDeviceSetAlarmTimeRunData;

#define FSO_GSM_TYPE_DEVICE_SET_CURRENT_TIME (fso_gsm_device_set_current_time_get_type ())
#define FSO_GSM_DEVICE_SET_CURRENT_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_SET_CURRENT_TIME, FsoGsmDeviceSetCurrentTime))
#define FSO_GSM_DEVICE_SET_CURRENT_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_SET_CURRENT_TIME, FsoGsmDeviceSetCurrentTimeClass))
#define FSO_GSM_IS_DEVICE_SET_CURRENT_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_SET_CURRENT_TIME))
#define FSO_GSM_IS_DEVICE_SET_CURRENT_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_SET_CURRENT_TIME))
#define FSO_GSM_DEVICE_SET_CURRENT_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_SET_CURRENT_TIME, FsoGsmDeviceSetCurrentTimeClass))

typedef struct _FsoGsmDeviceSetCurrentTime FsoGsmDeviceSetCurrentTime;
typedef struct _FsoGsmDeviceSetCurrentTimeClass FsoGsmDeviceSetCurrentTimeClass;
typedef struct _FsoGsmDeviceSetCurrentTimePrivate FsoGsmDeviceSetCurrentTimePrivate;

#define FSO_GSM_TYPE_AT_DEVICE_SET_CURRENT_TIME (fso_gsm_at_device_set_current_time_get_type ())
#define FSO_GSM_AT_DEVICE_SET_CURRENT_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_CURRENT_TIME, FsoGsmAtDeviceSetCurrentTime))
#define FSO_GSM_AT_DEVICE_SET_CURRENT_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_SET_CURRENT_TIME, FsoGsmAtDeviceSetCurrentTimeClass))
#define FSO_GSM_IS_AT_DEVICE_SET_CURRENT_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_CURRENT_TIME))
#define FSO_GSM_IS_AT_DEVICE_SET_CURRENT_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_SET_CURRENT_TIME))
#define FSO_GSM_AT_DEVICE_SET_CURRENT_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_CURRENT_TIME, FsoGsmAtDeviceSetCurrentTimeClass))

typedef struct _FsoGsmAtDeviceSetCurrentTime FsoGsmAtDeviceSetCurrentTime;
typedef struct _FsoGsmAtDeviceSetCurrentTimeClass FsoGsmAtDeviceSetCurrentTimeClass;
typedef struct _FsoGsmAtDeviceSetCurrentTimePrivate FsoGsmAtDeviceSetCurrentTimePrivate;
typedef struct _FsoGsmAtDeviceSetCurrentTimeRunData FsoGsmAtDeviceSetCurrentTimeRunData;

#define FSO_GSM_TYPE_DEVICE_SET_FUNCTIONALITY (fso_gsm_device_set_functionality_get_type ())
#define FSO_GSM_DEVICE_SET_FUNCTIONALITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_SET_FUNCTIONALITY, FsoGsmDeviceSetFunctionality))
#define FSO_GSM_DEVICE_SET_FUNCTIONALITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_SET_FUNCTIONALITY, FsoGsmDeviceSetFunctionalityClass))
#define FSO_GSM_IS_DEVICE_SET_FUNCTIONALITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_SET_FUNCTIONALITY))
#define FSO_GSM_IS_DEVICE_SET_FUNCTIONALITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_SET_FUNCTIONALITY))
#define FSO_GSM_DEVICE_SET_FUNCTIONALITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_SET_FUNCTIONALITY, FsoGsmDeviceSetFunctionalityClass))

typedef struct _FsoGsmDeviceSetFunctionality FsoGsmDeviceSetFunctionality;
typedef struct _FsoGsmDeviceSetFunctionalityClass FsoGsmDeviceSetFunctionalityClass;
typedef struct _FsoGsmDeviceSetFunctionalityPrivate FsoGsmDeviceSetFunctionalityPrivate;

#define FSO_GSM_TYPE_AT_DEVICE_SET_FUNCTIONALITY (fso_gsm_at_device_set_functionality_get_type ())
#define FSO_GSM_AT_DEVICE_SET_FUNCTIONALITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_FUNCTIONALITY, FsoGsmAtDeviceSetFunctionality))
#define FSO_GSM_AT_DEVICE_SET_FUNCTIONALITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_SET_FUNCTIONALITY, FsoGsmAtDeviceSetFunctionalityClass))
#define FSO_GSM_IS_AT_DEVICE_SET_FUNCTIONALITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_FUNCTIONALITY))
#define FSO_GSM_IS_AT_DEVICE_SET_FUNCTIONALITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_SET_FUNCTIONALITY))
#define FSO_GSM_AT_DEVICE_SET_FUNCTIONALITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_FUNCTIONALITY, FsoGsmAtDeviceSetFunctionalityClass))

typedef struct _FsoGsmAtDeviceSetFunctionality FsoGsmAtDeviceSetFunctionality;
typedef struct _FsoGsmAtDeviceSetFunctionalityClass FsoGsmAtDeviceSetFunctionalityClass;
typedef struct _FsoGsmAtDeviceSetFunctionalityPrivate FsoGsmAtDeviceSetFunctionalityPrivate;
typedef struct _FsoGsmAtDeviceSetFunctionalityRunData FsoGsmAtDeviceSetFunctionalityRunData;

#define FSO_GSM_TYPE_DEVICE_SET_MICROPHONE_MUTED (fso_gsm_device_set_microphone_muted_get_type ())
#define FSO_GSM_DEVICE_SET_MICROPHONE_MUTED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_SET_MICROPHONE_MUTED, FsoGsmDeviceSetMicrophoneMuted))
#define FSO_GSM_DEVICE_SET_MICROPHONE_MUTED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_SET_MICROPHONE_MUTED, FsoGsmDeviceSetMicrophoneMutedClass))
#define FSO_GSM_IS_DEVICE_SET_MICROPHONE_MUTED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_SET_MICROPHONE_MUTED))
#define FSO_GSM_IS_DEVICE_SET_MICROPHONE_MUTED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_SET_MICROPHONE_MUTED))
#define FSO_GSM_DEVICE_SET_MICROPHONE_MUTED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_SET_MICROPHONE_MUTED, FsoGsmDeviceSetMicrophoneMutedClass))

typedef struct _FsoGsmDeviceSetMicrophoneMuted FsoGsmDeviceSetMicrophoneMuted;
typedef struct _FsoGsmDeviceSetMicrophoneMutedClass FsoGsmDeviceSetMicrophoneMutedClass;
typedef struct _FsoGsmDeviceSetMicrophoneMutedPrivate FsoGsmDeviceSetMicrophoneMutedPrivate;

#define FSO_GSM_TYPE_AT_DEVICE_SET_MICROPHONE_MUTED (fso_gsm_at_device_set_microphone_muted_get_type ())
#define FSO_GSM_AT_DEVICE_SET_MICROPHONE_MUTED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_MICROPHONE_MUTED, FsoGsmAtDeviceSetMicrophoneMuted))
#define FSO_GSM_AT_DEVICE_SET_MICROPHONE_MUTED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_SET_MICROPHONE_MUTED, FsoGsmAtDeviceSetMicrophoneMutedClass))
#define FSO_GSM_IS_AT_DEVICE_SET_MICROPHONE_MUTED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_MICROPHONE_MUTED))
#define FSO_GSM_IS_AT_DEVICE_SET_MICROPHONE_MUTED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_SET_MICROPHONE_MUTED))
#define FSO_GSM_AT_DEVICE_SET_MICROPHONE_MUTED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_MICROPHONE_MUTED, FsoGsmAtDeviceSetMicrophoneMutedClass))

typedef struct _FsoGsmAtDeviceSetMicrophoneMuted FsoGsmAtDeviceSetMicrophoneMuted;
typedef struct _FsoGsmAtDeviceSetMicrophoneMutedClass FsoGsmAtDeviceSetMicrophoneMutedClass;
typedef struct _FsoGsmAtDeviceSetMicrophoneMutedPrivate FsoGsmAtDeviceSetMicrophoneMutedPrivate;
typedef struct _FsoGsmAtDeviceSetMicrophoneMutedRunData FsoGsmAtDeviceSetMicrophoneMutedRunData;

#define FSO_GSM_TYPE_DEVICE_SET_SPEAKER_VOLUME (fso_gsm_device_set_speaker_volume_get_type ())
#define FSO_GSM_DEVICE_SET_SPEAKER_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_DEVICE_SET_SPEAKER_VOLUME, FsoGsmDeviceSetSpeakerVolume))
#define FSO_GSM_DEVICE_SET_SPEAKER_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_DEVICE_SET_SPEAKER_VOLUME, FsoGsmDeviceSetSpeakerVolumeClass))
#define FSO_GSM_IS_DEVICE_SET_SPEAKER_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_DEVICE_SET_SPEAKER_VOLUME))
#define FSO_GSM_IS_DEVICE_SET_SPEAKER_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_DEVICE_SET_SPEAKER_VOLUME))
#define FSO_GSM_DEVICE_SET_SPEAKER_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_DEVICE_SET_SPEAKER_VOLUME, FsoGsmDeviceSetSpeakerVolumeClass))

typedef struct _FsoGsmDeviceSetSpeakerVolume FsoGsmDeviceSetSpeakerVolume;
typedef struct _FsoGsmDeviceSetSpeakerVolumeClass FsoGsmDeviceSetSpeakerVolumeClass;
typedef struct _FsoGsmDeviceSetSpeakerVolumePrivate FsoGsmDeviceSetSpeakerVolumePrivate;

#define FSO_GSM_TYPE_AT_DEVICE_SET_SPEAKER_VOLUME (fso_gsm_at_device_set_speaker_volume_get_type ())
#define FSO_GSM_AT_DEVICE_SET_SPEAKER_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_SPEAKER_VOLUME, FsoGsmAtDeviceSetSpeakerVolume))
#define FSO_GSM_AT_DEVICE_SET_SPEAKER_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_DEVICE_SET_SPEAKER_VOLUME, FsoGsmAtDeviceSetSpeakerVolumeClass))
#define FSO_GSM_IS_AT_DEVICE_SET_SPEAKER_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_SPEAKER_VOLUME))
#define FSO_GSM_IS_AT_DEVICE_SET_SPEAKER_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_DEVICE_SET_SPEAKER_VOLUME))
#define FSO_GSM_AT_DEVICE_SET_SPEAKER_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_DEVICE_SET_SPEAKER_VOLUME, FsoGsmAtDeviceSetSpeakerVolumeClass))

typedef struct _FsoGsmAtDeviceSetSpeakerVolume FsoGsmAtDeviceSetSpeakerVolume;
typedef struct _FsoGsmAtDeviceSetSpeakerVolumeClass FsoGsmAtDeviceSetSpeakerVolumeClass;
typedef struct _FsoGsmAtDeviceSetSpeakerVolumePrivate FsoGsmAtDeviceSetSpeakerVolumePrivate;
typedef struct _FsoGsmAtDeviceSetSpeakerVolumeRunData FsoGsmAtDeviceSetSpeakerVolumeRunData;

struct _FsoGsmMediatorIface {
	GTypeInterface parent_iface;
};

struct _FsoGsmAbstractMediator {
	GObject parent_instance;
	FsoGsmAbstractMediatorPrivate * priv;
};

struct _FsoGsmAbstractMediatorClass {
	GObjectClass parent_class;
};

struct _FsoGsmDeviceGetAlarmTime {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceGetAlarmTimePrivate * priv;
};

struct _FsoGsmDeviceGetAlarmTimeClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceGetAlarmTime* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceGetAlarmTime* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceGetAlarmTime {
	FsoGsmDeviceGetAlarmTime parent_instance;
	FsoGsmAtDeviceGetAlarmTimePrivate * priv;
};

struct _FsoGsmAtDeviceGetAlarmTimeClass {
	FsoGsmDeviceGetAlarmTimeClass parent_class;
};

struct _FsoGsmChannelIface {
	GTypeInterface parent_iface;
	void (*injectResponse) (FsoGsmChannel* self, const gchar* response);
	void (*suspend) (FsoGsmChannel* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*suspend_finish) (FsoGsmChannel* self, GAsyncResult* _res_);
	void (*resume) (FsoGsmChannel* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*resume_finish) (FsoGsmChannel* self, GAsyncResult* _res_);
};

typedef enum  {
	FSO_GSM_MODEM_STATUS_UNKNOWN,
	FSO_GSM_MODEM_STATUS_CLOSED,
	FSO_GSM_MODEM_STATUS_INITIALIZING,
	FSO_GSM_MODEM_STATUS_ALIVE_NO_SIM,
	FSO_GSM_MODEM_STATUS_ALIVE_SIM_LOCKED,
	FSO_GSM_MODEM_STATUS_ALIVE_SIM_UNLOCKED,
	FSO_GSM_MODEM_STATUS_ALIVE_SIM_READY,
	FSO_GSM_MODEM_STATUS_ALIVE_REGISTERED,
	FSO_GSM_MODEM_STATUS_SUSPENDING,
	FSO_GSM_MODEM_STATUS_SUSPENDED,
	FSO_GSM_MODEM_STATUS_RESUMING,
	FSO_GSM_MODEM_STATUS_CLOSING
} FsoGsmModemStatus;

typedef enum  {
	FSO_GSM_MODEM_NETWORK_STATUS_UNKNOWN,
	FSO_GSM_MODEM_NETWORK_STATUS_UNREGISTERED,
	FSO_GSM_MODEM_NETWORK_STATUS_SEARCHING,
	FSO_GSM_MODEM_NETWORK_STATUS_REGISTERED
} FsoGsmModemNetworkStatus;

struct _FsoGsmAtCommandQueueCommandIface {
	GTypeInterface parent_iface;
	guint (*get_retry) (FsoGsmAtCommandQueueCommand* self);
	guint (*get_timeout) (FsoGsmAtCommandQueueCommand* self);
	gchar* (*get_prefix) (FsoGsmAtCommandQueueCommand* self);
	gchar* (*get_postfix) (FsoGsmAtCommandQueueCommand* self);
	gboolean (*is_valid_prefix) (FsoGsmAtCommandQueueCommand* self, const gchar* line);
};

typedef enum  {
	FSO_GSM_AT_COMMAND_ERROR_UNABLE_TO_PARSE
} FsoGsmAtCommandError;
#define FSO_GSM_AT_COMMAND_ERROR fso_gsm_at_command_error_quark ()
typedef enum  {
	FSO_GSM_CONSTANTS_AT_RESPONSE_VALID = 0,
	FSO_GSM_CONSTANTS_AT_RESPONSE_OK = 1,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CONNECT = 2,
	FSO_GSM_CONSTANTS_AT_RESPONSE_UNEXPECTED_LENGTH = 501,
	FSO_GSM_CONSTANTS_AT_RESPONSE_UNABLE_TO_PARSE = 502,
	FSO_GSM_CONSTANTS_AT_RESPONSE_ERROR = 503,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_START = 1000,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_000_PHONE_FAILURE = 1000,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_001_NO_CONNECTION_TO_PHONE = 1001,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_002_PHONE_ADAPTER_LINK_RESERVED = 1002,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_003_OPERATION_NOT_ALLOWED = 1003,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_004_OPERATION_NOT_SUPPORTED = 1004,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_005_PH_SIM_PIN_REQUIRED = 1005,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_006_PH_FSIM_PIN_REQUIRED = 1006,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_007_PH_FSIM_PUK_REQUIRED = 1007,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_010_SIM_NOT_INSERTED = 1010,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_011_SIM_PIN_REQUIRED = 1011,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_012_SIM_PUK_REQUIRED = 1012,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_013_SIM_FAILURE = 1013,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_014_SIM_BUSY = 1014,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_015_SIM_WRONG = 1015,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_016_INCORRECT_PASSWORD = 1016,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_017_SIM_PIN2_REQUIRED = 1017,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_018_SIM_PUK2_REQUIRED = 1018,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_020_MEMORY_FULL = 1020,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_021_INVALID_INDEX = 1021,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_022_NOT_FOUND = 1022,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_023_MEMORY_FAILURE = 1023,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_024_TEXT_STRING_TOO_LONG = 1024,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_025_INVALID_CHARACTERS_IN_TEXT_STRING = 1025,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_026_DIAL_STRING_TOO_LONG = 1026,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_027_INVALID_CHARACTERS_IN_DIAL_STRING = 1027,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_030_NO_NETWORK_SERVICE = 1030,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_031_NETWORK_TIMEOUT = 1031,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_032_NETWORK_NOT_ALLOWED_EMERGENCY_CALLS_ONLY = 1032,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_040_NETWORK_PERSONALIZATION_PIN_REQUIRED = 1040,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_041_NETWORK_PERSONALIZATION_PUK_REQUIRED = 1041,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_042_NETWORK_SUBSET_PERSONALIZATION_PIN_REQUIRED = 1042,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_043_NETWORK_SUBSET_PERSONALIZATION_PUK_REQUIRED = 1043,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_044_SERVICE_PROVIDER_PERSONALIZATION_PIN_REQUIRED = 1044,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_045_SERVICE_PROVIDER_PERSONALIZATION_PUK_REQUIRED = 1045,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_046_CORPORATE_PERSONALIZATION_PIN_REQUIRED = 1046,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_047_CORPORATE_PERSONALIZATION_PUK_REQUIRED = 1047,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_048_PH_SIM_PUK_REQUIRED = 1048,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_100_UNKNOWN_ERROR = 1100,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_103_GPRS_ILLEGAL_MS = 1103,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_106_GPRS_ILLEGAL_ME = 1106,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_107_GPRS_SERVICES_NOT_ALLOWED = 1107,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_111_GPRS_PLMN_NOT_ALLOWED = 1111,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_112_GPRS_LOCATION_AREA_NOT_ALLOWED = 1112,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_113_GPRS_ROAMING_NOT_ALLOWED_IN_THIS_LOCATION_AREA = 1113,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_126_GPRS_OPERATION_TEMPORARY_NOT_ALLOWED = 1126,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_132_GPRS_SERVICE_OPERATION_NOT_SUPPORTED = 1132,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_133_GPRS_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED = 1133,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_134_GPRS_SERVICE_OPTION_TEMPORARY_OUT_OF_ORDER = 1134,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_148_GPRS_UNSPECIFIED_ERROR = 1148,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_149_GPRS_PDP_AUTHENTICATION_FAILURE = 1149,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_150_GPRS_INVALID_MOBILE_CLASS = 1150,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_256_OPERATION_TEMPORARILY_NOT_ALLOWED = 1256,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_257_CALL_BARRED = 1257,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_258_PHONE_IS_BUSY = 1258,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_259_USER_ABORT = 1259,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_260_INVALID_DIAL_STRING = 1260,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_261_SS_NOT_EXECUTED = 1261,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_262_SIM_BLOCKED = 1262,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_263_INVALID_BLOCK = 1263,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_265_BUSY_TRY_AGAIN = 1265,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_512_FAILED_TO_ABORT_COMMAND = 1512,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_513_ACM_RESET_NEEDED = 1513,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_514_SIM_APPLICATION_TOOLKIT_BUSY = 1514,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_772_SIM_POWERED_DOWN = 1772,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_START = 2000,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_001_UNASSIGNED_NUMBER = 2001,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_008_OPERATOR_DETERMINED_BARRING = 2008,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_010_CALL_BARED = 2010,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_021_SHORT_MESSAGE_TRANSFER_REJECTED = 2021,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_027_DESTINATION_OUT_OF_SERVICE = 2027,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_028_UNIDENTIFIED_SUBSCRIBER = 2028,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_029_FACILITY_REJECTED = 2029,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_030_UNKNOWN_SUBSCRIBER = 2030,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_038_NETWORK_OUT_OF_ORDER = 2038,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_041_TEMPORARY_FAILURE = 2041,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_042_CONGESTION = 2042,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_047_RECOURCES_UNAVAILABLE = 2047,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_050_REQUESTED_FACILITY_NOT_SUBSCRIBED = 2050,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_069_REQUESTED_FACILITY_NOT_IMPLEMENTED = 2069,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_081_INVALID_SHORT_MESSAGE_TRANSFER_REFERENCE_VALUE = 2081,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_095_INVALID_MESSAGE_UNSPECIFIED = 2095,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_096_INVALID_MANDATORY_INFORMATION = 2096,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_097_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 2097,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_098_MESSAGE_NOT_COMPATIBLE_WITH_SHORT_MESSAGE_PROTOCOL = 2098,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_099_INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 2099,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_111_PROTOCOL_ERROR_UNSPECIFIED = 2111,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_127_INTERNETWORKING_UNSPECIFIED = 2127,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_128_TELEMATIC_INTERNETWORKING_NOT_SUPPORTED = 2128,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_129_SHORT_MESSAGE_TYPE_0_NOT_SUPPORTED = 2129,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_130_CANNOT_REPLACE_SHORT_MESSAGE = 2130,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_143_UNSPECIFIED_TP_PID_ERROR = 2143,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_144_DATA_CODE_SCHEME_NOT_SUPPORTED = 2144,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_145_MESSAGE_CLASS_NOT_SUPPORTED = 2145,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_159_UNSPECIFIED_TP_DCS_ERROR = 2159,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_160_COMMAND_CANNOT_BE_ACTIONED = 2160,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_161_COMMAND_UNSUPPORTED = 2161,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_175_UNSPECIFIED_TP_COMMAND_ERROR = 2175,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_176_TPDU_NOT_SUPPORTED = 2176,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_192_SC_BUSY = 2192,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_193_NO_SC_SUBSCRIPTION = 2193,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_194_SC_SYSTEM_FAILURE = 2194,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_195_INVALID_SME_ADDRESS = 2195,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_196_DESTINATION_SME_BARRED = 2196,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_197_SM_REJECTED_DUPLICATE_SM = 2197,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_198_TP_VPF_NOT_SUPPORTED = 2198,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_199_TP_VP_NOT_SUPPORTED = 2199,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_208_D0_SIM_SMS_STORAGE_FULL = 2208,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_209_NO_SMS_STORAGE_CAPABILITY_IN_SIM = 2209,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_210_ERROR_IN_MS = 2210,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_211_MEMORY_CAPACITY_EXCEEDED = 2211,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_212_SIM_APPLICATION_TOOLKIT_BUSY = 2212,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_213_SIM_DATA_DOWNLOAD_ERROR = 2213,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_255_UNSPECIFIED_ERROR_CAUSE = 2255,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_300_ME_FAILURE = 2300,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_301_SMS_SERVICE_OF_ME_RESERVED = 2301,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_302_OPERATION_NOT_ALLOWED = 2302,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_303_OPERATION_NOT_SUPPORTED = 2303,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_304_INVALID_PDU_MODE_PARAMETER = 2304,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_305_INVALID_TEXT_MODE_PARAMETER = 2305,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_310_SIM_NOT_INSERTED = 2310,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_311_SIM_PIN_REQUIRED = 2311,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_312_PH_SIM_PIN_REQUIRED = 2312,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_313_SIM_FAILURE = 2313,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_314_SIM_BUSY = 2314,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_315_SIM_WRONG = 2315,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_316_SIM_PUK_REQUIRED = 2316,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_317_SIM_PIN2_REQUIRED = 2317,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_318_SIM_PUK2_REQUIRED = 2318,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_320_MEMORY_FAILURE = 2320,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_321_INVALID_MEMORY_INDEX = 2321,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_322_MEMORY_FULL = 2322,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_330_SMSC_ADDRESS_UNKNOWN = 2330,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_331_NO_NETWORK_SERVICE = 2331,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_332_NETWORK_TIMEOUT = 2332,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_340_NO_CNMA_EXPECTED = 2340,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_500_UNKNOWN_ERROR = 2500,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_512_FAILED_TO_ABORT_COMMAND = 2512,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_513_ACM_RESET_NEEDED = 2513,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_514_INVALID_STATUS = 2514,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_515_DEVICE_BUSY_OR_INVALID_CHARACTER_IN_STRING = 2515,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_516_INVALID_LENGTH = 2516,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_517_INVALID_CHARACTER_IN_PDU = 2517,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_518_INVALID_PARAMETER = 2518,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_519_INVALID_LENGTH_OR_CHARACTER = 2519,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_520_INVALID_CHARACTER_IN_TEXT = 2520,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_521_TIMER_EXPIRED = 2521,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_522_OPERATION_TEMPORARY_NOT_ALLOWED = 2522,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_532_SIM_NOT_READY = 2532,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_534_CELL_BROADCAST_ERROR_UNKNOWN = 2534,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_535_PROTOCOL_STACK_BUSY = 2535,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_538_INVALID_PARAMETER = 2538,
	FSO_GSM_CONSTANTS_AT_RESPONSE_EXT_ERROR_START = 3000,
	FSO_GSM_CONSTANTS_AT_RESPONSE_EXT_ERROR_0_INVALID_PARAMETERR = 3000
} FsoGsmConstantsAtResponse;

struct _FsoGsmAtCommandIface {
	GTypeInterface parent_iface;
	guint (*get_timeout) (FsoGsmAtCommand* self);
	guint (*get_retry) (FsoGsmAtCommand* self);
	gchar* (*get_prefix) (FsoGsmAtCommand* self);
	gchar* (*get_postfix) (FsoGsmAtCommand* self);
	gboolean (*is_valid_prefix) (FsoGsmAtCommand* self, const gchar* line);
	void (*parse) (FsoGsmAtCommand* self, const gchar* response, GError** error);
	void (*parseMulti) (FsoGsmAtCommand* self, gchar** response, int response_length1, GError** error);
	void (*parseTest) (FsoGsmAtCommand* self, const gchar* response, GError** error);
	gchar* (*encodeString) (FsoGsmAtCommand* self, const gchar* str);
	gchar* (*decodeString) (FsoGsmAtCommand* self, const gchar* str);
	FsoGsmConstantsAtResponse (*validate) (FsoGsmAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateTest) (FsoGsmAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateUrc) (FsoGsmAtCommand* self, const gchar* response);
	FsoGsmConstantsAtResponse (*validateUrcPdu) (FsoGsmAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateOk) (FsoGsmAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateMulti) (FsoGsmAtCommand* self, gchar** response, int response_length1);
};

struct _FsoGsmCallHandlerIface {
	GTypeInterface parent_iface;
	void (*handleIncomingCall) (FsoGsmCallHandler* self, FsoGsmCallInfo* call_info);
	void (*handleConnectingCall) (FsoGsmCallHandler* self, FsoGsmCallInfo* call_info);
	void (*handleEndingCall) (FsoGsmCallHandler* self, FsoGsmCallInfo* call_info);
	void (*addSupplementaryInformation) (FsoGsmCallHandler* self, const gchar* direction, const gchar* info);
	void (*activate) (FsoGsmCallHandler* self, gint id, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*activate_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
	void (*initiate) (FsoGsmCallHandler* self, const gchar* number, const gchar* ctype, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gint (*initiate_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
	void (*hold) (FsoGsmCallHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*hold_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
	void (*release) (FsoGsmCallHandler* self, gint id, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*release_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
	void (*releaseAll) (FsoGsmCallHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*releaseAll_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmISmsStorageIface {
	GTypeInterface parent_iface;
	void (*clean) (FsoGsmISmsStorage* self);
	gint (*addSms) (FsoGsmISmsStorage* self, struct sms* message);
	GeeArrayList* (*keys) (FsoGsmISmsStorage* self);
	void (*message) (FsoGsmISmsStorage* self, const gchar* key, gint index, FreeSmartphoneGSMSIMMessage* result);
	FreeSmartphoneGSMSIMMessage* (*messagebook) (FsoGsmISmsStorage* self, int* result_length1);
	guint16 (*lastReferenceNumber) (FsoGsmISmsStorage* self);
	guint16 (*increasingReferenceNumber) (FsoGsmISmsStorage* self);
	void (*storeTransactionIndizesForSentMessage) (FsoGsmISmsStorage* self, GeeArrayList* hexpdus);
	gint (*confirmReceivedMessage) (FsoGsmISmsStorage* self, gint netreference);
};

struct _FsoGsmSmsHandlerIface {
	GTypeInterface parent_iface;
	void (*handleIncomingSmsOnSim) (FsoGsmSmsHandler* self, guint index, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*handleIncomingSmsOnSim_finish) (FsoGsmSmsHandler* self, GAsyncResult* _res_);
	void (*handleIncomingSms) (FsoGsmSmsHandler* self, const gchar* hexpdu, gint tpdulen, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*handleIncomingSms_finish) (FsoGsmSmsHandler* self, GAsyncResult* _res_);
	void (*handleIncomingSmsReport) (FsoGsmSmsHandler* self, const gchar* hexpdu, gint tpdulen, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*handleIncomingSmsReport_finish) (FsoGsmSmsHandler* self, GAsyncResult* _res_);
	guint16 (*lastReferenceNumber) (FsoGsmSmsHandler* self);
	guint16 (*nextReferenceNumber) (FsoGsmSmsHandler* self);
	GeeArrayList* (*formatTextMessage) (FsoGsmSmsHandler* self, const gchar* number, const gchar* contents, gboolean requestReport);
	void (*storeTransactionIndizesForSentMessage) (FsoGsmSmsHandler* self, GeeArrayList* hexpdus);
	FsoGsmISmsStorage* (*get_storage) (FsoGsmSmsHandler* self);
	void (*set_storage) (FsoGsmSmsHandler* self, FsoGsmISmsStorage* value);
};

struct _FsoGsmPhonebookHandlerIface {
	GTypeInterface parent_iface;
	void (*syncWithSim) (FsoGsmPhonebookHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*syncWithSim_finish) (FsoGsmPhonebookHandler* self, GAsyncResult* _res_);
	FsoGsmPhonebookStorage* (*get_storage) (FsoGsmPhonebookHandler* self);
	void (*set_storage) (FsoGsmPhonebookHandler* self, FsoGsmPhonebookStorage* value);
};

struct _FsoGsmWatchDogIface {
	GTypeInterface parent_iface;
	void (*check) (FsoGsmWatchDog* self);
	void (*resetUnlockMarker) (FsoGsmWatchDog* self);
};

struct _FsoGsmIPdpHandlerIface {
	GTypeInterface parent_iface;
	void (*activate) (FsoGsmIPdpHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*activate_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_, GError** error);
	void (*deactivate) (FsoGsmIPdpHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*deactivate_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_, GError** error);
	void (*statusUpdate) (FsoGsmIPdpHandler* self, const gchar* status, GHashTable* properties, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*statusUpdate_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_);
	void (*connectedWithNewDefaultRoute) (FsoGsmIPdpHandler* self, FsoGsmRouteInfo* route, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*connectedWithNewDefaultRoute_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_);
	void (*disconnected) (FsoGsmIPdpHandler* self);
	void (*syncStatus) (FsoGsmIPdpHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*syncStatus_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_);
	FreeSmartphoneGSMContextStatus (*get_status) (FsoGsmIPdpHandler* self);
	void (*set_status) (FsoGsmIPdpHandler* self, FreeSmartphoneGSMContextStatus value);
	GHashTable* (*get_properties) (FsoGsmIPdpHandler* self);
	void (*set_properties) (FsoGsmIPdpHandler* self, GHashTable* value);
};

struct _FsoGsmModemIface {
	GTypeInterface parent_iface;
	void (*open) (FsoGsmModem* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*open_finish) (FsoGsmModem* self, GAsyncResult* _res_);
	void (*close) (FsoGsmModem* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*close_finish) (FsoGsmModem* self, GAsyncResult* _res_);
	void (*suspend) (FsoGsmModem* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*suspend_finish) (FsoGsmModem* self, GAsyncResult* _res_);
	void (*resume) (FsoGsmModem* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*resume_finish) (FsoGsmModem* self, GAsyncResult* _res_);
	void (*injectResponse) (FsoGsmModem* self, const gchar* command, const gchar* channel, GError** error);
	void (*setFunctionality) (FsoGsmModem* self, const gchar* level, gboolean autoregister, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*setFunctionality_finish) (FsoGsmModem* self, GAsyncResult* _res_, GError** error);
	void (*registerChannel) (FsoGsmModem* self, const gchar* name, FsoGsmChannel* channel);
	void (*advanceToState) (FsoGsmModem* self, FsoGsmModemStatus status, gboolean force);
	void (*advanceNetworkState) (FsoGsmModem* self, FsoGsmModemNetworkStatus status);
	FsoGsmAtCommandSequence* (*atCommandSequence) (FsoGsmModem* self, const gchar* channel, const gchar* purpose);
	gpointer (*createMediator) (FsoGsmModem* self, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, GError** error);
	gpointer (*createAtCommand) (FsoGsmModem* self, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, const gchar* command);
	gpointer (*theDevice) (FsoGsmModem* self, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func);
	gchar* (*allocateDataPort) (FsoGsmModem* self);
	void (*releaseDataPort) (FsoGsmModem* self);
	void (*processAtCommandAsync) (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gchar** (*processAtCommandAsync_finish) (FsoGsmModem* self, GAsyncResult* _res_, int* result_length1);
	void (*processAtPduCommandAsync) (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gchar** (*processAtPduCommandAsync_finish) (FsoGsmModem* self, GAsyncResult* _res_, int* result_length1);
	void (*sendAtCommand) (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries);
	FsoGsmChannel* (*channel) (FsoGsmModem* self, const gchar* category);
	FsoGsmModemStatus (*status) (FsoGsmModem* self);
	FsoGsmModemNetworkStatus (*network_status) (FsoGsmModem* self);
	FreeSmartphoneGSMDeviceStatus (*externalStatus) (FsoGsmModem* self);
	FsoGsmModemData* (*data) (FsoGsmModem* self);
	void (*registerAtCommandSequence) (FsoGsmModem* self, const gchar* channel, const gchar* purpose, FsoGsmAtCommandSequence* sequence);
	gboolean (*isAlive) (FsoGsmModem* self);
	GObject* (*get_parent) (FsoGsmModem* self);
	void (*set_parent) (FsoGsmModem* self, GObject* value);
	FsoGsmCallHandler* (*get_callhandler) (FsoGsmModem* self);
	void (*set_callhandler) (FsoGsmModem* self, FsoGsmCallHandler* value);
	FsoGsmSmsHandler* (*get_smshandler) (FsoGsmModem* self);
	void (*set_smshandler) (FsoGsmModem* self, FsoGsmSmsHandler* value);
	FsoGsmPhonebookHandler* (*get_pbhandler) (FsoGsmModem* self);
	void (*set_pbhandler) (FsoGsmModem* self, FsoGsmPhonebookHandler* value);
	FsoGsmWatchDog* (*get_watchdog) (FsoGsmModem* self);
	void (*set_watchdog) (FsoGsmModem* self, FsoGsmWatchDog* value);
	FsoGsmIPdpHandler* (*get_pdphandler) (FsoGsmModem* self);
	void (*set_pdphandler) (FsoGsmModem* self, FsoGsmIPdpHandler* value);
};

struct _FsoGsmAbstractAtCommand {
	GObject parent_instance;
	FsoGsmAbstractAtCommandPrivate * priv;
	GRegex* re;
	GRegex* tere;
	GMatchInfo* mi;
	gchar** prefix;
	gint prefix_length1;
	gint length;
};

struct _FsoGsmAbstractAtCommandClass {
	GObjectClass parent_class;
	void (*parse) (FsoGsmAbstractAtCommand* self, const gchar* response, GError** error);
	void (*parseTest) (FsoGsmAbstractAtCommand* self, const gchar* response, GError** error);
	void (*parseMulti) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1, GError** error);
	FsoGsmConstantsAtResponse (*validateOk) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validate) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateTest) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateMulti) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateUrc) (FsoGsmAbstractAtCommand* self, const gchar* response);
	FsoGsmConstantsAtResponse (*validateUrcPdu) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	guint (*get_timeout) (FsoGsmAbstractAtCommand* self);
	guint (*get_retry) (FsoGsmAbstractAtCommand* self);
	gchar* (*get_prefix) (FsoGsmAbstractAtCommand* self);
	gchar* (*get_postfix) (FsoGsmAbstractAtCommand* self);
};

struct _FsoGsmPlusCALA {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCALAPrivate * priv;
	gint year;
	gint month;
	gint day;
	gint hour;
	gint minute;
	gint second;
	gint tzoffset;
};

struct _FsoGsmPlusCALAClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmModemData {
	GObject parent_instance;
	FsoGsmModemDataPrivate * priv;
	gint alarmCleared;
	gboolean simHasReadySignal;
	guint simReadyTimeout;
	gint speakerVolumeMinimum;
	gint speakerVolumeMaximum;
	FreeSmartphoneGSMSIMAuthStatus simAuthStatus;
	gboolean simBuffersSms;
	GeeHashMap* simPhonebooks;
	gchar* charset;
	GeeHashMap* cmdSequences;
	gchar* functionality;
	gchar* simPin;
	gboolean keepRegistration;
	gboolean supportsGSM;
	gboolean supportsCDMA;
	gboolean supportsVoice;
	gboolean supportsCSD;
	gchar* supportsPDP;
	gchar* supportsFAX;
	GHashTable* simOperatorbook;
	gchar* simIssuer;
	gchar* pppCommand;
	gchar* pppPort;
	gchar** pppOptions;
	gint pppOptions_length1;
	FsoGsmContextParams* contextParams;
	gboolean roamingAllowed;
	gchar* atCommandCancelOutgoing;
	gchar* atCommandRejectIncoming;
	FsoGsmNetworkTimeReport* networkTimeReport;
};

struct _FsoGsmModemDataClass {
	GObjectClass parent_class;
};

struct _FsoGsmAtDeviceGetAlarmTimeRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceGetAlarmTime* self;
	FsoGsmModem* _tmp0_;
	FsoGsmModemData* _tmp1_;
	FsoGsmModemData* data;
	FsoGsmModem* _tmp2_;
	gpointer _tmp3_;
	FsoGsmPlusCALA* cmd;
	FsoGsmModem* _tmp4_;
	FsoGsmPlusCALA* _tmp5_;
	FsoGsmPlusCALA* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gint _tmp9_;
	gchar** _tmp10_;
	gchar** _tmp11_;
	gint _tmp11__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCALA* _tmp12_;
	gchar** _tmp13_;
	gint _tmp13__length1;
	GError* e;
	GError* _tmp14_;
	const gchar* _tmp15_;
	GError* _tmp16_;
	FsoGsmPlusCALA* _tmp17_;
	gint _tmp18_;
	FsoGsmPlusCALA* _tmp19_;
	gint _tmp20_;
	FsoGsmPlusCALA* _tmp21_;
	gint _tmp22_;
	FsoGsmPlusCALA* _tmp23_;
	gint _tmp24_;
	FsoGsmPlusCALA* _tmp25_;
	gint _tmp26_;
	FsoGsmPlusCALA* _tmp27_;
	gint _tmp28_;
	gchar* _tmp29_;
	gchar* timestr;
	gchar* _tmp30_;
	gchar* formatstr;
	struct tm t;
	const gchar* _tmp31_;
	const gchar* _tmp32_;
	struct tm _tmp33_;
	time_t _tmp34_;
	gint _tmp35_;
	gint _tmp36_;
	FsoGsmModemData* _tmp37_;
	gint _tmp38_;
	GError * _inner_error_;
};

struct _FsoGsmDeviceGetCurrentTime {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceGetCurrentTimePrivate * priv;
};

struct _FsoGsmDeviceGetCurrentTimeClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceGetCurrentTime* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceGetCurrentTime* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceGetCurrentTime {
	FsoGsmDeviceGetCurrentTime parent_instance;
	FsoGsmAtDeviceGetCurrentTimePrivate * priv;
};

struct _FsoGsmAtDeviceGetCurrentTimeClass {
	FsoGsmDeviceGetCurrentTimeClass parent_class;
};

struct _FsoGsmPlusCCLK {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCCLKPrivate * priv;
	gint year;
	gint month;
	gint day;
	gint hour;
	gint minute;
	gint second;
	gint tzoffset;
};

struct _FsoGsmPlusCCLKClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtDeviceGetCurrentTimeRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceGetCurrentTime* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCCLK* cmd;
	FsoGsmModem* _tmp2_;
	FsoGsmPlusCCLK* _tmp3_;
	FsoGsmPlusCCLK* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gint _tmp7_;
	gchar** _tmp8_;
	gchar** _tmp9_;
	gint _tmp9__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCCLK* _tmp10_;
	gchar** _tmp11_;
	gint _tmp11__length1;
	GError* e;
	GError* _tmp12_;
	const gchar* _tmp13_;
	GError* _tmp14_;
	FsoGsmPlusCCLK* _tmp15_;
	gint _tmp16_;
	FsoGsmPlusCCLK* _tmp17_;
	gint _tmp18_;
	FsoGsmPlusCCLK* _tmp19_;
	gint _tmp20_;
	FsoGsmPlusCCLK* _tmp21_;
	gint _tmp22_;
	FsoGsmPlusCCLK* _tmp23_;
	gint _tmp24_;
	FsoGsmPlusCCLK* _tmp25_;
	gint _tmp26_;
	gchar* _tmp27_;
	gchar* timestr;
	gchar* _tmp28_;
	gchar* formatstr;
	struct tm t;
	const gchar* _tmp29_;
	const gchar* _tmp30_;
	struct tm _tmp31_;
	time_t _tmp32_;
	GError * _inner_error_;
};

struct _FsoGsmDeviceGetFunctionality {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceGetFunctionalityPrivate * priv;
};

struct _FsoGsmDeviceGetFunctionalityClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceGetFunctionality* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceGetFunctionality* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceGetFunctionality {
	FsoGsmDeviceGetFunctionality parent_instance;
	FsoGsmAtDeviceGetFunctionalityPrivate * priv;
};

struct _FsoGsmAtDeviceGetFunctionalityClass {
	FsoGsmDeviceGetFunctionalityClass parent_class;
};

struct _FsoGsmSimpleAtCommand {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmSimpleAtCommandPrivate * priv;
	gpointer value;
	gchar* righthandside;
	gint min;
	gint max;
};

struct _FsoGsmSimpleAtCommandClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtDeviceGetFunctionalityRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceGetFunctionality* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCFUN* cfun;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmConstants* _tmp8_;
	FsoGsmConstants* _tmp9_;
	gconstpointer _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	FsoGsmModem* _tmp13_;
	FsoGsmModemData* _tmp14_;
	FsoGsmModemData* _tmp15_;
	gboolean _tmp16_;
	FsoGsmModem* _tmp17_;
	FsoGsmModemData* _tmp18_;
	FsoGsmModemData* _tmp19_;
	const gchar* _tmp20_;
	GError * _inner_error_;
};

struct _FsoGsmDeviceGetInformation {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceGetInformationPrivate * priv;
};

struct _FsoGsmDeviceGetInformationClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceGetInformation* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceGetInformation* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceGetInformation {
	FsoGsmDeviceGetInformation parent_instance;
	FsoGsmAtDeviceGetInformationPrivate * priv;
};

struct _FsoGsmAtDeviceGetInformationClass {
	FsoGsmDeviceGetInformationClass parent_class;
};

struct _FsoGsmAtDeviceGetInformationRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceGetInformation* self;
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	GHashTable* _tmp3_;
	GVariant* value;
	FsoGsmModem* _tmp4_;
	gpointer _tmp5_;
	FsoGsmPlusCGMR* cgmr;
	FsoGsmModem* _tmp6_;
	FsoGsmPlusCGMR* _tmp7_;
	FsoGsmPlusCGMR* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gint _tmp11_;
	gchar** _tmp12_;
	gchar** _tmp13_;
	gint _tmp13__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCGMR* _tmp14_;
	gchar** _tmp15_;
	gint _tmp15__length1;
	FsoGsmConstantsAtResponse _tmp16_;
	FsoGsmPlusCGMR* _tmp17_;
	gconstpointer _tmp18_;
	GVariant* _tmp19_;
	GHashTable* _tmp20_;
	GHashTable* _tmp21_;
	gchar* _tmp22_;
	GVariant* _tmp23_;
	GVariant* _tmp24_;
	GHashTable* _tmp25_;
	GHashTable* _tmp26_;
	gchar* _tmp27_;
	GVariant* _tmp28_;
	FsoGsmModem* _tmp29_;
	gpointer _tmp30_;
	FsoGsmPlusCGMM* cgmm;
	FsoGsmModem* _tmp31_;
	FsoGsmPlusCGMM* _tmp32_;
	FsoGsmPlusCGMM* _tmp33_;
	gchar* _tmp34_;
	gchar* _tmp35_;
	gint _tmp36_;
	gchar** _tmp37_;
	FsoGsmPlusCGMM* _tmp38_;
	gchar** _tmp39_;
	gint _tmp39__length1;
	FsoGsmConstantsAtResponse _tmp40_;
	FsoGsmPlusCGMM* _tmp41_;
	gconstpointer _tmp42_;
	GVariant* _tmp43_;
	GHashTable* _tmp44_;
	GHashTable* _tmp45_;
	gchar* _tmp46_;
	GVariant* _tmp47_;
	GVariant* _tmp48_;
	GHashTable* _tmp49_;
	GHashTable* _tmp50_;
	gchar* _tmp51_;
	GVariant* _tmp52_;
	FsoGsmModem* _tmp53_;
	gpointer _tmp54_;
	FsoGsmPlusCGMI* cgmi;
	FsoGsmModem* _tmp55_;
	FsoGsmPlusCGMI* _tmp56_;
	FsoGsmPlusCGMI* _tmp57_;
	gchar* _tmp58_;
	gchar* _tmp59_;
	gint _tmp60_;
	gchar** _tmp61_;
	FsoGsmPlusCGMI* _tmp62_;
	gchar** _tmp63_;
	gint _tmp63__length1;
	FsoGsmConstantsAtResponse _tmp64_;
	FsoGsmPlusCGMI* _tmp65_;
	gconstpointer _tmp66_;
	GVariant* _tmp67_;
	GHashTable* _tmp68_;
	GHashTable* _tmp69_;
	gchar* _tmp70_;
	GVariant* _tmp71_;
	GVariant* _tmp72_;
	GHashTable* _tmp73_;
	GHashTable* _tmp74_;
	gchar* _tmp75_;
	GVariant* _tmp76_;
	FsoGsmModem* _tmp77_;
	gpointer _tmp78_;
	FsoGsmPlusCGSN* cgsn;
	FsoGsmModem* _tmp79_;
	FsoGsmPlusCGSN* _tmp80_;
	FsoGsmPlusCGSN* _tmp81_;
	gchar* _tmp82_;
	gchar* _tmp83_;
	gint _tmp84_;
	gchar** _tmp85_;
	FsoGsmPlusCGSN* _tmp86_;
	gchar** _tmp87_;
	gint _tmp87__length1;
	FsoGsmConstantsAtResponse _tmp88_;
	FsoGsmPlusCGSN* _tmp89_;
	gconstpointer _tmp90_;
	GVariant* _tmp91_;
	GHashTable* _tmp92_;
	GHashTable* _tmp93_;
	gchar* _tmp94_;
	GVariant* _tmp95_;
	GVariant* _tmp96_;
	GHashTable* _tmp97_;
	GHashTable* _tmp98_;
	gchar* _tmp99_;
	GVariant* _tmp100_;
	FsoGsmModem* _tmp101_;
	gpointer _tmp102_;
	FsoGsmPlusCMICKEY* cmickey;
	FsoGsmModem* _tmp103_;
	FsoGsmPlusCMICKEY* _tmp104_;
	FsoGsmPlusCMICKEY* _tmp105_;
	gchar* _tmp106_;
	gchar* _tmp107_;
	gint _tmp108_;
	gchar** _tmp109_;
	FsoGsmPlusCMICKEY* _tmp110_;
	gchar** _tmp111_;
	gint _tmp111__length1;
	FsoGsmConstantsAtResponse _tmp112_;
	FsoGsmPlusCMICKEY* _tmp113_;
	gconstpointer _tmp114_;
	GVariant* _tmp115_;
	GHashTable* _tmp116_;
	GHashTable* _tmp117_;
	gchar* _tmp118_;
	GVariant* _tmp119_;
	GVariant* _tmp120_;
};

struct _FsoGsmDeviceGetFeatures {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceGetFeaturesPrivate * priv;
};

struct _FsoGsmDeviceGetFeaturesClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceGetFeatures* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceGetFeatures* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceGetFeatures {
	FsoGsmDeviceGetFeatures parent_instance;
	FsoGsmAtDeviceGetFeaturesPrivate * priv;
};

struct _FsoGsmAtDeviceGetFeaturesClass {
	FsoGsmDeviceGetFeaturesClass parent_class;
};

struct _FsoGsmPlusCLCK {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCLCKPrivate * priv;
	gboolean enabled;
	gint klass;
	gchar* facilities;
};

struct _FsoGsmPlusCLCKClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtDeviceGetFeaturesRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceGetFeatures* self;
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	GHashTable* _tmp3_;
	FsoGsmModem* _tmp4_;
	FsoGsmModemData* _tmp5_;
	FsoGsmModemData* data;
	GHashTable* _tmp6_;
	GHashTable* _tmp7_;
	gchar* _tmp8_;
	FsoGsmModemData* _tmp9_;
	gboolean _tmp10_;
	GVariant* _tmp11_;
	GHashTable* _tmp12_;
	GHashTable* _tmp13_;
	gchar* _tmp14_;
	FsoGsmModemData* _tmp15_;
	gboolean _tmp16_;
	GVariant* _tmp17_;
	GHashTable* _tmp18_;
	GHashTable* _tmp19_;
	gchar* _tmp20_;
	FsoGsmModemData* _tmp21_;
	gboolean _tmp22_;
	GVariant* _tmp23_;
	GHashTable* _tmp24_;
	GHashTable* _tmp25_;
	gchar* _tmp26_;
	FsoGsmModemData* _tmp27_;
	gboolean _tmp28_;
	GVariant* _tmp29_;
	GHashTable* _tmp30_;
	GHashTable* _tmp31_;
	gchar* _tmp32_;
	FsoGsmModemData* _tmp33_;
	const gchar* _tmp34_;
	GVariant* _tmp35_;
	FsoGsmModem* _tmp36_;
	gpointer _tmp37_;
	FsoGsmPlusGCAP* gcap;
	FsoGsmModem* _tmp38_;
	FsoGsmPlusGCAP* _tmp39_;
	FsoGsmPlusGCAP* _tmp40_;
	gchar* _tmp41_;
	gchar* _tmp42_;
	gint _tmp43_;
	gchar** _tmp44_;
	gchar** _tmp45_;
	gint _tmp45__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusGCAP* _tmp46_;
	gchar** _tmp47_;
	gint _tmp47__length1;
	FsoGsmConstantsAtResponse _tmp48_;
	gboolean _tmp49_;
	FsoGsmPlusGCAP* _tmp50_;
	gconstpointer _tmp51_;
	gboolean _tmp52_;
	FsoGsmModemData* _tmp53_;
	gboolean _tmp54_;
	gboolean _tmp55_;
	GHashTable* _tmp56_;
	GHashTable* _tmp57_;
	gchar* _tmp58_;
	GVariant* _tmp59_;
	FsoGsmModem* _tmp60_;
	gpointer _tmp61_;
	FsoGsmPlusCGCLASS* cgclass;
	FsoGsmModem* _tmp62_;
	FsoGsmPlusCGCLASS* _tmp63_;
	FsoGsmPlusCGCLASS* _tmp64_;
	gchar* _tmp65_;
	gchar* _tmp66_;
	gint _tmp67_;
	gchar** _tmp68_;
	FsoGsmPlusCGCLASS* _tmp69_;
	gchar** _tmp70_;
	gint _tmp70__length1;
	FsoGsmConstantsAtResponse _tmp71_;
	GHashTable* _tmp72_;
	GHashTable* _tmp73_;
	gchar* _tmp74_;
	FsoGsmPlusCGCLASS* _tmp75_;
	const gchar* _tmp76_;
	GVariant* _tmp77_;
	FsoGsmModem* _tmp78_;
	gpointer _tmp79_;
	FsoGsmPlusFCLASS* fclass;
	FsoGsmModem* _tmp80_;
	FsoGsmPlusFCLASS* _tmp81_;
	FsoGsmPlusFCLASS* _tmp82_;
	gchar* _tmp83_;
	gchar* _tmp84_;
	gint _tmp85_;
	gchar** _tmp86_;
	FsoGsmPlusFCLASS* _tmp87_;
	gchar** _tmp88_;
	gint _tmp88__length1;
	FsoGsmConstantsAtResponse _tmp89_;
	GHashTable* _tmp90_;
	GHashTable* _tmp91_;
	gchar* _tmp92_;
	FsoGsmPlusFCLASS* _tmp93_;
	const gchar* _tmp94_;
	GVariant* _tmp95_;
	FsoGsmModem* _tmp96_;
	gpointer _tmp97_;
	FsoGsmPlusCLCK* fac;
	FsoGsmModem* _tmp98_;
	FsoGsmPlusCLCK* _tmp99_;
	FsoGsmPlusCLCK* _tmp100_;
	gchar* _tmp101_;
	gchar* _tmp102_;
	gint _tmp103_;
	gchar** _tmp104_;
	FsoGsmPlusCLCK* _tmp105_;
	gchar** _tmp106_;
	gint _tmp106__length1;
	FsoGsmConstantsAtResponse _tmp107_;
	GHashTable* _tmp108_;
	GHashTable* _tmp109_;
	gchar* _tmp110_;
	FsoGsmPlusCLCK* _tmp111_;
	const gchar* _tmp112_;
	GVariant* _tmp113_;
};

struct _FsoGsmDeviceGetMicrophoneMuted {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceGetMicrophoneMutedPrivate * priv;
};

struct _FsoGsmDeviceGetMicrophoneMutedClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceGetMicrophoneMuted* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceGetMicrophoneMuted* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceGetMicrophoneMuted {
	FsoGsmDeviceGetMicrophoneMuted parent_instance;
	FsoGsmAtDeviceGetMicrophoneMutedPrivate * priv;
};

struct _FsoGsmAtDeviceGetMicrophoneMutedClass {
	FsoGsmDeviceGetMicrophoneMutedClass parent_class;
};

struct _FsoGsmAtDeviceGetMicrophoneMutedRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceGetMicrophoneMuted* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCMUT* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	gconstpointer _tmp8_;
	GError * _inner_error_;
};

struct _FsoGsmDeviceGetSimBuffersSms {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceGetSimBuffersSmsPrivate * priv;
};

struct _FsoGsmDeviceGetSimBuffersSmsClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceGetSimBuffersSms* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceGetSimBuffersSms* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceGetSimBuffersSms {
	FsoGsmDeviceGetSimBuffersSms parent_instance;
	FsoGsmAtDeviceGetSimBuffersSmsPrivate * priv;
};

struct _FsoGsmAtDeviceGetSimBuffersSmsClass {
	FsoGsmDeviceGetSimBuffersSmsClass parent_class;
};

struct _FsoGsmPlusCNMI {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCNMIPrivate * priv;
	gint mode;
	gint mt;
	gint bm;
	gint ds;
	gint bfr;
};

struct _FsoGsmPlusCNMIClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtDeviceGetSimBuffersSmsRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceGetSimBuffersSms* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCNMI* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	gint _tmp8_;
	GError * _inner_error_;
};

struct _FsoGsmDeviceGetSpeakerVolume {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceGetSpeakerVolumePrivate * priv;
};

struct _FsoGsmDeviceGetSpeakerVolumeClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceGetSpeakerVolume* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceGetSpeakerVolume* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceGetSpeakerVolume {
	FsoGsmDeviceGetSpeakerVolume parent_instance;
	FsoGsmAtDeviceGetSpeakerVolumePrivate * priv;
};

struct _FsoGsmAtDeviceGetSpeakerVolumeClass {
	FsoGsmDeviceGetSpeakerVolumeClass parent_class;
};

struct _FsoGsmAtDeviceGetSpeakerVolumeRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceGetSpeakerVolume* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCLVL* cmd;
	FsoGsmModem* _tmp2_;
	FsoGsmPlusCLVL* _tmp3_;
	FsoGsmPlusCLVL* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gint _tmp7_;
	gchar** _tmp8_;
	gchar** _tmp9_;
	gint _tmp9__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCLVL* _tmp10_;
	gchar** _tmp11_;
	gint _tmp11__length1;
	FsoGsmModem* _tmp12_;
	FsoGsmModemData* _tmp13_;
	FsoGsmModemData* data;
	FsoGsmModemData* _tmp14_;
	gint _tmp15_;
	FsoGsmModemData* _tmp16_;
	gint _tmp17_;
	gdouble interval;
	FsoGsmModemData* _tmp18_;
	gint _tmp19_;
	FsoGsmPlusCLVL* _tmp20_;
	gconstpointer _tmp21_;
	gdouble _tmp22_;
	gdouble _tmp23_;
	GError * _inner_error_;
};

struct _FsoGsmDeviceGetPowerStatus {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceGetPowerStatusPrivate * priv;
};

struct _FsoGsmDeviceGetPowerStatusClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceGetPowerStatus* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceGetPowerStatus* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceGetPowerStatus {
	FsoGsmDeviceGetPowerStatus parent_instance;
	FsoGsmAtDeviceGetPowerStatusPrivate * priv;
};

struct _FsoGsmAtDeviceGetPowerStatusClass {
	FsoGsmDeviceGetPowerStatusClass parent_class;
};

typedef enum  {
	FSO_GSM_PLUS_CBC_STATUS_DISCHARGING = 0,
	FSO_GSM_PLUS_CBC_STATUS_CHARGING = 1,
	FSO_GSM_PLUS_CBC_STATUS_AC = 2,
	FSO_GSM_PLUS_CBC_STATUS_UNKNOWN = 3
} FsoGsmPlusCBCStatus;

struct _FsoGsmPlusCBC {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCBCPrivate * priv;
	FsoGsmPlusCBCStatus status;
	gint level;
};

struct _FsoGsmPlusCBCClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtDeviceGetPowerStatusRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceGetPowerStatus* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCBC* cmd;
	FsoGsmModem* _tmp2_;
	FsoGsmPlusCBC* _tmp3_;
	FsoGsmPlusCBC* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gint _tmp7_;
	gchar** _tmp8_;
	gchar** _tmp9_;
	gint _tmp9__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCBC* _tmp10_;
	gchar** _tmp11_;
	gint _tmp11__length1;
	FsoGsmPlusCBC* _tmp12_;
	FsoGsmPlusCBCStatus _tmp13_;
	FsoGsmPlusCBC* _tmp14_;
	gint _tmp15_;
	FsoGsmPlusCBC* _tmp16_;
	gint _tmp17_;
	FsoGsmPlusCBC* _tmp18_;
	gint _tmp19_;
	FsoGsmPlusCBC* _tmp20_;
	gint _tmp21_;
	GError * _inner_error_;
};

struct _FsoGsmDeviceSetAlarmTime {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceSetAlarmTimePrivate * priv;
};

struct _FsoGsmDeviceSetAlarmTimeClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceSetAlarmTime* self, gint since_epoch, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceSetAlarmTime* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceSetAlarmTime {
	FsoGsmDeviceSetAlarmTime parent_instance;
	FsoGsmAtDeviceSetAlarmTimePrivate * priv;
};

struct _FsoGsmAtDeviceSetAlarmTimeClass {
	FsoGsmDeviceSetAlarmTimeClass parent_class;
};

struct _FsoGsmAtDeviceSetAlarmTimeRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceSetAlarmTime* self;
	gint since_epoch;
	gint _tmp0_;
	struct tm _tmp1_;
	struct tm t;
	FsoGsmModem* _tmp2_;
	gpointer _tmp3_;
	FsoGsmPlusCALA* cmd;
	gchar* _tmp4_;
	gint _tmp5_;
	FsoGsmPlusCALA* _tmp6_;
	struct tm _tmp7_;
	gint _tmp8_;
	struct tm _tmp9_;
	gint _tmp10_;
	struct tm _tmp11_;
	gint _tmp12_;
	struct tm _tmp13_;
	gint _tmp14_;
	struct tm _tmp15_;
	gint _tmp16_;
	struct tm _tmp17_;
	gint _tmp18_;
	gchar* _tmp19_;
	FsoGsmPlusCALA* _tmp20_;
	gchar* _tmp21_;
	FsoGsmModem* _tmp22_;
	FsoGsmPlusCALA* _tmp23_;
	const gchar* _tmp24_;
	gint _tmp25_;
	gchar** _tmp26_;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCALA* _tmp27_;
	gchar** _tmp28_;
	gint _tmp28__length1;
	GError* e;
	GError* _tmp29_;
	const gchar* _tmp30_;
	GError* _tmp31_;
	GError * _inner_error_;
};

struct _FsoGsmDeviceSetCurrentTime {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceSetCurrentTimePrivate * priv;
};

struct _FsoGsmDeviceSetCurrentTimeClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceSetCurrentTime* self, gint since_epoch, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceSetCurrentTime* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceSetCurrentTime {
	FsoGsmDeviceSetCurrentTime parent_instance;
	FsoGsmAtDeviceSetCurrentTimePrivate * priv;
};

struct _FsoGsmAtDeviceSetCurrentTimeClass {
	FsoGsmDeviceSetCurrentTimeClass parent_class;
};

struct _FsoGsmAtDeviceSetCurrentTimeRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceSetCurrentTime* self;
	gint since_epoch;
	gint _tmp0_;
	struct tm _tmp1_;
	struct tm t;
	FsoGsmModem* _tmp2_;
	gpointer _tmp3_;
	FsoGsmPlusCCLK* cmd;
	FsoGsmModem* _tmp4_;
	FsoGsmPlusCCLK* _tmp5_;
	FsoGsmPlusCCLK* _tmp6_;
	struct tm _tmp7_;
	gint _tmp8_;
	struct tm _tmp9_;
	gint _tmp10_;
	struct tm _tmp11_;
	gint _tmp12_;
	struct tm _tmp13_;
	gint _tmp14_;
	struct tm _tmp15_;
	gint _tmp16_;
	struct tm _tmp17_;
	gint _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gint _tmp21_;
	gchar** _tmp22_;
	gchar** _tmp23_;
	gint _tmp23__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCCLK* _tmp24_;
	gchar** _tmp25_;
	gint _tmp25__length1;
	GError* e;
	GError* _tmp26_;
	const gchar* _tmp27_;
	GError* _tmp28_;
	GError * _inner_error_;
};

struct _FsoGsmDeviceSetFunctionality {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceSetFunctionalityPrivate * priv;
};

struct _FsoGsmDeviceSetFunctionalityClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceSetFunctionality* self, const gchar* level, gboolean autoregister, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceSetFunctionality* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceSetFunctionality {
	FsoGsmDeviceSetFunctionality parent_instance;
	FsoGsmAtDeviceSetFunctionalityPrivate * priv;
};

struct _FsoGsmAtDeviceSetFunctionalityClass {
	FsoGsmDeviceSetFunctionalityClass parent_class;
};

struct _FsoGsmAtDeviceSetFunctionalityRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceSetFunctionality* self;
	gchar* level;
	gboolean autoregister;
	gchar* pin;
	FsoGsmConstants* _tmp0_;
	FsoGsmConstants* _tmp1_;
	const gchar* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	gint value;
	GError* _tmp5_;
	FsoGsmModem* _tmp6_;
	gpointer _tmp7_;
	FsoGsmPlusCFUN* cmd;
	FsoGsmModem* _tmp8_;
	FsoGsmPlusCFUN* _tmp9_;
	FsoGsmPlusCFUN* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gint _tmp13_;
	gchar** _tmp14_;
	gchar** _tmp15_;
	gint _tmp15__length1;
	gchar** queryanswer;
	gint queryanswer_length1;
	gint _queryanswer_size_;
	FsoGsmPlusCFUN* _tmp16_;
	gchar** _tmp17_;
	gint _tmp17__length1;
	FsoGsmConstants* _tmp18_;
	FsoGsmConstants* _tmp19_;
	FsoGsmPlusCFUN* _tmp20_;
	gconstpointer _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* curlevel;
	const gchar* _tmp24_;
	const gchar* _tmp25_;
	FsoGsmModem* _tmp26_;
	FsoGsmPlusCFUN* _tmp27_;
	FsoGsmPlusCFUN* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gint _tmp31_;
	gchar** _tmp32_;
	gchar** _tmp33_;
	gint _tmp33__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCFUN* _tmp34_;
	gchar** _tmp35_;
	gint _tmp35__length1;
	FsoGsmConstantsAtResponse* _tmp36_;
	FsoGsmConstantsAtResponse* _tmp37_;
	gint _tmp37__length1;
	FsoGsmModem* _tmp38_;
	FsoGsmModemData* _tmp39_;
	FsoGsmModemData* data;
	FsoGsmModemData* _tmp40_;
	gboolean _tmp41_;
	const gchar* _tmp42_;
	FsoGsmModemData* _tmp43_;
	const gchar* _tmp44_;
	gchar* _tmp45_;
	FsoGsmModem* _tmp46_;
	FsoGsmWatchDog* _tmp47_;
	FsoGsmWatchDog* _tmp48_;
	GError * _inner_error_;
};

struct _FsoGsmDeviceSetMicrophoneMuted {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceSetMicrophoneMutedPrivate * priv;
};

struct _FsoGsmDeviceSetMicrophoneMutedClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceSetMicrophoneMuted* self, gboolean muted, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceSetMicrophoneMuted* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceSetMicrophoneMuted {
	FsoGsmDeviceSetMicrophoneMuted parent_instance;
	FsoGsmAtDeviceSetMicrophoneMutedPrivate * priv;
};

struct _FsoGsmAtDeviceSetMicrophoneMutedClass {
	FsoGsmDeviceSetMicrophoneMutedClass parent_class;
};

struct _FsoGsmAtDeviceSetMicrophoneMutedRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceSetMicrophoneMuted* self;
	gboolean muted;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCMUT* cmut;
	gint _tmp2_;
	gboolean _tmp3_;
	FsoGsmModem* _tmp4_;
	FsoGsmPlusCMUT* _tmp5_;
	FsoGsmPlusCMUT* _tmp6_;
	gint _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gint _tmp10_;
	gchar** _tmp11_;
	gchar** _tmp12_;
	gint _tmp12__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCMUT* _tmp13_;
	GError * _inner_error_;
};

struct _FsoGsmDeviceSetSpeakerVolume {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmDeviceSetSpeakerVolumePrivate * priv;
};

struct _FsoGsmDeviceSetSpeakerVolumeClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmDeviceSetSpeakerVolume* self, gint volume, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmDeviceSetSpeakerVolume* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtDeviceSetSpeakerVolume {
	FsoGsmDeviceSetSpeakerVolume parent_instance;
	FsoGsmAtDeviceSetSpeakerVolumePrivate * priv;
};

struct _FsoGsmAtDeviceSetSpeakerVolumeClass {
	FsoGsmDeviceSetSpeakerVolumeClass parent_class;
};

struct _FsoGsmAtDeviceSetSpeakerVolumeRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtDeviceSetSpeakerVolume* self;
	gint volume;
	gboolean _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gboolean _tmp3_;
	GError* _tmp4_;
	FsoGsmModem* _tmp5_;
	FsoGsmModemData* _tmp6_;
	FsoGsmModemData* data;
	FsoGsmModemData* _tmp7_;
	gint _tmp8_;
	FsoGsmModemData* _tmp9_;
	gint _tmp10_;
	gdouble interval;
	FsoGsmModemData* _tmp11_;
	gint _tmp12_;
	gint _tmp13_;
	gdouble _tmp14_;
	gdouble _tmp15_;
	gint value;
	FsoGsmModem* _tmp16_;
	gpointer _tmp17_;
	FsoGsmPlusCLVL* clvl;
	FsoGsmModem* _tmp18_;
	FsoGsmPlusCLVL* _tmp19_;
	FsoGsmPlusCLVL* _tmp20_;
	gint _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gint _tmp24_;
	gchar** _tmp25_;
	gchar** _tmp26_;
	gint _tmp26__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCLVL* _tmp27_;
	gchar** _tmp28_;
	gint _tmp28__length1;
	GError * _inner_error_;
};


static gpointer fso_gsm_at_device_get_alarm_time_parent_class = NULL;
extern FsoGsmModem* fso_gsm_theModem;
static gpointer fso_gsm_at_device_get_current_time_parent_class = NULL;
static gpointer fso_gsm_at_device_get_functionality_parent_class = NULL;
static gpointer fso_gsm_at_device_get_information_parent_class = NULL;
static gpointer fso_gsm_at_device_get_features_parent_class = NULL;
static gpointer fso_gsm_at_device_get_microphone_muted_parent_class = NULL;
static gpointer fso_gsm_at_device_get_sim_buffers_sms_parent_class = NULL;
static gpointer fso_gsm_at_device_get_speaker_volume_parent_class = NULL;
static gpointer fso_gsm_at_device_get_power_status_parent_class = NULL;
static gpointer fso_gsm_at_device_set_alarm_time_parent_class = NULL;
static gpointer fso_gsm_at_device_set_current_time_parent_class = NULL;
static gpointer fso_gsm_at_device_set_functionality_parent_class = NULL;
static gpointer fso_gsm_at_device_set_microphone_muted_parent_class = NULL;
static gpointer fso_gsm_at_device_set_speaker_volume_parent_class = NULL;

GType fso_gsm_mediator_get_type (void) G_GNUC_CONST;
GType fso_gsm_abstract_mediator_get_type (void) G_GNUC_CONST;
GType fso_gsm_device_get_alarm_time_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_get_alarm_time_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_GET_ALARM_TIME_DUMMY_PROPERTY
};
static void fso_gsm_at_device_get_alarm_time_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_get_alarm_time_real_run (FsoGsmDeviceGetAlarmTime* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_get_alarm_time_real_run_co (FsoGsmAtDeviceGetAlarmTimeRunData* _data_);
GType fso_gsm_channel_get_type (void) G_GNUC_CONST;
GType fso_gsm_modem_status_get_type (void) G_GNUC_CONST;
GType fso_gsm_modem_network_status_get_type (void) G_GNUC_CONST;
gpointer fso_gsm_at_command_sequence_ref (gpointer instance);
void fso_gsm_at_command_sequence_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_at_command_sequence (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_at_command_sequence (GValue* value, gpointer v_object);
void fso_gsm_value_take_at_command_sequence (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_at_command_sequence (const GValue* value);
GType fso_gsm_at_command_sequence_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_command_queue_command_get_type (void) G_GNUC_CONST;
GQuark fso_gsm_at_command_error_quark (void);
GType fso_gsm_constants_at_response_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_command_get_type (void) G_GNUC_CONST;
GType fso_gsm_modem_data_get_type (void) G_GNUC_CONST;
GType fso_gsm_call_info_get_type (void) G_GNUC_CONST;
GType fso_gsm_call_handler_get_type (void) G_GNUC_CONST;
gpointer wrap_hex_pdu_ref (gpointer instance);
void wrap_hex_pdu_unref (gpointer instance);
GParamSpec* param_spec_wrap_hex_pdu (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_wrap_hex_pdu (GValue* value, gpointer v_object);
void value_take_wrap_hex_pdu (GValue* value, gpointer v_object);
gpointer value_get_wrap_hex_pdu (const GValue* value);
GType wrap_hex_pdu_get_type (void) G_GNUC_CONST;
GType fso_gsm_isms_storage_get_type (void) G_GNUC_CONST;
GType fso_gsm_sms_handler_get_type (void) G_GNUC_CONST;
GType fso_gsm_phonebook_storage_get_type (void) G_GNUC_CONST;
GType fso_gsm_phonebook_handler_get_type (void) G_GNUC_CONST;
GType fso_gsm_watch_dog_get_type (void) G_GNUC_CONST;
gpointer fso_gsm_route_info_ref (gpointer instance);
void fso_gsm_route_info_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_route_info (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_route_info (GValue* value, gpointer v_object);
void fso_gsm_value_take_route_info (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_route_info (const GValue* value);
GType fso_gsm_route_info_get_type (void) G_GNUC_CONST;
GType fso_gsm_ipdp_handler_get_type (void) G_GNUC_CONST;
GType fso_gsm_modem_get_type (void) G_GNUC_CONST;
FsoGsmModemData* fso_gsm_modem_data (FsoGsmModem* self);
gpointer fso_gsm_modem_createAtCommand (FsoGsmModem* self, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, const gchar* command);
GType fso_gsm_abstract_at_command_get_type (void) G_GNUC_CONST;
GType fso_gsm_plus_cala_get_type (void) G_GNUC_CONST;
void fso_gsm_modem_processAtCommandAsync (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries, GAsyncReadyCallback _callback_, gpointer _user_data_);
gchar** fso_gsm_modem_processAtCommandAsync_finish (FsoGsmModem* self, GAsyncResult* _res_, int* result_length1);
gchar* fso_gsm_plus_cala_query (FsoGsmPlusCALA* self);
#define FSO_GSM_MODEM_DEFAULT_RETRIES 3
static void fso_gsm_at_device_get_alarm_time_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_checkResponseValid (FsoGsmAtCommand* command, gchar** response, int response_length1, GError** error);
void fso_gsm_device_get_alarm_time_set_since_epoch (FsoGsmDeviceGetAlarmTime* self, gint value);
gint fso_gsm_device_get_alarm_time_get_since_epoch (FsoGsmDeviceGetAlarmTime* self);
gpointer fso_gsm_phonebook_params_ref (gpointer instance);
void fso_gsm_phonebook_params_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_phonebook_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_phonebook_params (GValue* value, gpointer v_object);
void fso_gsm_value_take_phonebook_params (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_phonebook_params (const GValue* value);
GType fso_gsm_phonebook_params_get_type (void) G_GNUC_CONST;
gpointer fso_gsm_context_params_ref (gpointer instance);
void fso_gsm_context_params_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_context_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_context_params (GValue* value, gpointer v_object);
void fso_gsm_value_take_context_params (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_context_params (const GValue* value);
GType fso_gsm_context_params_get_type (void) G_GNUC_CONST;
gpointer fso_gsm_network_time_report_ref (gpointer instance);
void fso_gsm_network_time_report_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_network_time_report (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_network_time_report (GValue* value, gpointer v_object);
void fso_gsm_value_take_network_time_report (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_network_time_report (const GValue* value);
GType fso_gsm_network_time_report_get_type (void) G_GNUC_CONST;
FsoGsmAtDeviceGetAlarmTime* fso_gsm_at_device_get_alarm_time_new (void);
FsoGsmAtDeviceGetAlarmTime* fso_gsm_at_device_get_alarm_time_construct (GType object_type);
FsoGsmDeviceGetAlarmTime* fso_gsm_device_get_alarm_time_construct (GType object_type);
GType fso_gsm_device_get_current_time_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_get_current_time_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_GET_CURRENT_TIME_DUMMY_PROPERTY
};
static void fso_gsm_at_device_get_current_time_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_get_current_time_real_run (FsoGsmDeviceGetCurrentTime* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_get_current_time_real_run_co (FsoGsmAtDeviceGetCurrentTimeRunData* _data_);
GType fso_gsm_plus_cclk_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cclk_query (FsoGsmPlusCCLK* self);
static void fso_gsm_at_device_get_current_time_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_device_get_current_time_set_since_epoch (FsoGsmDeviceGetCurrentTime* self, gint value);
FsoGsmAtDeviceGetCurrentTime* fso_gsm_at_device_get_current_time_new (void);
FsoGsmAtDeviceGetCurrentTime* fso_gsm_at_device_get_current_time_construct (GType object_type);
FsoGsmDeviceGetCurrentTime* fso_gsm_device_get_current_time_construct (GType object_type);
GType fso_gsm_device_get_functionality_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_get_functionality_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_GET_FUNCTIONALITY_DUMMY_PROPERTY
};
static void fso_gsm_at_device_get_functionality_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_get_functionality_real_run (FsoGsmDeviceGetFunctionality* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_get_functionality_real_run_co (FsoGsmAtDeviceGetFunctionalityRunData* _data_);
GType fso_gsm_simple_at_command_get_type (void) G_GNUC_CONST;
GType fso_gsm_plus_cfun_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_simple_at_command_query (FsoGsmSimpleAtCommand* self);
static void fso_gsm_at_device_get_functionality_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
gpointer fso_gsm_constants_ref (gpointer instance);
void fso_gsm_constants_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_constants (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_constants (GValue* value, gpointer v_object);
void fso_gsm_value_take_constants (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_constants (const GValue* value);
GType fso_gsm_constants_get_type (void) G_GNUC_CONST;
FsoGsmConstants* fso_gsm_constants_instance (void);
gchar* fso_gsm_constants_deviceFunctionalityStatusToString (FsoGsmConstants* self, gint code);
void fso_gsm_device_get_functionality_set_level (FsoGsmDeviceGetFunctionality* self, const gchar* value);
void fso_gsm_device_get_functionality_set_autoregister (FsoGsmDeviceGetFunctionality* self, gboolean value);
void fso_gsm_device_get_functionality_set_pin (FsoGsmDeviceGetFunctionality* self, const gchar* value);
FsoGsmAtDeviceGetFunctionality* fso_gsm_at_device_get_functionality_new (void);
FsoGsmAtDeviceGetFunctionality* fso_gsm_at_device_get_functionality_construct (GType object_type);
FsoGsmDeviceGetFunctionality* fso_gsm_device_get_functionality_construct (GType object_type);
GType fso_gsm_device_get_information_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_get_information_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_GET_INFORMATION_DUMMY_PROPERTY
};
static void fso_gsm_at_device_get_information_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_get_information_real_run (FsoGsmDeviceGetInformation* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_get_information_real_run_co (FsoGsmAtDeviceGetInformationRunData* _data_);
static void _g_free0_ (gpointer var);
static void _g_variant_unref0_ (gpointer var);
void fso_gsm_device_get_information_set_info (FsoGsmDeviceGetInformation* self, GHashTable* value);
GType fso_gsm_plus_cgmr_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_simple_at_command_execute (FsoGsmSimpleAtCommand* self);
static void fso_gsm_at_device_get_information_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmConstantsAtResponse fso_gsm_abstract_at_command_validate (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
static GVariant* _variant_new6 (const gchar* value);
GHashTable* fso_gsm_device_get_information_get_info (FsoGsmDeviceGetInformation* self);
static GVariant* _variant_new7 (const gchar* value);
GType fso_gsm_plus_cgmm_get_type (void) G_GNUC_CONST;
static GVariant* _variant_new8 (const gchar* value);
static GVariant* _variant_new9 (const gchar* value);
GType fso_gsm_plus_cgmi_get_type (void) G_GNUC_CONST;
static GVariant* _variant_new10 (const gchar* value);
static GVariant* _variant_new11 (const gchar* value);
GType fso_gsm_plus_cgsn_get_type (void) G_GNUC_CONST;
static GVariant* _variant_new12 (const gchar* value);
static GVariant* _variant_new13 (const gchar* value);
GType fso_gsm_plus_cmickey_get_type (void) G_GNUC_CONST;
static GVariant* _variant_new14 (const gchar* value);
FsoGsmAtDeviceGetInformation* fso_gsm_at_device_get_information_new (void);
FsoGsmAtDeviceGetInformation* fso_gsm_at_device_get_information_construct (GType object_type);
FsoGsmDeviceGetInformation* fso_gsm_device_get_information_construct (GType object_type);
GType fso_gsm_device_get_features_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_get_features_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_GET_FEATURES_DUMMY_PROPERTY
};
static void fso_gsm_at_device_get_features_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_get_features_real_run (FsoGsmDeviceGetFeatures* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_get_features_real_run_co (FsoGsmAtDeviceGetFeaturesRunData* _data_);
void fso_gsm_device_get_features_set_features (FsoGsmDeviceGetFeatures* self, GHashTable* value);
GHashTable* fso_gsm_device_get_features_get_features (FsoGsmDeviceGetFeatures* self);
static GVariant* _variant_new15 (gboolean value);
static GVariant* _variant_new16 (gboolean value);
static GVariant* _variant_new17 (gboolean value);
static GVariant* _variant_new18 (gboolean value);
static GVariant* _variant_new19 (const gchar* value);
GType fso_gsm_plus_gcap_get_type (void) G_GNUC_CONST;
static void fso_gsm_at_device_get_features_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static GVariant* _variant_new20 (gboolean value);
GType fso_gsm_plus_cgclass_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_simple_at_command_test (FsoGsmSimpleAtCommand* self);
FsoGsmConstantsAtResponse fso_gsm_abstract_at_command_validateTest (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
static GVariant* _variant_new21 (const gchar* value);
GType fso_gsm_plus_fclass_get_type (void) G_GNUC_CONST;
static GVariant* _variant_new22 (const gchar* value);
GType fso_gsm_plus_clck_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_clck_test (FsoGsmPlusCLCK* self);
static GVariant* _variant_new23 (const gchar* value);
FsoGsmAtDeviceGetFeatures* fso_gsm_at_device_get_features_new (void);
FsoGsmAtDeviceGetFeatures* fso_gsm_at_device_get_features_construct (GType object_type);
FsoGsmDeviceGetFeatures* fso_gsm_device_get_features_construct (GType object_type);
GType fso_gsm_device_get_microphone_muted_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_get_microphone_muted_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_GET_MICROPHONE_MUTED_DUMMY_PROPERTY
};
static void fso_gsm_at_device_get_microphone_muted_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_get_microphone_muted_real_run (FsoGsmDeviceGetMicrophoneMuted* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_get_microphone_muted_real_run_co (FsoGsmAtDeviceGetMicrophoneMutedRunData* _data_);
GType fso_gsm_plus_cmut_get_type (void) G_GNUC_CONST;
static void fso_gsm_at_device_get_microphone_muted_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_device_get_microphone_muted_set_muted (FsoGsmDeviceGetMicrophoneMuted* self, gboolean value);
FsoGsmAtDeviceGetMicrophoneMuted* fso_gsm_at_device_get_microphone_muted_new (void);
FsoGsmAtDeviceGetMicrophoneMuted* fso_gsm_at_device_get_microphone_muted_construct (GType object_type);
FsoGsmDeviceGetMicrophoneMuted* fso_gsm_device_get_microphone_muted_construct (GType object_type);
GType fso_gsm_device_get_sim_buffers_sms_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_get_sim_buffers_sms_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_GET_SIM_BUFFERS_SMS_DUMMY_PROPERTY
};
static void fso_gsm_at_device_get_sim_buffers_sms_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_get_sim_buffers_sms_real_run (FsoGsmDeviceGetSimBuffersSms* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_get_sim_buffers_sms_real_run_co (FsoGsmAtDeviceGetSimBuffersSmsRunData* _data_);
GType fso_gsm_plus_cnmi_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cnmi_query (FsoGsmPlusCNMI* self);
static void fso_gsm_at_device_get_sim_buffers_sms_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_device_get_sim_buffers_sms_set_buffers (FsoGsmDeviceGetSimBuffersSms* self, gboolean value);
FsoGsmAtDeviceGetSimBuffersSms* fso_gsm_at_device_get_sim_buffers_sms_new (void);
FsoGsmAtDeviceGetSimBuffersSms* fso_gsm_at_device_get_sim_buffers_sms_construct (GType object_type);
FsoGsmDeviceGetSimBuffersSms* fso_gsm_device_get_sim_buffers_sms_construct (GType object_type);
GType fso_gsm_device_get_speaker_volume_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_get_speaker_volume_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_GET_SPEAKER_VOLUME_DUMMY_PROPERTY
};
static void fso_gsm_at_device_get_speaker_volume_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_get_speaker_volume_real_run (FsoGsmDeviceGetSpeakerVolume* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_get_speaker_volume_real_run_co (FsoGsmAtDeviceGetSpeakerVolumeRunData* _data_);
void fso_gsm_gatherSpeakerVolumeRange (GAsyncReadyCallback _callback_, gpointer _user_data_);
void fso_gsm_gatherSpeakerVolumeRange_finish (GAsyncResult* _res_, GError** error);
static void fso_gsm_at_device_get_speaker_volume_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
GType fso_gsm_plus_clvl_get_type (void) G_GNUC_CONST;
void fso_gsm_device_get_speaker_volume_set_volume (FsoGsmDeviceGetSpeakerVolume* self, gint value);
FsoGsmAtDeviceGetSpeakerVolume* fso_gsm_at_device_get_speaker_volume_new (void);
FsoGsmAtDeviceGetSpeakerVolume* fso_gsm_at_device_get_speaker_volume_construct (GType object_type);
FsoGsmDeviceGetSpeakerVolume* fso_gsm_device_get_speaker_volume_construct (GType object_type);
GType fso_gsm_device_get_power_status_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_get_power_status_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_GET_POWER_STATUS_DUMMY_PROPERTY
};
static void fso_gsm_at_device_get_power_status_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_get_power_status_real_run (FsoGsmDeviceGetPowerStatus* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_get_power_status_real_run_co (FsoGsmAtDeviceGetPowerStatusRunData* _data_);
GType fso_gsm_plus_cbc_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cbc_execute (FsoGsmPlusCBC* self);
static void fso_gsm_at_device_get_power_status_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
GType fso_gsm_plus_cbc_status_get_type (void) G_GNUC_CONST;
void fso_gsm_device_get_power_status_set_status (FsoGsmDeviceGetPowerStatus* self, FreeSmartphoneDevicePowerStatus value);
void fso_gsm_device_get_power_status_set_level (FsoGsmDeviceGetPowerStatus* self, gint value);
FsoGsmAtDeviceGetPowerStatus* fso_gsm_at_device_get_power_status_new (void);
FsoGsmAtDeviceGetPowerStatus* fso_gsm_at_device_get_power_status_construct (GType object_type);
FsoGsmDeviceGetPowerStatus* fso_gsm_device_get_power_status_construct (GType object_type);
GType fso_gsm_device_set_alarm_time_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_set_alarm_time_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_SET_ALARM_TIME_DUMMY_PROPERTY
};
static void fso_gsm_at_device_set_alarm_time_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_set_alarm_time_real_run (FsoGsmDeviceSetAlarmTime* base, gint since_epoch, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_set_alarm_time_real_run_co (FsoGsmAtDeviceSetAlarmTimeRunData* _data_);
gchar* fso_gsm_plus_cala_issue (FsoGsmPlusCALA* self, gint year, gint month, gint day, gint hour, gint minute, gint second, gint tzoffset);
gchar* fso_gsm_plus_cala_clear (FsoGsmPlusCALA* self);
static void fso_gsm_at_device_set_alarm_time_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_checkResponseOk (FsoGsmAtCommand* command, gchar** response, int response_length1, GError** error);
FsoGsmAtDeviceSetAlarmTime* fso_gsm_at_device_set_alarm_time_new (void);
FsoGsmAtDeviceSetAlarmTime* fso_gsm_at_device_set_alarm_time_construct (GType object_type);
FsoGsmDeviceSetAlarmTime* fso_gsm_device_set_alarm_time_construct (GType object_type);
GType fso_gsm_device_set_current_time_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_set_current_time_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_SET_CURRENT_TIME_DUMMY_PROPERTY
};
static void fso_gsm_at_device_set_current_time_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_set_current_time_real_run (FsoGsmDeviceSetCurrentTime* base, gint since_epoch, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_set_current_time_real_run_co (FsoGsmAtDeviceSetCurrentTimeRunData* _data_);
gchar* fso_gsm_plus_cclk_issue (FsoGsmPlusCCLK* self, gint year, gint month, gint day, gint hour, gint minute, gint second, gint tzoffset);
static void fso_gsm_at_device_set_current_time_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtDeviceSetCurrentTime* fso_gsm_at_device_set_current_time_new (void);
FsoGsmAtDeviceSetCurrentTime* fso_gsm_at_device_set_current_time_construct (GType object_type);
FsoGsmDeviceSetCurrentTime* fso_gsm_device_set_current_time_construct (GType object_type);
GType fso_gsm_device_set_functionality_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_set_functionality_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_SET_FUNCTIONALITY_DUMMY_PROPERTY
};
static void fso_gsm_at_device_set_functionality_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_set_functionality_real_run (FsoGsmDeviceSetFunctionality* base, const gchar* level, gboolean autoregister, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_set_functionality_real_run_co (FsoGsmAtDeviceSetFunctionalityRunData* _data_);
gint fso_gsm_constants_deviceFunctionalityStringToStatus (FsoGsmConstants* self, const gchar* level);
static void fso_gsm_at_device_set_functionality_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
gchar* fso_gsm_simple_at_command_issue (FsoGsmSimpleAtCommand* self, gconstpointer val);
FsoGsmConstantsAtResponse fso_gsm_checkResponseExpected (FsoGsmAtCommand* command, gchar** response, int response_length1, FsoGsmConstantsAtResponse* expected, int expected_length1, GError** error);
FsoGsmWatchDog* fso_gsm_modem_get_watchdog (FsoGsmModem* self);
void fso_gsm_watch_dog_resetUnlockMarker (FsoGsmWatchDog* self);
void fso_gsm_gatherSimStatusAndUpdate (GAsyncReadyCallback _callback_, gpointer _user_data_);
void fso_gsm_gatherSimStatusAndUpdate_finish (GAsyncResult* _res_, GError** error);
FsoGsmAtDeviceSetFunctionality* fso_gsm_at_device_set_functionality_new (void);
FsoGsmAtDeviceSetFunctionality* fso_gsm_at_device_set_functionality_construct (GType object_type);
FsoGsmDeviceSetFunctionality* fso_gsm_device_set_functionality_construct (GType object_type);
GType fso_gsm_device_set_microphone_muted_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_set_microphone_muted_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_SET_MICROPHONE_MUTED_DUMMY_PROPERTY
};
static void fso_gsm_at_device_set_microphone_muted_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_set_microphone_muted_real_run (FsoGsmDeviceSetMicrophoneMuted* base, gboolean muted, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_set_microphone_muted_real_run_co (FsoGsmAtDeviceSetMicrophoneMutedRunData* _data_);
static void fso_gsm_at_device_set_microphone_muted_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtDeviceSetMicrophoneMuted* fso_gsm_at_device_set_microphone_muted_new (void);
FsoGsmAtDeviceSetMicrophoneMuted* fso_gsm_at_device_set_microphone_muted_construct (GType object_type);
FsoGsmDeviceSetMicrophoneMuted* fso_gsm_device_set_microphone_muted_construct (GType object_type);
GType fso_gsm_device_set_speaker_volume_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_device_set_speaker_volume_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_DEVICE_SET_SPEAKER_VOLUME_DUMMY_PROPERTY
};
static void fso_gsm_at_device_set_speaker_volume_real_run_data_free (gpointer _data);
static void fso_gsm_at_device_set_speaker_volume_real_run (FsoGsmDeviceSetSpeakerVolume* base, gint volume, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_device_set_speaker_volume_real_run_co (FsoGsmAtDeviceSetSpeakerVolumeRunData* _data_);
static void fso_gsm_at_device_set_speaker_volume_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtDeviceSetSpeakerVolume* fso_gsm_at_device_set_speaker_volume_new (void);
FsoGsmAtDeviceSetSpeakerVolume* fso_gsm_at_device_set_speaker_volume_construct (GType object_type);
FsoGsmDeviceSetSpeakerVolume* fso_gsm_device_set_speaker_volume_construct (GType object_type);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);


static void fso_gsm_at_device_get_alarm_time_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceGetAlarmTimeRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceGetAlarmTimeRunData, _data_);
}


static gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


static void fso_gsm_at_device_get_alarm_time_real_run (FsoGsmDeviceGetAlarmTime* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceGetAlarmTime * self;
	FsoGsmAtDeviceGetAlarmTimeRunData* _data_;
	FsoGsmAtDeviceGetAlarmTime* _tmp0_;
	self = (FsoGsmAtDeviceGetAlarmTime*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceGetAlarmTimeRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_get_alarm_time_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_get_alarm_time_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_device_get_alarm_time_real_run_co (_data_);
}


static void fso_gsm_at_device_get_alarm_time_real_run_finish (FsoGsmDeviceGetAlarmTime* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceGetAlarmTimeRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_device_get_alarm_time_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceGetAlarmTimeRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_get_alarm_time_real_run_co (_data_);
}


static gboolean fso_gsm_at_device_get_alarm_time_real_run_co (FsoGsmAtDeviceGetAlarmTimeRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_data (_data_->_tmp0_);
	_data_->data = _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_modem_createAtCommand (_data_->_tmp2_, FSO_GSM_TYPE_PLUS_CALA, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CALA");
	_data_->cmd = (FsoGsmPlusCALA*) _data_->_tmp3_;
	_data_->_tmp4_ = fso_gsm_theModem;
	_data_->_tmp5_ = _data_->cmd;
	_data_->_tmp6_ = _data_->cmd;
	_data_->_tmp7_ = NULL;
	_data_->_tmp7_ = fso_gsm_plus_cala_query (_data_->_tmp6_);
	_data_->_tmp8_ = _data_->_tmp7_;
	_data_->_tmp9_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp4_, (FsoGsmAtCommand*) _data_->_tmp5_, _data_->_tmp8_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_alarm_time_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp10_ = NULL;
	_data_->_tmp10_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp4_, _data_->_res_, &_data_->_tmp9_);
	_data_->_tmp11_ = _data_->_tmp10_;
	_data_->_tmp11__length1 = _data_->_tmp9_;
	_g_free0 (_data_->_tmp8_);
	_data_->response = _data_->_tmp11_;
	_data_->response_length1 = _data_->_tmp11__length1;
	_data_->_response_size_ = _data_->response_length1;
	{
		_data_->_tmp12_ = _data_->cmd;
		_data_->_tmp13_ = _data_->response;
		_data_->_tmp13__length1 = _data_->response_length1;
		fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->_tmp12_, _data_->_tmp13_, _data_->_tmp13__length1, &_data_->_inner_error_);
		if (_data_->_inner_error_ != NULL) {
			if (_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) {
				goto __catch41_free_smartphone_gsm_error;
			}
			goto __finally41;
		}
	}
	goto __finally41;
	__catch41_free_smartphone_gsm_error:
	{
		_data_->e = _data_->_inner_error_;
		_data_->_inner_error_ = NULL;
		_data_->_tmp14_ = _data_->e;
		_data_->_tmp15_ = _data_->_tmp14_->message;
		_data_->_tmp16_ = g_error_new_literal (FREE_SMARTPHONE_ERROR, FREE_SMARTPHONE_ERROR_SYSTEM_ERROR, _data_->_tmp15_);
		_data_->_inner_error_ = _data_->_tmp16_;
		_g_error_free0 (_data_->e);
		goto __finally41;
	}
	__finally41:
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			_g_object_unref0 (_data_->data);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			_g_object_unref0 (_data_->data);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp17_ = _data_->cmd;
	_data_->_tmp18_ = _data_->_tmp17_->year;
	_data_->_tmp19_ = _data_->cmd;
	_data_->_tmp20_ = _data_->_tmp19_->month;
	_data_->_tmp21_ = _data_->cmd;
	_data_->_tmp22_ = _data_->_tmp21_->day;
	_data_->_tmp23_ = _data_->cmd;
	_data_->_tmp24_ = _data_->_tmp23_->hour;
	_data_->_tmp25_ = _data_->cmd;
	_data_->_tmp26_ = _data_->_tmp25_->minute;
	_data_->_tmp27_ = _data_->cmd;
	_data_->_tmp28_ = _data_->_tmp27_->second;
	_data_->_tmp29_ = NULL;
	_data_->_tmp29_ = g_strdup_printf ("%02d/%02d/%02d,%02d:%02d:%02d", _data_->_tmp18_, _data_->_tmp20_, _data_->_tmp22_, _data_->_tmp24_, _data_->_tmp26_, _data_->_tmp28_);
	_data_->timestr = _data_->_tmp29_;
	_data_->_tmp30_ = g_strdup ("%y/%m/%d,%H:%M:%S");
	_data_->formatstr = _data_->_tmp30_;
	memset (&_data_->t, 0, sizeof (struct tm));
	_data_->_tmp31_ = _data_->timestr;
	_data_->_tmp32_ = _data_->formatstr;
	strptime (_data_->_tmp31_, _data_->_tmp32_, &_data_->t);
	_data_->_tmp33_ = _data_->t;
	_data_->_tmp34_ = 0;
	_data_->_tmp34_ = timegm (&_data_->_tmp33_);
	fso_gsm_device_get_alarm_time_set_since_epoch ((FsoGsmDeviceGetAlarmTime*) _data_->self, (gint) _data_->_tmp34_);
	_data_->_tmp35_ = fso_gsm_device_get_alarm_time_get_since_epoch ((FsoGsmDeviceGetAlarmTime*) _data_->self);
	_data_->_tmp36_ = _data_->_tmp35_;
	_data_->_tmp37_ = _data_->data;
	_data_->_tmp38_ = _data_->_tmp37_->alarmCleared;
	if (_data_->_tmp36_ == _data_->_tmp38_) {
		fso_gsm_device_get_alarm_time_set_since_epoch ((FsoGsmDeviceGetAlarmTime*) _data_->self, 0);
	}
	_g_free0 (_data_->formatstr);
	_g_free0 (_data_->timestr);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	_g_object_unref0 (_data_->data);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceGetAlarmTime* fso_gsm_at_device_get_alarm_time_construct (GType object_type) {
	FsoGsmAtDeviceGetAlarmTime * self = NULL;
	self = (FsoGsmAtDeviceGetAlarmTime*) fso_gsm_device_get_alarm_time_construct (object_type);
	return self;
}


FsoGsmAtDeviceGetAlarmTime* fso_gsm_at_device_get_alarm_time_new (void) {
	return fso_gsm_at_device_get_alarm_time_construct (FSO_GSM_TYPE_AT_DEVICE_GET_ALARM_TIME);
}


static void fso_gsm_at_device_get_alarm_time_class_init (FsoGsmAtDeviceGetAlarmTimeClass * klass) {
	fso_gsm_at_device_get_alarm_time_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_GET_ALARM_TIME_CLASS (klass)->run = fso_gsm_at_device_get_alarm_time_real_run;
	FSO_GSM_DEVICE_GET_ALARM_TIME_CLASS (klass)->run_finish = fso_gsm_at_device_get_alarm_time_real_run_finish;
}


static void fso_gsm_at_device_get_alarm_time_instance_init (FsoGsmAtDeviceGetAlarmTime * self) {
}


/**
 * Device Mediators
 **/
GType fso_gsm_at_device_get_alarm_time_get_type (void) {
	static volatile gsize fso_gsm_at_device_get_alarm_time_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_get_alarm_time_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceGetAlarmTimeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_get_alarm_time_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceGetAlarmTime), 0, (GInstanceInitFunc) fso_gsm_at_device_get_alarm_time_instance_init, NULL };
		GType fso_gsm_at_device_get_alarm_time_type_id;
		fso_gsm_at_device_get_alarm_time_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_GET_ALARM_TIME, "FsoGsmAtDeviceGetAlarmTime", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_get_alarm_time_type_id__volatile, fso_gsm_at_device_get_alarm_time_type_id);
	}
	return fso_gsm_at_device_get_alarm_time_type_id__volatile;
}


static void fso_gsm_at_device_get_current_time_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceGetCurrentTimeRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceGetCurrentTimeRunData, _data_);
}


static void fso_gsm_at_device_get_current_time_real_run (FsoGsmDeviceGetCurrentTime* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceGetCurrentTime * self;
	FsoGsmAtDeviceGetCurrentTimeRunData* _data_;
	FsoGsmAtDeviceGetCurrentTime* _tmp0_;
	self = (FsoGsmAtDeviceGetCurrentTime*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceGetCurrentTimeRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_get_current_time_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_get_current_time_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_device_get_current_time_real_run_co (_data_);
}


static void fso_gsm_at_device_get_current_time_real_run_finish (FsoGsmDeviceGetCurrentTime* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceGetCurrentTimeRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_device_get_current_time_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceGetCurrentTimeRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_get_current_time_real_run_co (_data_);
}


static gboolean fso_gsm_at_device_get_current_time_real_run_co (FsoGsmAtDeviceGetCurrentTimeRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CCLK, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CCLK");
	_data_->cmd = (FsoGsmPlusCCLK*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = _data_->cmd;
	_data_->_tmp4_ = _data_->cmd;
	_data_->_tmp5_ = NULL;
	_data_->_tmp5_ = fso_gsm_plus_cclk_query (_data_->_tmp4_);
	_data_->_tmp6_ = _data_->_tmp5_;
	_data_->_tmp7_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->_tmp3_, _data_->_tmp6_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_current_time_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp8_ = NULL;
	_data_->_tmp8_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp7_);
	_data_->_tmp9_ = _data_->_tmp8_;
	_data_->_tmp9__length1 = _data_->_tmp7_;
	_g_free0 (_data_->_tmp6_);
	_data_->response = _data_->_tmp9_;
	_data_->response_length1 = _data_->_tmp9__length1;
	_data_->_response_size_ = _data_->response_length1;
	{
		_data_->_tmp10_ = _data_->cmd;
		_data_->_tmp11_ = _data_->response;
		_data_->_tmp11__length1 = _data_->response_length1;
		fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->_tmp10_, _data_->_tmp11_, _data_->_tmp11__length1, &_data_->_inner_error_);
		if (_data_->_inner_error_ != NULL) {
			if (_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) {
				goto __catch42_free_smartphone_gsm_error;
			}
			goto __finally42;
		}
	}
	goto __finally42;
	__catch42_free_smartphone_gsm_error:
	{
		_data_->e = _data_->_inner_error_;
		_data_->_inner_error_ = NULL;
		_data_->_tmp12_ = _data_->e;
		_data_->_tmp13_ = _data_->_tmp12_->message;
		_data_->_tmp14_ = g_error_new_literal (FREE_SMARTPHONE_ERROR, FREE_SMARTPHONE_ERROR_SYSTEM_ERROR, _data_->_tmp13_);
		_data_->_inner_error_ = _data_->_tmp14_;
		_g_error_free0 (_data_->e);
		goto __finally42;
	}
	__finally42:
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp15_ = _data_->cmd;
	_data_->_tmp16_ = _data_->_tmp15_->year;
	_data_->_tmp17_ = _data_->cmd;
	_data_->_tmp18_ = _data_->_tmp17_->month;
	_data_->_tmp19_ = _data_->cmd;
	_data_->_tmp20_ = _data_->_tmp19_->day;
	_data_->_tmp21_ = _data_->cmd;
	_data_->_tmp22_ = _data_->_tmp21_->hour;
	_data_->_tmp23_ = _data_->cmd;
	_data_->_tmp24_ = _data_->_tmp23_->minute;
	_data_->_tmp25_ = _data_->cmd;
	_data_->_tmp26_ = _data_->_tmp25_->second;
	_data_->_tmp27_ = NULL;
	_data_->_tmp27_ = g_strdup_printf ("%02d/%02d/%02d,%02d:%02d:%02d", _data_->_tmp16_, _data_->_tmp18_, _data_->_tmp20_, _data_->_tmp22_, _data_->_tmp24_, _data_->_tmp26_);
	_data_->timestr = _data_->_tmp27_;
	_data_->_tmp28_ = g_strdup ("%y/%m/%d,%H:%M:%S");
	_data_->formatstr = _data_->_tmp28_;
	memset (&_data_->t, 0, sizeof (struct tm));
	_data_->_tmp29_ = _data_->timestr;
	_data_->_tmp30_ = _data_->formatstr;
	strptime (_data_->_tmp29_, _data_->_tmp30_, &_data_->t);
	_data_->_tmp31_ = _data_->t;
	_data_->_tmp32_ = 0;
	_data_->_tmp32_ = timegm (&_data_->_tmp31_);
	fso_gsm_device_get_current_time_set_since_epoch ((FsoGsmDeviceGetCurrentTime*) _data_->self, (gint) _data_->_tmp32_);
	_g_free0 (_data_->formatstr);
	_g_free0 (_data_->timestr);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceGetCurrentTime* fso_gsm_at_device_get_current_time_construct (GType object_type) {
	FsoGsmAtDeviceGetCurrentTime * self = NULL;
	self = (FsoGsmAtDeviceGetCurrentTime*) fso_gsm_device_get_current_time_construct (object_type);
	return self;
}


FsoGsmAtDeviceGetCurrentTime* fso_gsm_at_device_get_current_time_new (void) {
	return fso_gsm_at_device_get_current_time_construct (FSO_GSM_TYPE_AT_DEVICE_GET_CURRENT_TIME);
}


static void fso_gsm_at_device_get_current_time_class_init (FsoGsmAtDeviceGetCurrentTimeClass * klass) {
	fso_gsm_at_device_get_current_time_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_GET_CURRENT_TIME_CLASS (klass)->run = fso_gsm_at_device_get_current_time_real_run;
	FSO_GSM_DEVICE_GET_CURRENT_TIME_CLASS (klass)->run_finish = fso_gsm_at_device_get_current_time_real_run_finish;
}


static void fso_gsm_at_device_get_current_time_instance_init (FsoGsmAtDeviceGetCurrentTime * self) {
}


GType fso_gsm_at_device_get_current_time_get_type (void) {
	static volatile gsize fso_gsm_at_device_get_current_time_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_get_current_time_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceGetCurrentTimeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_get_current_time_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceGetCurrentTime), 0, (GInstanceInitFunc) fso_gsm_at_device_get_current_time_instance_init, NULL };
		GType fso_gsm_at_device_get_current_time_type_id;
		fso_gsm_at_device_get_current_time_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_GET_CURRENT_TIME, "FsoGsmAtDeviceGetCurrentTime", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_get_current_time_type_id__volatile, fso_gsm_at_device_get_current_time_type_id);
	}
	return fso_gsm_at_device_get_current_time_type_id__volatile;
}


static void fso_gsm_at_device_get_functionality_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceGetFunctionalityRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceGetFunctionalityRunData, _data_);
}


static void fso_gsm_at_device_get_functionality_real_run (FsoGsmDeviceGetFunctionality* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceGetFunctionality * self;
	FsoGsmAtDeviceGetFunctionalityRunData* _data_;
	FsoGsmAtDeviceGetFunctionality* _tmp0_;
	self = (FsoGsmAtDeviceGetFunctionality*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceGetFunctionalityRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_get_functionality_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_get_functionality_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_device_get_functionality_real_run_co (_data_);
}


static void fso_gsm_at_device_get_functionality_real_run_finish (FsoGsmDeviceGetFunctionality* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceGetFunctionalityRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_device_get_functionality_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceGetFunctionalityRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_get_functionality_real_run_co (_data_);
}


static gboolean fso_gsm_at_device_get_functionality_real_run_co (FsoGsmAtDeviceGetFunctionalityRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CFUN, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CFUN");
	_data_->cfun = (FsoGsmPlusCFUN*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_simple_at_command_query ((FsoGsmSimpleAtCommand*) _data_->cfun);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cfun, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_functionality_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->cfun, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cfun);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cfun);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp8_ = NULL;
	_data_->_tmp8_ = fso_gsm_constants_instance ();
	_data_->_tmp9_ = _data_->_tmp8_;
	_data_->_tmp10_ = ((FsoGsmSimpleAtCommand*) _data_->cfun)->value;
	_data_->_tmp11_ = NULL;
	_data_->_tmp11_ = fso_gsm_constants_deviceFunctionalityStatusToString (_data_->_tmp9_, GPOINTER_TO_INT (_data_->_tmp10_));
	_data_->_tmp12_ = _data_->_tmp11_;
	fso_gsm_device_get_functionality_set_level ((FsoGsmDeviceGetFunctionality*) _data_->self, _data_->_tmp12_);
	_g_free0 (_data_->_tmp12_);
	_fso_gsm_constants_unref0 (_data_->_tmp9_);
	_data_->_tmp13_ = fso_gsm_theModem;
	_data_->_tmp14_ = NULL;
	_data_->_tmp14_ = fso_gsm_modem_data (_data_->_tmp13_);
	_data_->_tmp15_ = _data_->_tmp14_;
	_data_->_tmp16_ = _data_->_tmp15_->keepRegistration;
	fso_gsm_device_get_functionality_set_autoregister ((FsoGsmDeviceGetFunctionality*) _data_->self, _data_->_tmp16_);
	_g_object_unref0 (_data_->_tmp15_);
	_data_->_tmp17_ = fso_gsm_theModem;
	_data_->_tmp18_ = NULL;
	_data_->_tmp18_ = fso_gsm_modem_data (_data_->_tmp17_);
	_data_->_tmp19_ = _data_->_tmp18_;
	_data_->_tmp20_ = _data_->_tmp19_->simPin;
	fso_gsm_device_get_functionality_set_pin ((FsoGsmDeviceGetFunctionality*) _data_->self, _data_->_tmp20_);
	_g_object_unref0 (_data_->_tmp19_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cfun);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceGetFunctionality* fso_gsm_at_device_get_functionality_construct (GType object_type) {
	FsoGsmAtDeviceGetFunctionality * self = NULL;
	self = (FsoGsmAtDeviceGetFunctionality*) fso_gsm_device_get_functionality_construct (object_type);
	return self;
}


FsoGsmAtDeviceGetFunctionality* fso_gsm_at_device_get_functionality_new (void) {
	return fso_gsm_at_device_get_functionality_construct (FSO_GSM_TYPE_AT_DEVICE_GET_FUNCTIONALITY);
}


static void fso_gsm_at_device_get_functionality_class_init (FsoGsmAtDeviceGetFunctionalityClass * klass) {
	fso_gsm_at_device_get_functionality_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_GET_FUNCTIONALITY_CLASS (klass)->run = fso_gsm_at_device_get_functionality_real_run;
	FSO_GSM_DEVICE_GET_FUNCTIONALITY_CLASS (klass)->run_finish = fso_gsm_at_device_get_functionality_real_run_finish;
}


static void fso_gsm_at_device_get_functionality_instance_init (FsoGsmAtDeviceGetFunctionality * self) {
}


GType fso_gsm_at_device_get_functionality_get_type (void) {
	static volatile gsize fso_gsm_at_device_get_functionality_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_get_functionality_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceGetFunctionalityClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_get_functionality_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceGetFunctionality), 0, (GInstanceInitFunc) fso_gsm_at_device_get_functionality_instance_init, NULL };
		GType fso_gsm_at_device_get_functionality_type_id;
		fso_gsm_at_device_get_functionality_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_GET_FUNCTIONALITY, "FsoGsmAtDeviceGetFunctionality", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_get_functionality_type_id__volatile, fso_gsm_at_device_get_functionality_type_id);
	}
	return fso_gsm_at_device_get_functionality_type_id__volatile;
}


static void fso_gsm_at_device_get_information_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceGetInformationRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceGetInformationRunData, _data_);
}


static void fso_gsm_at_device_get_information_real_run (FsoGsmDeviceGetInformation* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceGetInformation * self;
	FsoGsmAtDeviceGetInformationRunData* _data_;
	FsoGsmAtDeviceGetInformation* _tmp0_;
	self = (FsoGsmAtDeviceGetInformation*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceGetInformationRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_get_information_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_get_information_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_device_get_information_real_run_co (_data_);
}


static void fso_gsm_at_device_get_information_real_run_finish (FsoGsmDeviceGetInformation* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceGetInformationRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void _g_free0_ (gpointer var) {
	var = (g_free (var), NULL);
}


static void _g_variant_unref0_ (gpointer var) {
	(var == NULL) ? NULL : (var = (g_variant_unref (var), NULL));
}


static void fso_gsm_at_device_get_information_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceGetInformationRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_get_information_real_run_co (_data_);
}


static GVariant* _variant_new6 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static gpointer _g_variant_ref0 (gpointer self) {
	return self ? g_variant_ref (self) : NULL;
}


static GVariant* _variant_new7 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new8 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new9 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new10 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new11 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new12 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new13 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new14 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static gboolean fso_gsm_at_device_get_information_real_run_co (FsoGsmAtDeviceGetInformationRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		case 3:
		goto _state_3;
		case 4:
		goto _state_4;
		case 5:
		goto _state_5;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = g_str_hash;
	_data_->_tmp1_ = g_str_equal;
	_data_->_tmp2_ = g_hash_table_new_full (_data_->_tmp0_, _data_->_tmp1_, _g_free0_, _g_variant_unref0_);
	_data_->_tmp3_ = _data_->_tmp2_;
	fso_gsm_device_get_information_set_info ((FsoGsmDeviceGetInformation*) _data_->self, _data_->_tmp3_);
	_g_hash_table_unref0 (_data_->_tmp3_);
	_data_->_tmp4_ = fso_gsm_theModem;
	_data_->_tmp5_ = NULL;
	_data_->_tmp5_ = fso_gsm_modem_createAtCommand (_data_->_tmp4_, FSO_GSM_TYPE_PLUS_CGMR, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CGMR");
	_data_->cgmr = (FsoGsmPlusCGMR*) _data_->_tmp5_;
	_data_->_tmp6_ = fso_gsm_theModem;
	_data_->_tmp7_ = _data_->cgmr;
	_data_->_tmp8_ = _data_->cgmr;
	_data_->_tmp9_ = NULL;
	_data_->_tmp9_ = fso_gsm_simple_at_command_execute ((FsoGsmSimpleAtCommand*) _data_->_tmp8_);
	_data_->_tmp10_ = _data_->_tmp9_;
	_data_->_tmp11_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp6_, (FsoGsmAtCommand*) _data_->_tmp7_, _data_->_tmp10_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_information_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp12_ = NULL;
	_data_->_tmp12_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp6_, _data_->_res_, &_data_->_tmp11_);
	_data_->_tmp13_ = _data_->_tmp12_;
	_data_->_tmp13__length1 = _data_->_tmp11_;
	_g_free0 (_data_->_tmp10_);
	_data_->response = _data_->_tmp13_;
	_data_->response_length1 = _data_->_tmp13__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp14_ = _data_->cgmr;
	_data_->_tmp15_ = _data_->response;
	_data_->_tmp15__length1 = _data_->response_length1;
	_data_->_tmp16_ = 0;
	_data_->_tmp16_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp14_, _data_->_tmp15_, _data_->_tmp15__length1);
	if (_data_->_tmp16_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp17_ = _data_->cgmr;
		_data_->_tmp18_ = ((FsoGsmSimpleAtCommand*) _data_->_tmp17_)->value;
		_data_->_tmp19_ = _variant_new6 ((const gchar*) ((const gchar*) _data_->_tmp18_));
		_g_variant_unref0 (_data_->value);
		_data_->value = _data_->_tmp19_;
		_data_->_tmp20_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
		_data_->_tmp21_ = _data_->_tmp20_;
		_data_->_tmp22_ = g_strdup ("revision");
		_data_->_tmp23_ = _data_->value;
		_data_->_tmp24_ = _g_variant_ref0 (_data_->_tmp23_);
		g_hash_table_insert (_data_->_tmp21_, _data_->_tmp22_, _data_->_tmp24_);
	} else {
		_data_->_tmp25_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
		_data_->_tmp26_ = _data_->_tmp25_;
		_data_->_tmp27_ = g_strdup ("revision");
		_data_->_tmp28_ = _variant_new7 ("unknown");
		g_hash_table_insert (_data_->_tmp26_, _data_->_tmp27_, _data_->_tmp28_);
	}
	_data_->_tmp29_ = fso_gsm_theModem;
	_data_->_tmp30_ = NULL;
	_data_->_tmp30_ = fso_gsm_modem_createAtCommand (_data_->_tmp29_, FSO_GSM_TYPE_PLUS_CGMM, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CGMM");
	_data_->cgmm = (FsoGsmPlusCGMM*) _data_->_tmp30_;
	_data_->_tmp31_ = fso_gsm_theModem;
	_data_->_tmp32_ = _data_->cgmm;
	_data_->_tmp33_ = _data_->cgmm;
	_data_->_tmp34_ = NULL;
	_data_->_tmp34_ = fso_gsm_simple_at_command_execute ((FsoGsmSimpleAtCommand*) _data_->_tmp33_);
	_data_->_tmp35_ = _data_->_tmp34_;
	_data_->_tmp36_ = 0;
	_data_->_state_ = 2;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp31_, (FsoGsmAtCommand*) _data_->_tmp32_, _data_->_tmp35_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_information_run_ready, _data_);
	return FALSE;
	_state_2:
	_data_->_tmp37_ = NULL;
	_data_->_tmp37_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp31_, _data_->_res_, &_data_->_tmp36_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_data_->response = _data_->_tmp37_;
	_data_->response_length1 = _data_->_tmp36_;
	_data_->_response_size_ = _data_->response_length1;
	_g_free0 (_data_->_tmp35_);
	_data_->_tmp38_ = _data_->cgmm;
	_data_->_tmp39_ = _data_->response;
	_data_->_tmp39__length1 = _data_->response_length1;
	_data_->_tmp40_ = 0;
	_data_->_tmp40_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp38_, _data_->_tmp39_, _data_->_tmp39__length1);
	if (_data_->_tmp40_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp41_ = _data_->cgmm;
		_data_->_tmp42_ = ((FsoGsmSimpleAtCommand*) _data_->_tmp41_)->value;
		_data_->_tmp43_ = _variant_new8 ((const gchar*) ((const gchar*) _data_->_tmp42_));
		_g_variant_unref0 (_data_->value);
		_data_->value = _data_->_tmp43_;
		_data_->_tmp44_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
		_data_->_tmp45_ = _data_->_tmp44_;
		_data_->_tmp46_ = g_strdup ("model");
		_data_->_tmp47_ = _data_->value;
		_data_->_tmp48_ = _g_variant_ref0 (_data_->_tmp47_);
		g_hash_table_insert (_data_->_tmp45_, _data_->_tmp46_, _data_->_tmp48_);
	} else {
		_data_->_tmp49_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
		_data_->_tmp50_ = _data_->_tmp49_;
		_data_->_tmp51_ = g_strdup ("model");
		_data_->_tmp52_ = _variant_new9 ("unknown");
		g_hash_table_insert (_data_->_tmp50_, _data_->_tmp51_, _data_->_tmp52_);
	}
	_data_->_tmp53_ = fso_gsm_theModem;
	_data_->_tmp54_ = NULL;
	_data_->_tmp54_ = fso_gsm_modem_createAtCommand (_data_->_tmp53_, FSO_GSM_TYPE_PLUS_CGMI, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CGMI");
	_data_->cgmi = (FsoGsmPlusCGMI*) _data_->_tmp54_;
	_data_->_tmp55_ = fso_gsm_theModem;
	_data_->_tmp56_ = _data_->cgmi;
	_data_->_tmp57_ = _data_->cgmi;
	_data_->_tmp58_ = NULL;
	_data_->_tmp58_ = fso_gsm_simple_at_command_execute ((FsoGsmSimpleAtCommand*) _data_->_tmp57_);
	_data_->_tmp59_ = _data_->_tmp58_;
	_data_->_tmp60_ = 0;
	_data_->_state_ = 3;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp55_, (FsoGsmAtCommand*) _data_->_tmp56_, _data_->_tmp59_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_information_run_ready, _data_);
	return FALSE;
	_state_3:
	_data_->_tmp61_ = NULL;
	_data_->_tmp61_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp55_, _data_->_res_, &_data_->_tmp60_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_data_->response = _data_->_tmp61_;
	_data_->response_length1 = _data_->_tmp60_;
	_data_->_response_size_ = _data_->response_length1;
	_g_free0 (_data_->_tmp59_);
	_data_->_tmp62_ = _data_->cgmi;
	_data_->_tmp63_ = _data_->response;
	_data_->_tmp63__length1 = _data_->response_length1;
	_data_->_tmp64_ = 0;
	_data_->_tmp64_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp62_, _data_->_tmp63_, _data_->_tmp63__length1);
	if (_data_->_tmp64_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp65_ = _data_->cgmi;
		_data_->_tmp66_ = ((FsoGsmSimpleAtCommand*) _data_->_tmp65_)->value;
		_data_->_tmp67_ = _variant_new10 ((const gchar*) ((const gchar*) _data_->_tmp66_));
		_g_variant_unref0 (_data_->value);
		_data_->value = _data_->_tmp67_;
		_data_->_tmp68_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
		_data_->_tmp69_ = _data_->_tmp68_;
		_data_->_tmp70_ = g_strdup ("manufacturer");
		_data_->_tmp71_ = _data_->value;
		_data_->_tmp72_ = _g_variant_ref0 (_data_->_tmp71_);
		g_hash_table_insert (_data_->_tmp69_, _data_->_tmp70_, _data_->_tmp72_);
	} else {
		_data_->_tmp73_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
		_data_->_tmp74_ = _data_->_tmp73_;
		_data_->_tmp75_ = g_strdup ("manufacturer");
		_data_->_tmp76_ = _variant_new11 ("unknown");
		g_hash_table_insert (_data_->_tmp74_, _data_->_tmp75_, _data_->_tmp76_);
	}
	_data_->_tmp77_ = fso_gsm_theModem;
	_data_->_tmp78_ = NULL;
	_data_->_tmp78_ = fso_gsm_modem_createAtCommand (_data_->_tmp77_, FSO_GSM_TYPE_PLUS_CGSN, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CGSN");
	_data_->cgsn = (FsoGsmPlusCGSN*) _data_->_tmp78_;
	_data_->_tmp79_ = fso_gsm_theModem;
	_data_->_tmp80_ = _data_->cgsn;
	_data_->_tmp81_ = _data_->cgsn;
	_data_->_tmp82_ = NULL;
	_data_->_tmp82_ = fso_gsm_simple_at_command_execute ((FsoGsmSimpleAtCommand*) _data_->_tmp81_);
	_data_->_tmp83_ = _data_->_tmp82_;
	_data_->_tmp84_ = 0;
	_data_->_state_ = 4;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp79_, (FsoGsmAtCommand*) _data_->_tmp80_, _data_->_tmp83_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_information_run_ready, _data_);
	return FALSE;
	_state_4:
	_data_->_tmp85_ = NULL;
	_data_->_tmp85_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp79_, _data_->_res_, &_data_->_tmp84_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_data_->response = _data_->_tmp85_;
	_data_->response_length1 = _data_->_tmp84_;
	_data_->_response_size_ = _data_->response_length1;
	_g_free0 (_data_->_tmp83_);
	_data_->_tmp86_ = _data_->cgsn;
	_data_->_tmp87_ = _data_->response;
	_data_->_tmp87__length1 = _data_->response_length1;
	_data_->_tmp88_ = 0;
	_data_->_tmp88_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp86_, _data_->_tmp87_, _data_->_tmp87__length1);
	if (_data_->_tmp88_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp89_ = _data_->cgsn;
		_data_->_tmp90_ = ((FsoGsmSimpleAtCommand*) _data_->_tmp89_)->value;
		_data_->_tmp91_ = _variant_new12 ((const gchar*) ((const gchar*) _data_->_tmp90_));
		_g_variant_unref0 (_data_->value);
		_data_->value = _data_->_tmp91_;
		_data_->_tmp92_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
		_data_->_tmp93_ = _data_->_tmp92_;
		_data_->_tmp94_ = g_strdup ("imei");
		_data_->_tmp95_ = _data_->value;
		_data_->_tmp96_ = _g_variant_ref0 (_data_->_tmp95_);
		g_hash_table_insert (_data_->_tmp93_, _data_->_tmp94_, _data_->_tmp96_);
	} else {
		_data_->_tmp97_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
		_data_->_tmp98_ = _data_->_tmp97_;
		_data_->_tmp99_ = g_strdup ("imei");
		_data_->_tmp100_ = _variant_new13 ("unknown");
		g_hash_table_insert (_data_->_tmp98_, _data_->_tmp99_, _data_->_tmp100_);
	}
	_data_->_tmp101_ = fso_gsm_theModem;
	_data_->_tmp102_ = NULL;
	_data_->_tmp102_ = fso_gsm_modem_createAtCommand (_data_->_tmp101_, FSO_GSM_TYPE_PLUS_CMICKEY, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CMICKEY");
	_data_->cmickey = (FsoGsmPlusCMICKEY*) _data_->_tmp102_;
	_data_->_tmp103_ = fso_gsm_theModem;
	_data_->_tmp104_ = _data_->cmickey;
	_data_->_tmp105_ = _data_->cmickey;
	_data_->_tmp106_ = NULL;
	_data_->_tmp106_ = fso_gsm_simple_at_command_execute ((FsoGsmSimpleAtCommand*) _data_->_tmp105_);
	_data_->_tmp107_ = _data_->_tmp106_;
	_data_->_tmp108_ = 0;
	_data_->_state_ = 5;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp103_, (FsoGsmAtCommand*) _data_->_tmp104_, _data_->_tmp107_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_information_run_ready, _data_);
	return FALSE;
	_state_5:
	_data_->_tmp109_ = NULL;
	_data_->_tmp109_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp103_, _data_->_res_, &_data_->_tmp108_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_data_->response = _data_->_tmp109_;
	_data_->response_length1 = _data_->_tmp108_;
	_data_->_response_size_ = _data_->response_length1;
	_g_free0 (_data_->_tmp107_);
	_data_->_tmp110_ = _data_->cmickey;
	_data_->_tmp111_ = _data_->response;
	_data_->_tmp111__length1 = _data_->response_length1;
	_data_->_tmp112_ = 0;
	_data_->_tmp112_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp110_, _data_->_tmp111_, _data_->_tmp111__length1);
	if (_data_->_tmp112_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp113_ = _data_->cmickey;
		_data_->_tmp114_ = ((FsoGsmSimpleAtCommand*) _data_->_tmp113_)->value;
		_data_->_tmp115_ = _variant_new14 ((const gchar*) GPOINTER_TO_INT (_data_->_tmp114_));
		_g_variant_unref0 (_data_->value);
		_data_->value = _data_->_tmp115_;
		_data_->_tmp116_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
		_data_->_tmp117_ = _data_->_tmp116_;
		_data_->_tmp118_ = g_strdup ("mickey");
		_data_->_tmp119_ = _data_->value;
		_data_->_tmp120_ = _g_variant_ref0 (_data_->_tmp119_);
		g_hash_table_insert (_data_->_tmp117_, _data_->_tmp118_, _data_->_tmp120_);
	}
	_g_object_unref0 (_data_->cmickey);
	_g_object_unref0 (_data_->cgsn);
	_g_object_unref0 (_data_->cgmi);
	_g_object_unref0 (_data_->cgmm);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cgmr);
	_g_variant_unref0 (_data_->value);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceGetInformation* fso_gsm_at_device_get_information_construct (GType object_type) {
	FsoGsmAtDeviceGetInformation * self = NULL;
	self = (FsoGsmAtDeviceGetInformation*) fso_gsm_device_get_information_construct (object_type);
	return self;
}


FsoGsmAtDeviceGetInformation* fso_gsm_at_device_get_information_new (void) {
	return fso_gsm_at_device_get_information_construct (FSO_GSM_TYPE_AT_DEVICE_GET_INFORMATION);
}


static void fso_gsm_at_device_get_information_class_init (FsoGsmAtDeviceGetInformationClass * klass) {
	fso_gsm_at_device_get_information_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_GET_INFORMATION_CLASS (klass)->run = fso_gsm_at_device_get_information_real_run;
	FSO_GSM_DEVICE_GET_INFORMATION_CLASS (klass)->run_finish = fso_gsm_at_device_get_information_real_run_finish;
}


static void fso_gsm_at_device_get_information_instance_init (FsoGsmAtDeviceGetInformation * self) {
}


GType fso_gsm_at_device_get_information_get_type (void) {
	static volatile gsize fso_gsm_at_device_get_information_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_get_information_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceGetInformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_get_information_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceGetInformation), 0, (GInstanceInitFunc) fso_gsm_at_device_get_information_instance_init, NULL };
		GType fso_gsm_at_device_get_information_type_id;
		fso_gsm_at_device_get_information_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_GET_INFORMATION, "FsoGsmAtDeviceGetInformation", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_get_information_type_id__volatile, fso_gsm_at_device_get_information_type_id);
	}
	return fso_gsm_at_device_get_information_type_id__volatile;
}


static void fso_gsm_at_device_get_features_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceGetFeaturesRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceGetFeaturesRunData, _data_);
}


static void fso_gsm_at_device_get_features_real_run (FsoGsmDeviceGetFeatures* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceGetFeatures * self;
	FsoGsmAtDeviceGetFeaturesRunData* _data_;
	FsoGsmAtDeviceGetFeatures* _tmp0_;
	self = (FsoGsmAtDeviceGetFeatures*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceGetFeaturesRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_get_features_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_get_features_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_device_get_features_real_run_co (_data_);
}


static void fso_gsm_at_device_get_features_real_run_finish (FsoGsmDeviceGetFeatures* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceGetFeaturesRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static GVariant* _variant_new15 (gboolean value) {
	return g_variant_ref_sink (g_variant_new_boolean (value));
}


static GVariant* _variant_new16 (gboolean value) {
	return g_variant_ref_sink (g_variant_new_boolean (value));
}


static GVariant* _variant_new17 (gboolean value) {
	return g_variant_ref_sink (g_variant_new_boolean (value));
}


static GVariant* _variant_new18 (gboolean value) {
	return g_variant_ref_sink (g_variant_new_boolean (value));
}


static GVariant* _variant_new19 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static void fso_gsm_at_device_get_features_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceGetFeaturesRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_get_features_real_run_co (_data_);
}


static gboolean string_contains (const gchar* self, const gchar* needle) {
	gboolean result = FALSE;
	const gchar* _tmp0_;
	gchar* _tmp1_ = NULL;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (needle != NULL, FALSE);
	_tmp0_ = needle;
	_tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
	result = _tmp1_ != NULL;
	return result;
}


static GVariant* _variant_new20 (gboolean value) {
	return g_variant_ref_sink (g_variant_new_boolean (value));
}


static GVariant* _variant_new21 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new22 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new23 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static gboolean fso_gsm_at_device_get_features_real_run_co (FsoGsmAtDeviceGetFeaturesRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		case 3:
		goto _state_3;
		case 4:
		goto _state_4;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = g_str_hash;
	_data_->_tmp1_ = g_str_equal;
	_data_->_tmp2_ = g_hash_table_new_full (_data_->_tmp0_, _data_->_tmp1_, _g_free0_, _g_variant_unref0_);
	_data_->_tmp3_ = _data_->_tmp2_;
	fso_gsm_device_get_features_set_features ((FsoGsmDeviceGetFeatures*) _data_->self, _data_->_tmp3_);
	_g_hash_table_unref0 (_data_->_tmp3_);
	_data_->_tmp4_ = fso_gsm_theModem;
	_data_->_tmp5_ = NULL;
	_data_->_tmp5_ = fso_gsm_modem_data (_data_->_tmp4_);
	_data_->data = _data_->_tmp5_;
	_data_->_tmp6_ = fso_gsm_device_get_features_get_features ((FsoGsmDeviceGetFeatures*) _data_->self);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp8_ = g_strdup ("gsm");
	_data_->_tmp9_ = _data_->data;
	_data_->_tmp10_ = _data_->_tmp9_->supportsGSM;
	_data_->_tmp11_ = _variant_new15 (_data_->_tmp10_);
	g_hash_table_insert (_data_->_tmp7_, _data_->_tmp8_, _data_->_tmp11_);
	_data_->_tmp12_ = fso_gsm_device_get_features_get_features ((FsoGsmDeviceGetFeatures*) _data_->self);
	_data_->_tmp13_ = _data_->_tmp12_;
	_data_->_tmp14_ = g_strdup ("voice");
	_data_->_tmp15_ = _data_->data;
	_data_->_tmp16_ = _data_->_tmp15_->supportsVoice;
	_data_->_tmp17_ = _variant_new16 (_data_->_tmp16_);
	g_hash_table_insert (_data_->_tmp13_, _data_->_tmp14_, _data_->_tmp17_);
	_data_->_tmp18_ = fso_gsm_device_get_features_get_features ((FsoGsmDeviceGetFeatures*) _data_->self);
	_data_->_tmp19_ = _data_->_tmp18_;
	_data_->_tmp20_ = g_strdup ("cdma");
	_data_->_tmp21_ = _data_->data;
	_data_->_tmp22_ = _data_->_tmp21_->supportsCDMA;
	_data_->_tmp23_ = _variant_new17 (_data_->_tmp22_);
	g_hash_table_insert (_data_->_tmp19_, _data_->_tmp20_, _data_->_tmp23_);
	_data_->_tmp24_ = fso_gsm_device_get_features_get_features ((FsoGsmDeviceGetFeatures*) _data_->self);
	_data_->_tmp25_ = _data_->_tmp24_;
	_data_->_tmp26_ = g_strdup ("csd");
	_data_->_tmp27_ = _data_->data;
	_data_->_tmp28_ = _data_->_tmp27_->supportsCSD;
	_data_->_tmp29_ = _variant_new18 (_data_->_tmp28_);
	g_hash_table_insert (_data_->_tmp25_, _data_->_tmp26_, _data_->_tmp29_);
	_data_->_tmp30_ = fso_gsm_device_get_features_get_features ((FsoGsmDeviceGetFeatures*) _data_->self);
	_data_->_tmp31_ = _data_->_tmp30_;
	_data_->_tmp32_ = g_strdup ("fax");
	_data_->_tmp33_ = _data_->data;
	_data_->_tmp34_ = _data_->_tmp33_->supportsFAX;
	_data_->_tmp35_ = _variant_new19 (_data_->_tmp34_);
	g_hash_table_insert (_data_->_tmp31_, _data_->_tmp32_, _data_->_tmp35_);
	_data_->_tmp36_ = fso_gsm_theModem;
	_data_->_tmp37_ = NULL;
	_data_->_tmp37_ = fso_gsm_modem_createAtCommand (_data_->_tmp36_, FSO_GSM_TYPE_PLUS_GCAP, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+GCAP");
	_data_->gcap = (FsoGsmPlusGCAP*) _data_->_tmp37_;
	_data_->_tmp38_ = fso_gsm_theModem;
	_data_->_tmp39_ = _data_->gcap;
	_data_->_tmp40_ = _data_->gcap;
	_data_->_tmp41_ = NULL;
	_data_->_tmp41_ = fso_gsm_simple_at_command_execute ((FsoGsmSimpleAtCommand*) _data_->_tmp40_);
	_data_->_tmp42_ = _data_->_tmp41_;
	_data_->_tmp43_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp38_, (FsoGsmAtCommand*) _data_->_tmp39_, _data_->_tmp42_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_features_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp44_ = NULL;
	_data_->_tmp44_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp38_, _data_->_res_, &_data_->_tmp43_);
	_data_->_tmp45_ = _data_->_tmp44_;
	_data_->_tmp45__length1 = _data_->_tmp43_;
	_g_free0 (_data_->_tmp42_);
	_data_->response = _data_->_tmp45_;
	_data_->response_length1 = _data_->_tmp45__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp46_ = _data_->gcap;
	_data_->_tmp47_ = _data_->response;
	_data_->_tmp47__length1 = _data_->response_length1;
	_data_->_tmp48_ = 0;
	_data_->_tmp48_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp46_, _data_->_tmp47_, _data_->_tmp47__length1);
	if (_data_->_tmp48_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp50_ = _data_->gcap;
		_data_->_tmp51_ = ((FsoGsmSimpleAtCommand*) _data_->_tmp50_)->value;
		_data_->_tmp52_ = FALSE;
		_data_->_tmp52_ = string_contains ((const gchar*) _data_->_tmp51_, "GSM");
		if (_data_->_tmp52_) {
			_data_->_tmp49_ = TRUE;
		} else {
			_data_->_tmp53_ = _data_->data;
			_data_->_tmp54_ = _data_->_tmp53_->supportsGSM;
			_data_->_tmp49_ = _data_->_tmp54_;
		}
		_data_->_tmp55_ = _data_->_tmp49_;
		if (_data_->_tmp55_) {
			_data_->_tmp56_ = fso_gsm_device_get_features_get_features ((FsoGsmDeviceGetFeatures*) _data_->self);
			_data_->_tmp57_ = _data_->_tmp56_;
			_data_->_tmp58_ = g_strdup ("gsm");
			_data_->_tmp59_ = _variant_new20 (TRUE);
			g_hash_table_insert (_data_->_tmp57_, _data_->_tmp58_, _data_->_tmp59_);
		}
	}
	_data_->_tmp60_ = fso_gsm_theModem;
	_data_->_tmp61_ = NULL;
	_data_->_tmp61_ = fso_gsm_modem_createAtCommand (_data_->_tmp60_, FSO_GSM_TYPE_PLUS_CGCLASS, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CGCLASS");
	_data_->cgclass = (FsoGsmPlusCGCLASS*) _data_->_tmp61_;
	_data_->_tmp62_ = fso_gsm_theModem;
	_data_->_tmp63_ = _data_->cgclass;
	_data_->_tmp64_ = _data_->cgclass;
	_data_->_tmp65_ = NULL;
	_data_->_tmp65_ = fso_gsm_simple_at_command_test ((FsoGsmSimpleAtCommand*) _data_->_tmp64_);
	_data_->_tmp66_ = _data_->_tmp65_;
	_data_->_tmp67_ = 0;
	_data_->_state_ = 2;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp62_, (FsoGsmAtCommand*) _data_->_tmp63_, _data_->_tmp66_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_features_run_ready, _data_);
	return FALSE;
	_state_2:
	_data_->_tmp68_ = NULL;
	_data_->_tmp68_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp62_, _data_->_res_, &_data_->_tmp67_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_data_->response = _data_->_tmp68_;
	_data_->response_length1 = _data_->_tmp67_;
	_data_->_response_size_ = _data_->response_length1;
	_g_free0 (_data_->_tmp66_);
	_data_->_tmp69_ = _data_->cgclass;
	_data_->_tmp70_ = _data_->response;
	_data_->_tmp70__length1 = _data_->response_length1;
	_data_->_tmp71_ = 0;
	_data_->_tmp71_ = fso_gsm_abstract_at_command_validateTest ((FsoGsmAbstractAtCommand*) _data_->_tmp69_, _data_->_tmp70_, _data_->_tmp70__length1);
	if (_data_->_tmp71_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp72_ = fso_gsm_device_get_features_get_features ((FsoGsmDeviceGetFeatures*) _data_->self);
		_data_->_tmp73_ = _data_->_tmp72_;
		_data_->_tmp74_ = g_strdup ("gprs");
		_data_->_tmp75_ = _data_->cgclass;
		_data_->_tmp76_ = ((FsoGsmSimpleAtCommand*) _data_->_tmp75_)->righthandside;
		_data_->_tmp77_ = _variant_new21 (_data_->_tmp76_);
		g_hash_table_insert (_data_->_tmp73_, _data_->_tmp74_, _data_->_tmp77_);
	}
	_data_->_tmp78_ = fso_gsm_theModem;
	_data_->_tmp79_ = NULL;
	_data_->_tmp79_ = fso_gsm_modem_createAtCommand (_data_->_tmp78_, FSO_GSM_TYPE_PLUS_FCLASS, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+FCLASS");
	_data_->fclass = (FsoGsmPlusFCLASS*) _data_->_tmp79_;
	_data_->_tmp80_ = fso_gsm_theModem;
	_data_->_tmp81_ = _data_->fclass;
	_data_->_tmp82_ = _data_->fclass;
	_data_->_tmp83_ = NULL;
	_data_->_tmp83_ = fso_gsm_simple_at_command_test ((FsoGsmSimpleAtCommand*) _data_->_tmp82_);
	_data_->_tmp84_ = _data_->_tmp83_;
	_data_->_tmp85_ = 0;
	_data_->_state_ = 3;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp80_, (FsoGsmAtCommand*) _data_->_tmp81_, _data_->_tmp84_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_features_run_ready, _data_);
	return FALSE;
	_state_3:
	_data_->_tmp86_ = NULL;
	_data_->_tmp86_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp80_, _data_->_res_, &_data_->_tmp85_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_data_->response = _data_->_tmp86_;
	_data_->response_length1 = _data_->_tmp85_;
	_data_->_response_size_ = _data_->response_length1;
	_g_free0 (_data_->_tmp84_);
	_data_->_tmp87_ = _data_->fclass;
	_data_->_tmp88_ = _data_->response;
	_data_->_tmp88__length1 = _data_->response_length1;
	_data_->_tmp89_ = 0;
	_data_->_tmp89_ = fso_gsm_abstract_at_command_validateTest ((FsoGsmAbstractAtCommand*) _data_->_tmp87_, _data_->_tmp88_, _data_->_tmp88__length1);
	if (_data_->_tmp89_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp90_ = fso_gsm_device_get_features_get_features ((FsoGsmDeviceGetFeatures*) _data_->self);
		_data_->_tmp91_ = _data_->_tmp90_;
		_data_->_tmp92_ = g_strdup ("fax");
		_data_->_tmp93_ = _data_->fclass;
		_data_->_tmp94_ = ((FsoGsmSimpleAtCommand*) _data_->_tmp93_)->righthandside;
		_data_->_tmp95_ = _variant_new22 (_data_->_tmp94_);
		g_hash_table_insert (_data_->_tmp91_, _data_->_tmp92_, _data_->_tmp95_);
	}
	_data_->_tmp96_ = fso_gsm_theModem;
	_data_->_tmp97_ = NULL;
	_data_->_tmp97_ = fso_gsm_modem_createAtCommand (_data_->_tmp96_, FSO_GSM_TYPE_PLUS_CLCK, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CLCK");
	_data_->fac = (FsoGsmPlusCLCK*) _data_->_tmp97_;
	_data_->_tmp98_ = fso_gsm_theModem;
	_data_->_tmp99_ = _data_->fac;
	_data_->_tmp100_ = _data_->fac;
	_data_->_tmp101_ = NULL;
	_data_->_tmp101_ = fso_gsm_plus_clck_test (_data_->_tmp100_);
	_data_->_tmp102_ = _data_->_tmp101_;
	_data_->_tmp103_ = 0;
	_data_->_state_ = 4;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp98_, (FsoGsmAtCommand*) _data_->_tmp99_, _data_->_tmp102_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_features_run_ready, _data_);
	return FALSE;
	_state_4:
	_data_->_tmp104_ = NULL;
	_data_->_tmp104_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp98_, _data_->_res_, &_data_->_tmp103_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_data_->response = _data_->_tmp104_;
	_data_->response_length1 = _data_->_tmp103_;
	_data_->_response_size_ = _data_->response_length1;
	_g_free0 (_data_->_tmp102_);
	_data_->_tmp105_ = _data_->fac;
	_data_->_tmp106_ = _data_->response;
	_data_->_tmp106__length1 = _data_->response_length1;
	_data_->_tmp107_ = 0;
	_data_->_tmp107_ = fso_gsm_abstract_at_command_validateTest ((FsoGsmAbstractAtCommand*) _data_->_tmp105_, _data_->_tmp106_, _data_->_tmp106__length1);
	if (_data_->_tmp107_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp108_ = fso_gsm_device_get_features_get_features ((FsoGsmDeviceGetFeatures*) _data_->self);
		_data_->_tmp109_ = _data_->_tmp108_;
		_data_->_tmp110_ = g_strdup ("facilities");
		_data_->_tmp111_ = _data_->fac;
		_data_->_tmp112_ = _data_->_tmp111_->facilities;
		_data_->_tmp113_ = _variant_new23 (_data_->_tmp112_);
		g_hash_table_insert (_data_->_tmp109_, _data_->_tmp110_, _data_->_tmp113_);
	}
	_g_object_unref0 (_data_->fac);
	_g_object_unref0 (_data_->fclass);
	_g_object_unref0 (_data_->cgclass);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->gcap);
	_g_object_unref0 (_data_->data);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceGetFeatures* fso_gsm_at_device_get_features_construct (GType object_type) {
	FsoGsmAtDeviceGetFeatures * self = NULL;
	self = (FsoGsmAtDeviceGetFeatures*) fso_gsm_device_get_features_construct (object_type);
	return self;
}


FsoGsmAtDeviceGetFeatures* fso_gsm_at_device_get_features_new (void) {
	return fso_gsm_at_device_get_features_construct (FSO_GSM_TYPE_AT_DEVICE_GET_FEATURES);
}


static void fso_gsm_at_device_get_features_class_init (FsoGsmAtDeviceGetFeaturesClass * klass) {
	fso_gsm_at_device_get_features_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_GET_FEATURES_CLASS (klass)->run = fso_gsm_at_device_get_features_real_run;
	FSO_GSM_DEVICE_GET_FEATURES_CLASS (klass)->run_finish = fso_gsm_at_device_get_features_real_run_finish;
}


static void fso_gsm_at_device_get_features_instance_init (FsoGsmAtDeviceGetFeatures * self) {
}


GType fso_gsm_at_device_get_features_get_type (void) {
	static volatile gsize fso_gsm_at_device_get_features_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_get_features_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceGetFeaturesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_get_features_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceGetFeatures), 0, (GInstanceInitFunc) fso_gsm_at_device_get_features_instance_init, NULL };
		GType fso_gsm_at_device_get_features_type_id;
		fso_gsm_at_device_get_features_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_GET_FEATURES, "FsoGsmAtDeviceGetFeatures", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_get_features_type_id__volatile, fso_gsm_at_device_get_features_type_id);
	}
	return fso_gsm_at_device_get_features_type_id__volatile;
}


static void fso_gsm_at_device_get_microphone_muted_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceGetMicrophoneMutedRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceGetMicrophoneMutedRunData, _data_);
}


static void fso_gsm_at_device_get_microphone_muted_real_run (FsoGsmDeviceGetMicrophoneMuted* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceGetMicrophoneMuted * self;
	FsoGsmAtDeviceGetMicrophoneMutedRunData* _data_;
	FsoGsmAtDeviceGetMicrophoneMuted* _tmp0_;
	self = (FsoGsmAtDeviceGetMicrophoneMuted*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceGetMicrophoneMutedRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_get_microphone_muted_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_get_microphone_muted_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_device_get_microphone_muted_real_run_co (_data_);
}


static void fso_gsm_at_device_get_microphone_muted_real_run_finish (FsoGsmDeviceGetMicrophoneMuted* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceGetMicrophoneMutedRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_device_get_microphone_muted_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceGetMicrophoneMutedRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_get_microphone_muted_real_run_co (_data_);
}


static gboolean fso_gsm_at_device_get_microphone_muted_real_run_co (FsoGsmAtDeviceGetMicrophoneMutedRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CMUT, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CMUT");
	_data_->cmd = (FsoGsmPlusCMUT*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_simple_at_command_query ((FsoGsmSimpleAtCommand*) _data_->cmd);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_microphone_muted_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp8_ = ((FsoGsmSimpleAtCommand*) _data_->cmd)->value;
	fso_gsm_device_get_microphone_muted_set_muted ((FsoGsmDeviceGetMicrophoneMuted*) _data_->self, GPOINTER_TO_INT (_data_->_tmp8_) == 1);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceGetMicrophoneMuted* fso_gsm_at_device_get_microphone_muted_construct (GType object_type) {
	FsoGsmAtDeviceGetMicrophoneMuted * self = NULL;
	self = (FsoGsmAtDeviceGetMicrophoneMuted*) fso_gsm_device_get_microphone_muted_construct (object_type);
	return self;
}


FsoGsmAtDeviceGetMicrophoneMuted* fso_gsm_at_device_get_microphone_muted_new (void) {
	return fso_gsm_at_device_get_microphone_muted_construct (FSO_GSM_TYPE_AT_DEVICE_GET_MICROPHONE_MUTED);
}


static void fso_gsm_at_device_get_microphone_muted_class_init (FsoGsmAtDeviceGetMicrophoneMutedClass * klass) {
	fso_gsm_at_device_get_microphone_muted_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_GET_MICROPHONE_MUTED_CLASS (klass)->run = fso_gsm_at_device_get_microphone_muted_real_run;
	FSO_GSM_DEVICE_GET_MICROPHONE_MUTED_CLASS (klass)->run_finish = fso_gsm_at_device_get_microphone_muted_real_run_finish;
}


static void fso_gsm_at_device_get_microphone_muted_instance_init (FsoGsmAtDeviceGetMicrophoneMuted * self) {
}


GType fso_gsm_at_device_get_microphone_muted_get_type (void) {
	static volatile gsize fso_gsm_at_device_get_microphone_muted_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_get_microphone_muted_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceGetMicrophoneMutedClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_get_microphone_muted_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceGetMicrophoneMuted), 0, (GInstanceInitFunc) fso_gsm_at_device_get_microphone_muted_instance_init, NULL };
		GType fso_gsm_at_device_get_microphone_muted_type_id;
		fso_gsm_at_device_get_microphone_muted_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_GET_MICROPHONE_MUTED, "FsoGsmAtDeviceGetMicrophoneMuted", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_get_microphone_muted_type_id__volatile, fso_gsm_at_device_get_microphone_muted_type_id);
	}
	return fso_gsm_at_device_get_microphone_muted_type_id__volatile;
}


static void fso_gsm_at_device_get_sim_buffers_sms_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceGetSimBuffersSmsRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceGetSimBuffersSmsRunData, _data_);
}


static void fso_gsm_at_device_get_sim_buffers_sms_real_run (FsoGsmDeviceGetSimBuffersSms* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceGetSimBuffersSms * self;
	FsoGsmAtDeviceGetSimBuffersSmsRunData* _data_;
	FsoGsmAtDeviceGetSimBuffersSms* _tmp0_;
	self = (FsoGsmAtDeviceGetSimBuffersSms*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceGetSimBuffersSmsRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_get_sim_buffers_sms_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_get_sim_buffers_sms_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_device_get_sim_buffers_sms_real_run_co (_data_);
}


static void fso_gsm_at_device_get_sim_buffers_sms_real_run_finish (FsoGsmDeviceGetSimBuffersSms* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceGetSimBuffersSmsRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_device_get_sim_buffers_sms_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceGetSimBuffersSmsRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_get_sim_buffers_sms_real_run_co (_data_);
}


static gboolean fso_gsm_at_device_get_sim_buffers_sms_real_run_co (FsoGsmAtDeviceGetSimBuffersSmsRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CNMI, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CNMI");
	_data_->cmd = (FsoGsmPlusCNMI*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_plus_cnmi_query (_data_->cmd);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_sim_buffers_sms_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp8_ = _data_->cmd->mt;
	fso_gsm_device_get_sim_buffers_sms_set_buffers ((FsoGsmDeviceGetSimBuffersSms*) _data_->self, _data_->_tmp8_ < 2);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceGetSimBuffersSms* fso_gsm_at_device_get_sim_buffers_sms_construct (GType object_type) {
	FsoGsmAtDeviceGetSimBuffersSms * self = NULL;
	self = (FsoGsmAtDeviceGetSimBuffersSms*) fso_gsm_device_get_sim_buffers_sms_construct (object_type);
	return self;
}


FsoGsmAtDeviceGetSimBuffersSms* fso_gsm_at_device_get_sim_buffers_sms_new (void) {
	return fso_gsm_at_device_get_sim_buffers_sms_construct (FSO_GSM_TYPE_AT_DEVICE_GET_SIM_BUFFERS_SMS);
}


static void fso_gsm_at_device_get_sim_buffers_sms_class_init (FsoGsmAtDeviceGetSimBuffersSmsClass * klass) {
	fso_gsm_at_device_get_sim_buffers_sms_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_GET_SIM_BUFFERS_SMS_CLASS (klass)->run = fso_gsm_at_device_get_sim_buffers_sms_real_run;
	FSO_GSM_DEVICE_GET_SIM_BUFFERS_SMS_CLASS (klass)->run_finish = fso_gsm_at_device_get_sim_buffers_sms_real_run_finish;
}


static void fso_gsm_at_device_get_sim_buffers_sms_instance_init (FsoGsmAtDeviceGetSimBuffersSms * self) {
}


GType fso_gsm_at_device_get_sim_buffers_sms_get_type (void) {
	static volatile gsize fso_gsm_at_device_get_sim_buffers_sms_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_get_sim_buffers_sms_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceGetSimBuffersSmsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_get_sim_buffers_sms_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceGetSimBuffersSms), 0, (GInstanceInitFunc) fso_gsm_at_device_get_sim_buffers_sms_instance_init, NULL };
		GType fso_gsm_at_device_get_sim_buffers_sms_type_id;
		fso_gsm_at_device_get_sim_buffers_sms_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_GET_SIM_BUFFERS_SMS, "FsoGsmAtDeviceGetSimBuffersSms", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_get_sim_buffers_sms_type_id__volatile, fso_gsm_at_device_get_sim_buffers_sms_type_id);
	}
	return fso_gsm_at_device_get_sim_buffers_sms_type_id__volatile;
}


static void fso_gsm_at_device_get_speaker_volume_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceGetSpeakerVolumeRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceGetSpeakerVolumeRunData, _data_);
}


static void fso_gsm_at_device_get_speaker_volume_real_run (FsoGsmDeviceGetSpeakerVolume* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceGetSpeakerVolume * self;
	FsoGsmAtDeviceGetSpeakerVolumeRunData* _data_;
	FsoGsmAtDeviceGetSpeakerVolume* _tmp0_;
	self = (FsoGsmAtDeviceGetSpeakerVolume*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceGetSpeakerVolumeRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_get_speaker_volume_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_get_speaker_volume_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_device_get_speaker_volume_real_run_co (_data_);
}


static void fso_gsm_at_device_get_speaker_volume_real_run_finish (FsoGsmDeviceGetSpeakerVolume* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceGetSpeakerVolumeRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_device_get_speaker_volume_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceGetSpeakerVolumeRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_get_speaker_volume_real_run_co (_data_);
}


static gboolean fso_gsm_at_device_get_speaker_volume_real_run_co (FsoGsmAtDeviceGetSpeakerVolumeRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_state_ = 1;
	fso_gsm_gatherSpeakerVolumeRange (fso_gsm_at_device_get_speaker_volume_run_ready, _data_);
	return FALSE;
	_state_1:
	fso_gsm_gatherSpeakerVolumeRange_finish (_data_->_res_, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CLVL, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CLVL");
	_data_->cmd = (FsoGsmPlusCLVL*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = _data_->cmd;
	_data_->_tmp4_ = _data_->cmd;
	_data_->_tmp5_ = NULL;
	_data_->_tmp5_ = fso_gsm_simple_at_command_query ((FsoGsmSimpleAtCommand*) _data_->_tmp4_);
	_data_->_tmp6_ = _data_->_tmp5_;
	_data_->_tmp7_ = 0;
	_data_->_state_ = 2;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->_tmp3_, _data_->_tmp6_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_speaker_volume_run_ready, _data_);
	return FALSE;
	_state_2:
	_data_->_tmp8_ = NULL;
	_data_->_tmp8_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp7_);
	_data_->_tmp9_ = _data_->_tmp8_;
	_data_->_tmp9__length1 = _data_->_tmp7_;
	_g_free0 (_data_->_tmp6_);
	_data_->response = _data_->_tmp9_;
	_data_->response_length1 = _data_->_tmp9__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp10_ = _data_->cmd;
	_data_->_tmp11_ = _data_->response;
	_data_->_tmp11__length1 = _data_->response_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->_tmp10_, _data_->_tmp11_, _data_->_tmp11__length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp12_ = fso_gsm_theModem;
	_data_->_tmp13_ = NULL;
	_data_->_tmp13_ = fso_gsm_modem_data (_data_->_tmp12_);
	_data_->data = _data_->_tmp13_;
	_data_->_tmp14_ = _data_->data;
	_data_->_tmp15_ = _data_->_tmp14_->speakerVolumeMaximum;
	_data_->_tmp16_ = _data_->data;
	_data_->_tmp17_ = _data_->_tmp16_->speakerVolumeMinimum;
	_data_->interval = 100.0 / (_data_->_tmp15_ - _data_->_tmp17_);
	_data_->_tmp18_ = _data_->data;
	_data_->_tmp19_ = _data_->_tmp18_->speakerVolumeMinimum;
	_data_->_tmp20_ = _data_->cmd;
	_data_->_tmp21_ = ((FsoGsmSimpleAtCommand*) _data_->_tmp20_)->value;
	_data_->_tmp22_ = _data_->interval;
	_data_->_tmp23_ = 0.0;
	_data_->_tmp23_ = round (GPOINTER_TO_INT (_data_->_tmp21_) * _data_->_tmp22_);
	fso_gsm_device_get_speaker_volume_set_volume ((FsoGsmDeviceGetSpeakerVolume*) _data_->self, _data_->_tmp19_ + ((gint) _data_->_tmp23_));
	_g_object_unref0 (_data_->data);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceGetSpeakerVolume* fso_gsm_at_device_get_speaker_volume_construct (GType object_type) {
	FsoGsmAtDeviceGetSpeakerVolume * self = NULL;
	self = (FsoGsmAtDeviceGetSpeakerVolume*) fso_gsm_device_get_speaker_volume_construct (object_type);
	return self;
}


FsoGsmAtDeviceGetSpeakerVolume* fso_gsm_at_device_get_speaker_volume_new (void) {
	return fso_gsm_at_device_get_speaker_volume_construct (FSO_GSM_TYPE_AT_DEVICE_GET_SPEAKER_VOLUME);
}


static void fso_gsm_at_device_get_speaker_volume_class_init (FsoGsmAtDeviceGetSpeakerVolumeClass * klass) {
	fso_gsm_at_device_get_speaker_volume_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_GET_SPEAKER_VOLUME_CLASS (klass)->run = fso_gsm_at_device_get_speaker_volume_real_run;
	FSO_GSM_DEVICE_GET_SPEAKER_VOLUME_CLASS (klass)->run_finish = fso_gsm_at_device_get_speaker_volume_real_run_finish;
}


static void fso_gsm_at_device_get_speaker_volume_instance_init (FsoGsmAtDeviceGetSpeakerVolume * self) {
}


GType fso_gsm_at_device_get_speaker_volume_get_type (void) {
	static volatile gsize fso_gsm_at_device_get_speaker_volume_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_get_speaker_volume_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceGetSpeakerVolumeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_get_speaker_volume_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceGetSpeakerVolume), 0, (GInstanceInitFunc) fso_gsm_at_device_get_speaker_volume_instance_init, NULL };
		GType fso_gsm_at_device_get_speaker_volume_type_id;
		fso_gsm_at_device_get_speaker_volume_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_GET_SPEAKER_VOLUME, "FsoGsmAtDeviceGetSpeakerVolume", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_get_speaker_volume_type_id__volatile, fso_gsm_at_device_get_speaker_volume_type_id);
	}
	return fso_gsm_at_device_get_speaker_volume_type_id__volatile;
}


static void fso_gsm_at_device_get_power_status_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceGetPowerStatusRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceGetPowerStatusRunData, _data_);
}


static void fso_gsm_at_device_get_power_status_real_run (FsoGsmDeviceGetPowerStatus* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceGetPowerStatus * self;
	FsoGsmAtDeviceGetPowerStatusRunData* _data_;
	FsoGsmAtDeviceGetPowerStatus* _tmp0_;
	self = (FsoGsmAtDeviceGetPowerStatus*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceGetPowerStatusRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_get_power_status_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_get_power_status_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_device_get_power_status_real_run_co (_data_);
}


static void fso_gsm_at_device_get_power_status_real_run_finish (FsoGsmDeviceGetPowerStatus* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceGetPowerStatusRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_device_get_power_status_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceGetPowerStatusRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_get_power_status_real_run_co (_data_);
}


static gboolean fso_gsm_at_device_get_power_status_real_run_co (FsoGsmAtDeviceGetPowerStatusRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CBC, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CBC");
	_data_->cmd = (FsoGsmPlusCBC*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = _data_->cmd;
	_data_->_tmp4_ = _data_->cmd;
	_data_->_tmp5_ = NULL;
	_data_->_tmp5_ = fso_gsm_plus_cbc_execute (_data_->_tmp4_);
	_data_->_tmp6_ = _data_->_tmp5_;
	_data_->_tmp7_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->_tmp3_, _data_->_tmp6_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_get_power_status_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp8_ = NULL;
	_data_->_tmp8_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp7_);
	_data_->_tmp9_ = _data_->_tmp8_;
	_data_->_tmp9__length1 = _data_->_tmp7_;
	_g_free0 (_data_->_tmp6_);
	_data_->response = _data_->_tmp9_;
	_data_->response_length1 = _data_->_tmp9__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp10_ = _data_->cmd;
	_data_->_tmp11_ = _data_->response;
	_data_->_tmp11__length1 = _data_->response_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->_tmp10_, _data_->_tmp11_, _data_->_tmp11__length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp12_ = _data_->cmd;
	_data_->_tmp13_ = _data_->_tmp12_->status;
	switch (_data_->_tmp13_) {
		case FSO_GSM_PLUS_CBC_STATUS_DISCHARGING:
		{
			_data_->_tmp14_ = _data_->cmd;
			_data_->_tmp15_ = _data_->_tmp14_->level;
			if (_data_->_tmp15_ > 20) {
				fso_gsm_device_get_power_status_set_status ((FsoGsmDeviceGetPowerStatus*) _data_->self, FREE_SMARTPHONE_DEVICE_POWER_STATUS_DISCHARGING);
			} else {
				_data_->_tmp16_ = _data_->cmd;
				_data_->_tmp17_ = _data_->_tmp16_->level;
				if (_data_->_tmp17_ > 10) {
					fso_gsm_device_get_power_status_set_status ((FsoGsmDeviceGetPowerStatus*) _data_->self, FREE_SMARTPHONE_DEVICE_POWER_STATUS_CRITICAL);
				} else {
					_data_->_tmp18_ = _data_->cmd;
					_data_->_tmp19_ = _data_->_tmp18_->level;
					if (_data_->_tmp19_ < 5) {
						fso_gsm_device_get_power_status_set_status ((FsoGsmDeviceGetPowerStatus*) _data_->self, FREE_SMARTPHONE_DEVICE_POWER_STATUS_EMPTY);
					}
				}
			}
			break;
		}
		case FSO_GSM_PLUS_CBC_STATUS_CHARGING:
		{
			fso_gsm_device_get_power_status_set_status ((FsoGsmDeviceGetPowerStatus*) _data_->self, FREE_SMARTPHONE_DEVICE_POWER_STATUS_CHARGING);
			break;
		}
		case FSO_GSM_PLUS_CBC_STATUS_AC:
		{
			fso_gsm_device_get_power_status_set_status ((FsoGsmDeviceGetPowerStatus*) _data_->self, FREE_SMARTPHONE_DEVICE_POWER_STATUS_AC);
			break;
		}
		default:
		{
			fso_gsm_device_get_power_status_set_status ((FsoGsmDeviceGetPowerStatus*) _data_->self, FREE_SMARTPHONE_DEVICE_POWER_STATUS_UNKNOWN);
			break;
		}
	}
	_data_->_tmp20_ = _data_->cmd;
	_data_->_tmp21_ = _data_->_tmp20_->level;
	fso_gsm_device_get_power_status_set_level ((FsoGsmDeviceGetPowerStatus*) _data_->self, _data_->_tmp21_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceGetPowerStatus* fso_gsm_at_device_get_power_status_construct (GType object_type) {
	FsoGsmAtDeviceGetPowerStatus * self = NULL;
	self = (FsoGsmAtDeviceGetPowerStatus*) fso_gsm_device_get_power_status_construct (object_type);
	return self;
}


FsoGsmAtDeviceGetPowerStatus* fso_gsm_at_device_get_power_status_new (void) {
	return fso_gsm_at_device_get_power_status_construct (FSO_GSM_TYPE_AT_DEVICE_GET_POWER_STATUS);
}


static void fso_gsm_at_device_get_power_status_class_init (FsoGsmAtDeviceGetPowerStatusClass * klass) {
	fso_gsm_at_device_get_power_status_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_GET_POWER_STATUS_CLASS (klass)->run = fso_gsm_at_device_get_power_status_real_run;
	FSO_GSM_DEVICE_GET_POWER_STATUS_CLASS (klass)->run_finish = fso_gsm_at_device_get_power_status_real_run_finish;
}


static void fso_gsm_at_device_get_power_status_instance_init (FsoGsmAtDeviceGetPowerStatus * self) {
}


GType fso_gsm_at_device_get_power_status_get_type (void) {
	static volatile gsize fso_gsm_at_device_get_power_status_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_get_power_status_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceGetPowerStatusClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_get_power_status_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceGetPowerStatus), 0, (GInstanceInitFunc) fso_gsm_at_device_get_power_status_instance_init, NULL };
		GType fso_gsm_at_device_get_power_status_type_id;
		fso_gsm_at_device_get_power_status_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_GET_POWER_STATUS, "FsoGsmAtDeviceGetPowerStatus", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_get_power_status_type_id__volatile, fso_gsm_at_device_get_power_status_type_id);
	}
	return fso_gsm_at_device_get_power_status_type_id__volatile;
}


static void fso_gsm_at_device_set_alarm_time_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceSetAlarmTimeRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceSetAlarmTimeRunData, _data_);
}


static void fso_gsm_at_device_set_alarm_time_real_run (FsoGsmDeviceSetAlarmTime* base, gint since_epoch, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceSetAlarmTime * self;
	FsoGsmAtDeviceSetAlarmTimeRunData* _data_;
	FsoGsmAtDeviceSetAlarmTime* _tmp0_;
	gint _tmp1_;
	self = (FsoGsmAtDeviceSetAlarmTime*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceSetAlarmTimeRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_set_alarm_time_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_set_alarm_time_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = since_epoch;
	_data_->since_epoch = _tmp1_;
	fso_gsm_at_device_set_alarm_time_real_run_co (_data_);
}


static void fso_gsm_at_device_set_alarm_time_real_run_finish (FsoGsmDeviceSetAlarmTime* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceSetAlarmTimeRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void g_time_gm (time_t time, struct tm* result) {
	struct tm _result_ = {0};
	struct tm _tmp0_ = {0};
	gmtime_r (&time, &_tmp0_);
	_result_ = _tmp0_;
	*result = _result_;
	return;
}


static void fso_gsm_at_device_set_alarm_time_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceSetAlarmTimeRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_set_alarm_time_real_run_co (_data_);
}


static gboolean fso_gsm_at_device_set_alarm_time_real_run_co (FsoGsmAtDeviceSetAlarmTimeRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->since_epoch;
	memset (&_data_->_tmp1_, 0, sizeof (struct tm));
	g_time_gm ((time_t) _data_->_tmp0_, &_data_->_tmp1_);
	_data_->t = _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_modem_createAtCommand (_data_->_tmp2_, FSO_GSM_TYPE_PLUS_CALA, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CALA");
	_data_->cmd = (FsoGsmPlusCALA*) _data_->_tmp3_;
	_data_->_tmp5_ = _data_->since_epoch;
	if (_data_->_tmp5_ > 0) {
		_data_->_tmp6_ = _data_->cmd;
		_data_->_tmp7_ = _data_->t;
		_data_->_tmp8_ = _data_->_tmp7_.tm_year;
		_data_->_tmp9_ = _data_->t;
		_data_->_tmp10_ = _data_->_tmp9_.tm_mon;
		_data_->_tmp11_ = _data_->t;
		_data_->_tmp12_ = _data_->_tmp11_.tm_mday;
		_data_->_tmp13_ = _data_->t;
		_data_->_tmp14_ = _data_->_tmp13_.tm_hour;
		_data_->_tmp15_ = _data_->t;
		_data_->_tmp16_ = _data_->_tmp15_.tm_min;
		_data_->_tmp17_ = _data_->t;
		_data_->_tmp18_ = _data_->_tmp17_.tm_sec;
		_data_->_tmp19_ = NULL;
		_data_->_tmp19_ = fso_gsm_plus_cala_issue (_data_->_tmp6_, (_data_->_tmp8_ + 1900) - 2000, _data_->_tmp10_ + 1, _data_->_tmp12_, _data_->_tmp14_, _data_->_tmp16_, _data_->_tmp18_, 0);
		_g_free0 (_data_->_tmp4_);
		_data_->_tmp4_ = _data_->_tmp19_;
	} else {
		_data_->_tmp20_ = _data_->cmd;
		_data_->_tmp21_ = NULL;
		_data_->_tmp21_ = fso_gsm_plus_cala_clear (_data_->_tmp20_);
		_g_free0 (_data_->_tmp4_);
		_data_->_tmp4_ = _data_->_tmp21_;
	}
	_data_->_tmp22_ = fso_gsm_theModem;
	_data_->_tmp23_ = _data_->cmd;
	_data_->_tmp24_ = _data_->_tmp4_;
	_data_->_tmp25_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp22_, (FsoGsmAtCommand*) _data_->_tmp23_, _data_->_tmp24_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_set_alarm_time_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp26_ = NULL;
	_data_->_tmp26_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp22_, _data_->_res_, &_data_->_tmp25_);
	_data_->response = _data_->_tmp26_;
	_data_->response_length1 = _data_->_tmp25_;
	_data_->_response_size_ = _data_->response_length1;
	{
		_data_->_tmp27_ = _data_->cmd;
		_data_->_tmp28_ = _data_->response;
		_data_->_tmp28__length1 = _data_->response_length1;
		fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->_tmp27_, _data_->_tmp28_, _data_->_tmp28__length1, &_data_->_inner_error_);
		if (_data_->_inner_error_ != NULL) {
			if (_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) {
				goto __catch43_free_smartphone_gsm_error;
			}
			goto __finally43;
		}
	}
	goto __finally43;
	__catch43_free_smartphone_gsm_error:
	{
		_data_->e = _data_->_inner_error_;
		_data_->_inner_error_ = NULL;
		_data_->_tmp29_ = _data_->e;
		_data_->_tmp30_ = _data_->_tmp29_->message;
		_data_->_tmp31_ = g_error_new_literal (FREE_SMARTPHONE_ERROR, FREE_SMARTPHONE_ERROR_SYSTEM_ERROR, _data_->_tmp30_);
		_data_->_inner_error_ = _data_->_tmp31_;
		_g_error_free0 (_data_->e);
		goto __finally43;
	}
	__finally43:
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_free0 (_data_->_tmp4_);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_free0 (_data_->_tmp4_);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_free0 (_data_->_tmp4_);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceSetAlarmTime* fso_gsm_at_device_set_alarm_time_construct (GType object_type) {
	FsoGsmAtDeviceSetAlarmTime * self = NULL;
	self = (FsoGsmAtDeviceSetAlarmTime*) fso_gsm_device_set_alarm_time_construct (object_type);
	return self;
}


FsoGsmAtDeviceSetAlarmTime* fso_gsm_at_device_set_alarm_time_new (void) {
	return fso_gsm_at_device_set_alarm_time_construct (FSO_GSM_TYPE_AT_DEVICE_SET_ALARM_TIME);
}


static void fso_gsm_at_device_set_alarm_time_class_init (FsoGsmAtDeviceSetAlarmTimeClass * klass) {
	fso_gsm_at_device_set_alarm_time_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_SET_ALARM_TIME_CLASS (klass)->run = fso_gsm_at_device_set_alarm_time_real_run;
	FSO_GSM_DEVICE_SET_ALARM_TIME_CLASS (klass)->run_finish = fso_gsm_at_device_set_alarm_time_real_run_finish;
}


static void fso_gsm_at_device_set_alarm_time_instance_init (FsoGsmAtDeviceSetAlarmTime * self) {
}


GType fso_gsm_at_device_set_alarm_time_get_type (void) {
	static volatile gsize fso_gsm_at_device_set_alarm_time_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_set_alarm_time_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceSetAlarmTimeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_set_alarm_time_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceSetAlarmTime), 0, (GInstanceInitFunc) fso_gsm_at_device_set_alarm_time_instance_init, NULL };
		GType fso_gsm_at_device_set_alarm_time_type_id;
		fso_gsm_at_device_set_alarm_time_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_SET_ALARM_TIME, "FsoGsmAtDeviceSetAlarmTime", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_set_alarm_time_type_id__volatile, fso_gsm_at_device_set_alarm_time_type_id);
	}
	return fso_gsm_at_device_set_alarm_time_type_id__volatile;
}


static void fso_gsm_at_device_set_current_time_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceSetCurrentTimeRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceSetCurrentTimeRunData, _data_);
}


static void fso_gsm_at_device_set_current_time_real_run (FsoGsmDeviceSetCurrentTime* base, gint since_epoch, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceSetCurrentTime * self;
	FsoGsmAtDeviceSetCurrentTimeRunData* _data_;
	FsoGsmAtDeviceSetCurrentTime* _tmp0_;
	gint _tmp1_;
	self = (FsoGsmAtDeviceSetCurrentTime*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceSetCurrentTimeRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_set_current_time_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_set_current_time_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = since_epoch;
	_data_->since_epoch = _tmp1_;
	fso_gsm_at_device_set_current_time_real_run_co (_data_);
}


static void fso_gsm_at_device_set_current_time_real_run_finish (FsoGsmDeviceSetCurrentTime* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceSetCurrentTimeRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_device_set_current_time_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceSetCurrentTimeRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_set_current_time_real_run_co (_data_);
}


static gboolean fso_gsm_at_device_set_current_time_real_run_co (FsoGsmAtDeviceSetCurrentTimeRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->since_epoch;
	memset (&_data_->_tmp1_, 0, sizeof (struct tm));
	g_time_gm ((time_t) _data_->_tmp0_, &_data_->_tmp1_);
	_data_->t = _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_modem_createAtCommand (_data_->_tmp2_, FSO_GSM_TYPE_PLUS_CCLK, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CCLK");
	_data_->cmd = (FsoGsmPlusCCLK*) _data_->_tmp3_;
	_data_->_tmp4_ = fso_gsm_theModem;
	_data_->_tmp5_ = _data_->cmd;
	_data_->_tmp6_ = _data_->cmd;
	_data_->_tmp7_ = _data_->t;
	_data_->_tmp8_ = _data_->_tmp7_.tm_year;
	_data_->_tmp9_ = _data_->t;
	_data_->_tmp10_ = _data_->_tmp9_.tm_mon;
	_data_->_tmp11_ = _data_->t;
	_data_->_tmp12_ = _data_->_tmp11_.tm_mday;
	_data_->_tmp13_ = _data_->t;
	_data_->_tmp14_ = _data_->_tmp13_.tm_hour;
	_data_->_tmp15_ = _data_->t;
	_data_->_tmp16_ = _data_->_tmp15_.tm_min;
	_data_->_tmp17_ = _data_->t;
	_data_->_tmp18_ = _data_->_tmp17_.tm_sec;
	_data_->_tmp19_ = NULL;
	_data_->_tmp19_ = fso_gsm_plus_cclk_issue (_data_->_tmp6_, (_data_->_tmp8_ + 1900) - 2000, _data_->_tmp10_ + 1, _data_->_tmp12_, _data_->_tmp14_, _data_->_tmp16_, _data_->_tmp18_, 0);
	_data_->_tmp20_ = _data_->_tmp19_;
	_data_->_tmp21_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp4_, (FsoGsmAtCommand*) _data_->_tmp5_, _data_->_tmp20_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_set_current_time_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp22_ = NULL;
	_data_->_tmp22_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp4_, _data_->_res_, &_data_->_tmp21_);
	_data_->_tmp23_ = _data_->_tmp22_;
	_data_->_tmp23__length1 = _data_->_tmp21_;
	_g_free0 (_data_->_tmp20_);
	_data_->response = _data_->_tmp23_;
	_data_->response_length1 = _data_->_tmp23__length1;
	_data_->_response_size_ = _data_->response_length1;
	{
		_data_->_tmp24_ = _data_->cmd;
		_data_->_tmp25_ = _data_->response;
		_data_->_tmp25__length1 = _data_->response_length1;
		fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->_tmp24_, _data_->_tmp25_, _data_->_tmp25__length1, &_data_->_inner_error_);
		if (_data_->_inner_error_ != NULL) {
			if (_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) {
				goto __catch44_free_smartphone_gsm_error;
			}
			goto __finally44;
		}
	}
	goto __finally44;
	__catch44_free_smartphone_gsm_error:
	{
		_data_->e = _data_->_inner_error_;
		_data_->_inner_error_ = NULL;
		_data_->_tmp26_ = _data_->e;
		_data_->_tmp27_ = _data_->_tmp26_->message;
		_data_->_tmp28_ = g_error_new_literal (FREE_SMARTPHONE_ERROR, FREE_SMARTPHONE_ERROR_SYSTEM_ERROR, _data_->_tmp27_);
		_data_->_inner_error_ = _data_->_tmp28_;
		_g_error_free0 (_data_->e);
		goto __finally44;
	}
	__finally44:
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceSetCurrentTime* fso_gsm_at_device_set_current_time_construct (GType object_type) {
	FsoGsmAtDeviceSetCurrentTime * self = NULL;
	self = (FsoGsmAtDeviceSetCurrentTime*) fso_gsm_device_set_current_time_construct (object_type);
	return self;
}


FsoGsmAtDeviceSetCurrentTime* fso_gsm_at_device_set_current_time_new (void) {
	return fso_gsm_at_device_set_current_time_construct (FSO_GSM_TYPE_AT_DEVICE_SET_CURRENT_TIME);
}


static void fso_gsm_at_device_set_current_time_class_init (FsoGsmAtDeviceSetCurrentTimeClass * klass) {
	fso_gsm_at_device_set_current_time_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_SET_CURRENT_TIME_CLASS (klass)->run = fso_gsm_at_device_set_current_time_real_run;
	FSO_GSM_DEVICE_SET_CURRENT_TIME_CLASS (klass)->run_finish = fso_gsm_at_device_set_current_time_real_run_finish;
}


static void fso_gsm_at_device_set_current_time_instance_init (FsoGsmAtDeviceSetCurrentTime * self) {
}


GType fso_gsm_at_device_set_current_time_get_type (void) {
	static volatile gsize fso_gsm_at_device_set_current_time_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_set_current_time_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceSetCurrentTimeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_set_current_time_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceSetCurrentTime), 0, (GInstanceInitFunc) fso_gsm_at_device_set_current_time_instance_init, NULL };
		GType fso_gsm_at_device_set_current_time_type_id;
		fso_gsm_at_device_set_current_time_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_SET_CURRENT_TIME, "FsoGsmAtDeviceSetCurrentTime", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_set_current_time_type_id__volatile, fso_gsm_at_device_set_current_time_type_id);
	}
	return fso_gsm_at_device_set_current_time_type_id__volatile;
}


static void fso_gsm_at_device_set_functionality_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceSetFunctionalityRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->level);
	_g_free0 (_data_->pin);
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceSetFunctionalityRunData, _data_);
}


static void fso_gsm_at_device_set_functionality_real_run (FsoGsmDeviceSetFunctionality* base, const gchar* level, gboolean autoregister, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceSetFunctionality * self;
	FsoGsmAtDeviceSetFunctionalityRunData* _data_;
	FsoGsmAtDeviceSetFunctionality* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gboolean _tmp3_;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	self = (FsoGsmAtDeviceSetFunctionality*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceSetFunctionalityRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_set_functionality_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_set_functionality_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = level;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->level = _tmp2_;
	_tmp3_ = autoregister;
	_data_->autoregister = _tmp3_;
	_tmp4_ = pin;
	_tmp5_ = g_strdup (_tmp4_);
	_data_->pin = _tmp5_;
	fso_gsm_at_device_set_functionality_real_run_co (_data_);
}


static void fso_gsm_at_device_set_functionality_real_run_finish (FsoGsmDeviceSetFunctionality* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceSetFunctionalityRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_device_set_functionality_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceSetFunctionalityRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_set_functionality_real_run_co (_data_);
}


static gboolean fso_gsm_at_device_set_functionality_real_run_co (FsoGsmAtDeviceSetFunctionalityRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		case 3:
		goto _state_3;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = NULL;
	_data_->_tmp0_ = fso_gsm_constants_instance ();
	_data_->_tmp1_ = _data_->_tmp0_;
	_data_->_tmp2_ = _data_->level;
	_data_->_tmp3_ = 0;
	_data_->_tmp3_ = fso_gsm_constants_deviceFunctionalityStringToStatus (_data_->_tmp1_, _data_->_tmp2_);
	_data_->_tmp4_ = _data_->_tmp3_;
	_fso_gsm_constants_unref0 (_data_->_tmp1_);
	_data_->value = _data_->_tmp4_;
	if (_data_->value == (-1)) {
		_data_->_tmp5_ = g_error_new_literal (FREE_SMARTPHONE_ERROR, FREE_SMARTPHONE_ERROR_INVALID_PARAMETER, "Functionality needs to be one of \"minimal\", \"airplane\", or \"full\"" \
".");
		_data_->_inner_error_ = _data_->_tmp5_;
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp6_ = fso_gsm_theModem;
	_data_->_tmp7_ = NULL;
	_data_->_tmp7_ = fso_gsm_modem_createAtCommand (_data_->_tmp6_, FSO_GSM_TYPE_PLUS_CFUN, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CFUN");
	_data_->cmd = (FsoGsmPlusCFUN*) _data_->_tmp7_;
	_data_->_tmp8_ = fso_gsm_theModem;
	_data_->_tmp9_ = _data_->cmd;
	_data_->_tmp10_ = _data_->cmd;
	_data_->_tmp11_ = NULL;
	_data_->_tmp11_ = fso_gsm_simple_at_command_query ((FsoGsmSimpleAtCommand*) _data_->_tmp10_);
	_data_->_tmp12_ = _data_->_tmp11_;
	_data_->_tmp13_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp8_, (FsoGsmAtCommand*) _data_->_tmp9_, _data_->_tmp12_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_set_functionality_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp14_ = NULL;
	_data_->_tmp14_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp8_, _data_->_res_, &_data_->_tmp13_);
	_data_->_tmp15_ = _data_->_tmp14_;
	_data_->_tmp15__length1 = _data_->_tmp13_;
	_g_free0 (_data_->_tmp12_);
	_data_->queryanswer = _data_->_tmp15_;
	_data_->queryanswer_length1 = _data_->_tmp15__length1;
	_data_->_queryanswer_size_ = _data_->queryanswer_length1;
	_data_->_tmp16_ = _data_->cmd;
	_data_->_tmp17_ = _data_->queryanswer;
	_data_->_tmp17__length1 = _data_->queryanswer_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->_tmp16_, _data_->_tmp17_, _data_->_tmp17__length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->queryanswer = (_vala_array_free (_data_->queryanswer, _data_->queryanswer_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->queryanswer = (_vala_array_free (_data_->queryanswer, _data_->queryanswer_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp18_ = NULL;
	_data_->_tmp18_ = fso_gsm_constants_instance ();
	_data_->_tmp19_ = _data_->_tmp18_;
	_data_->_tmp20_ = _data_->cmd;
	_data_->_tmp21_ = ((FsoGsmSimpleAtCommand*) _data_->_tmp20_)->value;
	_data_->_tmp22_ = NULL;
	_data_->_tmp22_ = fso_gsm_constants_deviceFunctionalityStatusToString (_data_->_tmp19_, GPOINTER_TO_INT (_data_->_tmp21_));
	_data_->_tmp23_ = _data_->_tmp22_;
	_fso_gsm_constants_unref0 (_data_->_tmp19_);
	_data_->curlevel = _data_->_tmp23_;
	_data_->_tmp24_ = _data_->curlevel;
	_data_->_tmp25_ = _data_->level;
	if (g_strcmp0 (_data_->_tmp24_, _data_->_tmp25_) != 0) {
		_data_->_tmp26_ = fso_gsm_theModem;
		_data_->_tmp27_ = _data_->cmd;
		_data_->_tmp28_ = _data_->cmd;
		_data_->_tmp29_ = NULL;
		_data_->_tmp29_ = fso_gsm_simple_at_command_issue ((FsoGsmSimpleAtCommand*) _data_->_tmp28_, GINT_TO_POINTER (_data_->value));
		_data_->_tmp30_ = _data_->_tmp29_;
		_data_->_tmp31_ = 0;
		_data_->_state_ = 2;
		fso_gsm_modem_processAtCommandAsync (_data_->_tmp26_, (FsoGsmAtCommand*) _data_->_tmp27_, _data_->_tmp30_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_set_functionality_run_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp32_ = NULL;
		_data_->_tmp32_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp26_, _data_->_res_, &_data_->_tmp31_);
		_data_->_tmp33_ = _data_->_tmp32_;
		_data_->_tmp33__length1 = _data_->_tmp31_;
		_g_free0 (_data_->_tmp30_);
		_data_->response = _data_->_tmp33_;
		_data_->response_length1 = _data_->_tmp33__length1;
		_data_->_response_size_ = _data_->response_length1;
		_data_->_tmp34_ = _data_->cmd;
		_data_->_tmp35_ = _data_->response;
		_data_->_tmp35__length1 = _data_->response_length1;
		_data_->_tmp36_ = NULL;
		_data_->_tmp36_ = g_new0 (FsoGsmConstantsAtResponse, 2);
		_data_->_tmp36_[0] = FSO_GSM_CONSTANTS_AT_RESPONSE_OK;
		_data_->_tmp36_[1] = FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_011_SIM_PIN_REQUIRED;
		_data_->_tmp37_ = _data_->_tmp36_;
		_data_->_tmp37__length1 = 2;
		fso_gsm_checkResponseExpected ((FsoGsmAtCommand*) _data_->_tmp34_, _data_->_tmp35_, _data_->_tmp35__length1, _data_->_tmp37_, 2, &_data_->_inner_error_);
		_data_->_tmp37_ = (g_free (_data_->_tmp37_), NULL);
		if (_data_->_inner_error_ != NULL) {
			if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
				g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
				g_error_free (_data_->_inner_error_);
				_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (_data_->curlevel);
				_data_->queryanswer = (_vala_array_free (_data_->queryanswer, _data_->queryanswer_length1, (GDestroyNotify) g_free), NULL);
				_g_object_unref0 (_data_->cmd);
				if (_data_->_state_ == 0) {
					g_simple_async_result_complete_in_idle (_data_->_async_result);
				} else {
					g_simple_async_result_complete (_data_->_async_result);
				}
				g_object_unref (_data_->_async_result);
				return FALSE;
			} else {
				_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (_data_->curlevel);
				_data_->queryanswer = (_vala_array_free (_data_->queryanswer, _data_->queryanswer_length1, (GDestroyNotify) g_free), NULL);
				_g_object_unref0 (_data_->cmd);
				g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
				g_clear_error (&_data_->_inner_error_);
				return FALSE;
			}
		}
		_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	}
	_data_->_tmp38_ = fso_gsm_theModem;
	_data_->_tmp39_ = NULL;
	_data_->_tmp39_ = fso_gsm_modem_data (_data_->_tmp38_);
	_data_->data = _data_->_tmp39_;
	_data_->_tmp40_ = _data_->data;
	_data_->_tmp41_ = _data_->autoregister;
	_data_->_tmp40_->keepRegistration = _data_->_tmp41_;
	_data_->_tmp42_ = _data_->pin;
	if (g_strcmp0 (_data_->_tmp42_, "") != 0) {
		_data_->_tmp43_ = _data_->data;
		_data_->_tmp44_ = _data_->pin;
		_data_->_tmp45_ = g_strdup (_data_->_tmp44_);
		_g_free0 (_data_->_tmp43_->simPin);
		_data_->_tmp43_->simPin = _data_->_tmp45_;
		_data_->_tmp46_ = fso_gsm_theModem;
		_data_->_tmp47_ = fso_gsm_modem_get_watchdog (_data_->_tmp46_);
		_data_->_tmp48_ = _data_->_tmp47_;
		fso_gsm_watch_dog_resetUnlockMarker (_data_->_tmp48_);
	}
	_data_->_state_ = 3;
	fso_gsm_gatherSimStatusAndUpdate (fso_gsm_at_device_set_functionality_run_ready, _data_);
	return FALSE;
	_state_3:
	fso_gsm_gatherSimStatusAndUpdate_finish (_data_->_res_, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_g_object_unref0 (_data_->data);
			_g_free0 (_data_->curlevel);
			_data_->queryanswer = (_vala_array_free (_data_->queryanswer, _data_->queryanswer_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_g_object_unref0 (_data_->data);
			_g_free0 (_data_->curlevel);
			_data_->queryanswer = (_vala_array_free (_data_->queryanswer, _data_->queryanswer_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_g_object_unref0 (_data_->data);
	_g_free0 (_data_->curlevel);
	_data_->queryanswer = (_vala_array_free (_data_->queryanswer, _data_->queryanswer_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceSetFunctionality* fso_gsm_at_device_set_functionality_construct (GType object_type) {
	FsoGsmAtDeviceSetFunctionality * self = NULL;
	self = (FsoGsmAtDeviceSetFunctionality*) fso_gsm_device_set_functionality_construct (object_type);
	return self;
}


FsoGsmAtDeviceSetFunctionality* fso_gsm_at_device_set_functionality_new (void) {
	return fso_gsm_at_device_set_functionality_construct (FSO_GSM_TYPE_AT_DEVICE_SET_FUNCTIONALITY);
}


static void fso_gsm_at_device_set_functionality_class_init (FsoGsmAtDeviceSetFunctionalityClass * klass) {
	fso_gsm_at_device_set_functionality_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_SET_FUNCTIONALITY_CLASS (klass)->run = fso_gsm_at_device_set_functionality_real_run;
	FSO_GSM_DEVICE_SET_FUNCTIONALITY_CLASS (klass)->run_finish = fso_gsm_at_device_set_functionality_real_run_finish;
}


static void fso_gsm_at_device_set_functionality_instance_init (FsoGsmAtDeviceSetFunctionality * self) {
}


GType fso_gsm_at_device_set_functionality_get_type (void) {
	static volatile gsize fso_gsm_at_device_set_functionality_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_set_functionality_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceSetFunctionalityClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_set_functionality_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceSetFunctionality), 0, (GInstanceInitFunc) fso_gsm_at_device_set_functionality_instance_init, NULL };
		GType fso_gsm_at_device_set_functionality_type_id;
		fso_gsm_at_device_set_functionality_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_SET_FUNCTIONALITY, "FsoGsmAtDeviceSetFunctionality", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_set_functionality_type_id__volatile, fso_gsm_at_device_set_functionality_type_id);
	}
	return fso_gsm_at_device_set_functionality_type_id__volatile;
}


static void fso_gsm_at_device_set_microphone_muted_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceSetMicrophoneMutedRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceSetMicrophoneMutedRunData, _data_);
}


static void fso_gsm_at_device_set_microphone_muted_real_run (FsoGsmDeviceSetMicrophoneMuted* base, gboolean muted, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceSetMicrophoneMuted * self;
	FsoGsmAtDeviceSetMicrophoneMutedRunData* _data_;
	FsoGsmAtDeviceSetMicrophoneMuted* _tmp0_;
	gboolean _tmp1_;
	self = (FsoGsmAtDeviceSetMicrophoneMuted*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceSetMicrophoneMutedRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_set_microphone_muted_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_set_microphone_muted_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = muted;
	_data_->muted = _tmp1_;
	fso_gsm_at_device_set_microphone_muted_real_run_co (_data_);
}


static void fso_gsm_at_device_set_microphone_muted_real_run_finish (FsoGsmDeviceSetMicrophoneMuted* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceSetMicrophoneMutedRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_device_set_microphone_muted_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceSetMicrophoneMutedRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_set_microphone_muted_real_run_co (_data_);
}


static gboolean fso_gsm_at_device_set_microphone_muted_real_run_co (FsoGsmAtDeviceSetMicrophoneMutedRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CMUT, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CMUT");
	_data_->cmut = (FsoGsmPlusCMUT*) _data_->_tmp1_;
	_data_->_tmp3_ = _data_->muted;
	if (_data_->_tmp3_) {
		_data_->_tmp2_ = 1;
	} else {
		_data_->_tmp2_ = 0;
	}
	_data_->_tmp4_ = fso_gsm_theModem;
	_data_->_tmp5_ = _data_->cmut;
	_data_->_tmp6_ = _data_->cmut;
	_data_->_tmp7_ = _data_->_tmp2_;
	_data_->_tmp8_ = NULL;
	_data_->_tmp8_ = fso_gsm_simple_at_command_issue ((FsoGsmSimpleAtCommand*) _data_->_tmp6_, GINT_TO_POINTER (_data_->_tmp7_));
	_data_->_tmp9_ = _data_->_tmp8_;
	_data_->_tmp10_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp4_, (FsoGsmAtCommand*) _data_->_tmp5_, _data_->_tmp9_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_set_microphone_muted_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp11_ = NULL;
	_data_->_tmp11_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp4_, _data_->_res_, &_data_->_tmp10_);
	_data_->_tmp12_ = _data_->_tmp11_;
	_data_->_tmp12__length1 = _data_->_tmp10_;
	_g_free0 (_data_->_tmp9_);
	_data_->response = _data_->_tmp12_;
	_data_->response_length1 = _data_->_tmp12__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp13_ = _data_->cmut;
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->_tmp13_, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmut);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmut);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmut);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceSetMicrophoneMuted* fso_gsm_at_device_set_microphone_muted_construct (GType object_type) {
	FsoGsmAtDeviceSetMicrophoneMuted * self = NULL;
	self = (FsoGsmAtDeviceSetMicrophoneMuted*) fso_gsm_device_set_microphone_muted_construct (object_type);
	return self;
}


FsoGsmAtDeviceSetMicrophoneMuted* fso_gsm_at_device_set_microphone_muted_new (void) {
	return fso_gsm_at_device_set_microphone_muted_construct (FSO_GSM_TYPE_AT_DEVICE_SET_MICROPHONE_MUTED);
}


static void fso_gsm_at_device_set_microphone_muted_class_init (FsoGsmAtDeviceSetMicrophoneMutedClass * klass) {
	fso_gsm_at_device_set_microphone_muted_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_SET_MICROPHONE_MUTED_CLASS (klass)->run = fso_gsm_at_device_set_microphone_muted_real_run;
	FSO_GSM_DEVICE_SET_MICROPHONE_MUTED_CLASS (klass)->run_finish = fso_gsm_at_device_set_microphone_muted_real_run_finish;
}


static void fso_gsm_at_device_set_microphone_muted_instance_init (FsoGsmAtDeviceSetMicrophoneMuted * self) {
}


GType fso_gsm_at_device_set_microphone_muted_get_type (void) {
	static volatile gsize fso_gsm_at_device_set_microphone_muted_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_set_microphone_muted_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceSetMicrophoneMutedClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_set_microphone_muted_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceSetMicrophoneMuted), 0, (GInstanceInitFunc) fso_gsm_at_device_set_microphone_muted_instance_init, NULL };
		GType fso_gsm_at_device_set_microphone_muted_type_id;
		fso_gsm_at_device_set_microphone_muted_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_SET_MICROPHONE_MUTED, "FsoGsmAtDeviceSetMicrophoneMuted", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_set_microphone_muted_type_id__volatile, fso_gsm_at_device_set_microphone_muted_type_id);
	}
	return fso_gsm_at_device_set_microphone_muted_type_id__volatile;
}


static void fso_gsm_at_device_set_speaker_volume_real_run_data_free (gpointer _data) {
	FsoGsmAtDeviceSetSpeakerVolumeRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtDeviceSetSpeakerVolumeRunData, _data_);
}


static void fso_gsm_at_device_set_speaker_volume_real_run (FsoGsmDeviceSetSpeakerVolume* base, gint volume, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtDeviceSetSpeakerVolume * self;
	FsoGsmAtDeviceSetSpeakerVolumeRunData* _data_;
	FsoGsmAtDeviceSetSpeakerVolume* _tmp0_;
	gint _tmp1_;
	self = (FsoGsmAtDeviceSetSpeakerVolume*) base;
	_data_ = g_slice_new0 (FsoGsmAtDeviceSetSpeakerVolumeRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_device_set_speaker_volume_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_device_set_speaker_volume_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = volume;
	_data_->volume = _tmp1_;
	fso_gsm_at_device_set_speaker_volume_real_run_co (_data_);
}


static void fso_gsm_at_device_set_speaker_volume_real_run_finish (FsoGsmDeviceSetSpeakerVolume* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtDeviceSetSpeakerVolumeRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_device_set_speaker_volume_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtDeviceSetSpeakerVolumeRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_device_set_speaker_volume_real_run_co (_data_);
}


static gboolean fso_gsm_at_device_set_speaker_volume_real_run_co (FsoGsmAtDeviceSetSpeakerVolumeRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp1_ = _data_->volume;
	if (_data_->_tmp1_ < 0) {
		_data_->_tmp0_ = TRUE;
	} else {
		_data_->_tmp2_ = _data_->volume;
		_data_->_tmp0_ = _data_->_tmp2_ > 100;
	}
	_data_->_tmp3_ = _data_->_tmp0_;
	if (_data_->_tmp3_) {
		_data_->_tmp4_ = g_error_new_literal (FREE_SMARTPHONE_ERROR, FREE_SMARTPHONE_ERROR_INVALID_PARAMETER, "Volume needs to be a percentage (0-100)");
		_data_->_inner_error_ = _data_->_tmp4_;
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_state_ = 1;
	fso_gsm_gatherSpeakerVolumeRange (fso_gsm_at_device_set_speaker_volume_run_ready, _data_);
	return FALSE;
	_state_1:
	fso_gsm_gatherSpeakerVolumeRange_finish (_data_->_res_, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp5_ = fso_gsm_theModem;
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_data (_data_->_tmp5_);
	_data_->data = _data_->_tmp6_;
	_data_->_tmp7_ = _data_->data;
	_data_->_tmp8_ = _data_->_tmp7_->speakerVolumeMaximum;
	_data_->_tmp9_ = _data_->data;
	_data_->_tmp10_ = _data_->_tmp9_->speakerVolumeMinimum;
	_data_->interval = ((gdouble) (_data_->_tmp8_ - _data_->_tmp10_)) / 100.0;
	_data_->_tmp11_ = _data_->data;
	_data_->_tmp12_ = _data_->_tmp11_->speakerVolumeMinimum;
	_data_->_tmp13_ = _data_->volume;
	_data_->_tmp14_ = _data_->interval;
	_data_->_tmp15_ = 0.0;
	_data_->_tmp15_ = round (_data_->_tmp13_ * _data_->_tmp14_);
	_data_->value = _data_->_tmp12_ + ((gint) _data_->_tmp15_);
	_data_->_tmp16_ = fso_gsm_theModem;
	_data_->_tmp17_ = NULL;
	_data_->_tmp17_ = fso_gsm_modem_createAtCommand (_data_->_tmp16_, FSO_GSM_TYPE_PLUS_CLVL, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CLVL");
	_data_->clvl = (FsoGsmPlusCLVL*) _data_->_tmp17_;
	_data_->_tmp18_ = fso_gsm_theModem;
	_data_->_tmp19_ = _data_->clvl;
	_data_->_tmp20_ = _data_->clvl;
	_data_->_tmp21_ = _data_->value;
	_data_->_tmp22_ = NULL;
	_data_->_tmp22_ = fso_gsm_simple_at_command_issue ((FsoGsmSimpleAtCommand*) _data_->_tmp20_, GINT_TO_POINTER (_data_->_tmp21_));
	_data_->_tmp23_ = _data_->_tmp22_;
	_data_->_tmp24_ = 0;
	_data_->_state_ = 2;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp18_, (FsoGsmAtCommand*) _data_->_tmp19_, _data_->_tmp23_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_device_set_speaker_volume_run_ready, _data_);
	return FALSE;
	_state_2:
	_data_->_tmp25_ = NULL;
	_data_->_tmp25_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp18_, _data_->_res_, &_data_->_tmp24_);
	_data_->_tmp26_ = _data_->_tmp25_;
	_data_->_tmp26__length1 = _data_->_tmp24_;
	_g_free0 (_data_->_tmp23_);
	_data_->response = _data_->_tmp26_;
	_data_->response_length1 = _data_->_tmp26__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp27_ = _data_->clvl;
	_data_->_tmp28_ = _data_->response;
	_data_->_tmp28__length1 = _data_->response_length1;
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->_tmp27_, _data_->_tmp28_, _data_->_tmp28__length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->clvl);
			_g_object_unref0 (_data_->data);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->clvl);
			_g_object_unref0 (_data_->data);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->clvl);
	_g_object_unref0 (_data_->data);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtDeviceSetSpeakerVolume* fso_gsm_at_device_set_speaker_volume_construct (GType object_type) {
	FsoGsmAtDeviceSetSpeakerVolume * self = NULL;
	self = (FsoGsmAtDeviceSetSpeakerVolume*) fso_gsm_device_set_speaker_volume_construct (object_type);
	return self;
}


FsoGsmAtDeviceSetSpeakerVolume* fso_gsm_at_device_set_speaker_volume_new (void) {
	return fso_gsm_at_device_set_speaker_volume_construct (FSO_GSM_TYPE_AT_DEVICE_SET_SPEAKER_VOLUME);
}


static void fso_gsm_at_device_set_speaker_volume_class_init (FsoGsmAtDeviceSetSpeakerVolumeClass * klass) {
	fso_gsm_at_device_set_speaker_volume_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_SET_SPEAKER_VOLUME_CLASS (klass)->run = fso_gsm_at_device_set_speaker_volume_real_run;
	FSO_GSM_DEVICE_SET_SPEAKER_VOLUME_CLASS (klass)->run_finish = fso_gsm_at_device_set_speaker_volume_real_run_finish;
}


static void fso_gsm_at_device_set_speaker_volume_instance_init (FsoGsmAtDeviceSetSpeakerVolume * self) {
}


GType fso_gsm_at_device_set_speaker_volume_get_type (void) {
	static volatile gsize fso_gsm_at_device_set_speaker_volume_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_device_set_speaker_volume_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtDeviceSetSpeakerVolumeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_device_set_speaker_volume_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtDeviceSetSpeakerVolume), 0, (GInstanceInitFunc) fso_gsm_at_device_set_speaker_volume_instance_init, NULL };
		GType fso_gsm_at_device_set_speaker_volume_type_id;
		fso_gsm_at_device_set_speaker_volume_type_id = g_type_register_static (FSO_GSM_TYPE_DEVICE_SET_SPEAKER_VOLUME, "FsoGsmAtDeviceSetSpeakerVolume", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_device_set_speaker_volume_type_id__volatile, fso_gsm_at_device_set_speaker_volume_type_id);
	}
	return fso_gsm_at_device_set_speaker_volume_type_id__volatile;
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	if ((array != NULL) && (destroy_func != NULL)) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}


static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}



