<?xml version="1.0"?>
<repository version="1.0" xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
	<package name="freesmartphone-1.0"/>
	<c:include name="freesmartphone.h"/>
	<namespace name="FreeSmartphone" version="1.0">
		<c:include name="freesmartphone-device.h"/>
		<namespace name="Device" version="1.0">
			<interface name="Input" c:type="FreeSmartphoneDeviceInput" glib:type-name="FreeSmartphoneDeviceInput" glib:get-type="free_smartphone_device_input_get_type" glib:type-struct="InputIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.Device.Input"/>
				<glib:signal name="event">
					<parameters>
						<parameter name="name" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="action" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="seconds" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="InputIface" c:type="FreeSmartphoneDeviceInputIface" glib:is-gtype-struct-for="Input">
			</record>
			<interface name="LED" c:type="FreeSmartphoneDeviceLED" glib:type-name="FreeSmartphoneDeviceLED" glib:get-type="free_smartphone_device_led_get_type" glib:type-struct="LEDIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.Device.LED"/>
				<method name="set_brightness" c:identifier="free_smartphone_device_led_set_brightness" throws="1">
					<parameters>
						<parameter name="brightness" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_brightness" invoker="set_brightness" throws="1">
					<parameters>
						<parameter name="brightness" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="set_blinking" c:identifier="free_smartphone_device_led_set_blinking" throws="1">
					<parameters>
						<parameter name="on_duration" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="off_duration" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_blinking" invoker="set_blinking" throws="1">
					<parameters>
						<parameter name="on_duration" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="off_duration" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="set_networking" c:identifier="free_smartphone_device_led_set_networking" throws="1">
					<parameters>
						<parameter name="interface" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="mode" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_networking" invoker="set_networking" throws="1">
					<parameters>
						<parameter name="interface" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="mode" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
			</interface>
			<record name="LEDIface" c:type="FreeSmartphoneDeviceLEDIface" glib:is-gtype-struct-for="LED">
				<callback name="set_brightness" c:type="free_smartphone_device_led_set_brightness" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceLED" c:type="FreeSmartphoneDeviceLED*"/>
						</parameter>
						<parameter name="brightness" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="set_blinking" c:type="free_smartphone_device_led_set_blinking" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceLED" c:type="FreeSmartphoneDeviceLED*"/>
						</parameter>
						<parameter name="on_duration" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="off_duration" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="set_networking" c:type="free_smartphone_device_led_set_networking" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceLED" c:type="FreeSmartphoneDeviceLED*"/>
						</parameter>
						<parameter name="interface" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="mode" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
			<interface name="PowerControl" c:type="FreeSmartphoneDevicePowerControl" glib:type-name="FreeSmartphoneDevicePowerControl" glib:get-type="free_smartphone_device_power_control_get_type" glib:type-struct="PowerControlIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.Device.PowerControl"/>
				<method name="get_power" c:identifier="free_smartphone_device_power_control_get_power" throws="1">
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</method>
				<virtual-method name="get_power" invoker="get_power" throws="1">
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</virtual-method>
				<method name="set_power" c:identifier="free_smartphone_device_power_control_set_power" throws="1">
					<parameters>
						<parameter name="on" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_power" invoker="set_power" throws="1">
					<parameters>
						<parameter name="on" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<glib:signal name="power">
					<parameters>
						<parameter name="on" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="PowerControlIface" c:type="FreeSmartphoneDevicePowerControlIface" glib:is-gtype-struct-for="PowerControl">
				<callback name="get_power" c:type="free_smartphone_device_power_control_get_power" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DevicePowerControl" c:type="FreeSmartphoneDevicePowerControl*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</callback>
				<callback name="set_power" c:type="free_smartphone_device_power_control_set_power" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DevicePowerControl" c:type="FreeSmartphoneDevicePowerControl*"/>
						</parameter>
						<parameter name="on" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
			<interface name="PowerSupply" c:type="FreeSmartphoneDevicePowerSupply" glib:type-name="FreeSmartphoneDevicePowerSupply" glib:get-type="free_smartphone_device_power_supply_get_type" glib:type-struct="PowerSupplyIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.Device.PowerSupply"/>
				<method name="get_info" c:identifier="free_smartphone_device_power_supply_get_info" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_info" invoker="get_info" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="get_capacity" c:identifier="free_smartphone_device_power_supply_get_capacity" throws="1">
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</method>
				<virtual-method name="get_capacity" invoker="get_capacity" throws="1">
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</virtual-method>
				<method name="get_power_status" c:identifier="free_smartphone_device_power_supply_get_power_status" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="get_power_status" invoker="get_power_status" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<glib:signal name="power_status">
					<parameters>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
				<glib:signal name="capacity">
					<parameters>
						<parameter name="energy" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="PowerSupplyIface" c:type="FreeSmartphoneDevicePowerSupplyIface" glib:is-gtype-struct-for="PowerSupply">
				<callback name="get_info" c:type="free_smartphone_device_power_supply_get_info" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DevicePowerSupply" c:type="FreeSmartphoneDevicePowerSupply*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</callback>
				<callback name="get_capacity" c:type="free_smartphone_device_power_supply_get_capacity" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DevicePowerSupply" c:type="FreeSmartphoneDevicePowerSupply*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</callback>
				<callback name="get_power_status" c:type="free_smartphone_device_power_supply_get_power_status" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DevicePowerSupply" c:type="FreeSmartphoneDevicePowerSupply*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
			</record>
			<interface name="Display" c:type="FreeSmartphoneDeviceDisplay" glib:type-name="FreeSmartphoneDeviceDisplay" glib:get-type="free_smartphone_device_display_get_type" glib:type-struct="DisplayIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.Device.Display"/>
				<method name="get_info" c:identifier="free_smartphone_device_display_get_info" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_info" invoker="get_info" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="get_brightness" c:identifier="free_smartphone_device_display_get_brightness" throws="1">
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</method>
				<virtual-method name="get_brightness" invoker="get_brightness" throws="1">
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</virtual-method>
				<method name="set_brightness" c:identifier="free_smartphone_device_display_set_brightness" throws="1">
					<parameters>
						<parameter name="brightness" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_brightness" invoker="set_brightness" throws="1">
					<parameters>
						<parameter name="brightness" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_backlight_power" c:identifier="free_smartphone_device_display_get_backlight_power" throws="1">
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</method>
				<virtual-method name="get_backlight_power" invoker="get_backlight_power" throws="1">
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</virtual-method>
				<method name="set_backlight_power" c:identifier="free_smartphone_device_display_set_backlight_power" throws="1">
					<parameters>
						<parameter name="power" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_backlight_power" invoker="set_backlight_power" throws="1">
					<parameters>
						<parameter name="power" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
			</interface>
			<record name="DisplayIface" c:type="FreeSmartphoneDeviceDisplayIface" glib:is-gtype-struct-for="Display">
				<callback name="get_info" c:type="free_smartphone_device_display_get_info" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceDisplay" c:type="FreeSmartphoneDeviceDisplay*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</callback>
				<callback name="get_brightness" c:type="free_smartphone_device_display_get_brightness" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceDisplay" c:type="FreeSmartphoneDeviceDisplay*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</callback>
				<callback name="set_brightness" c:type="free_smartphone_device_display_set_brightness" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceDisplay" c:type="FreeSmartphoneDeviceDisplay*"/>
						</parameter>
						<parameter name="brightness" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_backlight_power" c:type="free_smartphone_device_display_get_backlight_power" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceDisplay" c:type="FreeSmartphoneDeviceDisplay*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</callback>
				<callback name="set_backlight_power" c:type="free_smartphone_device_display_set_backlight_power" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceDisplay" c:type="FreeSmartphoneDeviceDisplay*"/>
						</parameter>
						<parameter name="power" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
			<interface name="RealtimeClock" c:type="FreeSmartphoneDeviceRealtimeClock" glib:type-name="FreeSmartphoneDeviceRealtimeClock" glib:get-type="free_smartphone_device_realtime_clock_get_type" glib:type-struct="RealtimeClockIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.Device.RealtimeClock"/>
				<method name="get_current_time" c:identifier="free_smartphone_device_realtime_clock_get_current_time" throws="1">
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</method>
				<virtual-method name="get_current_time" invoker="get_current_time" throws="1">
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</virtual-method>
				<method name="set_current_time" c:identifier="free_smartphone_device_realtime_clock_set_current_time" throws="1">
					<parameters>
						<parameter name="time" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_current_time" invoker="set_current_time" throws="1">
					<parameters>
						<parameter name="time" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_wakeup_time" c:identifier="free_smartphone_device_realtime_clock_get_wakeup_time" throws="1">
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</method>
				<virtual-method name="get_wakeup_time" invoker="get_wakeup_time" throws="1">
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</virtual-method>
				<method name="set_wakeup_time" c:identifier="free_smartphone_device_realtime_clock_set_wakeup_time" throws="1">
					<parameters>
						<parameter name="time" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_wakeup_time" invoker="set_wakeup_time" throws="1">
					<parameters>
						<parameter name="time" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
			</interface>
			<record name="RealtimeClockIface" c:type="FreeSmartphoneDeviceRealtimeClockIface" glib:is-gtype-struct-for="RealtimeClock">
				<callback name="get_current_time" c:type="free_smartphone_device_realtime_clock_get_current_time" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceRealtimeClock" c:type="FreeSmartphoneDeviceRealtimeClock*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</callback>
				<callback name="set_current_time" c:type="free_smartphone_device_realtime_clock_set_current_time" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceRealtimeClock" c:type="FreeSmartphoneDeviceRealtimeClock*"/>
						</parameter>
						<parameter name="time" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_wakeup_time" c:type="free_smartphone_device_realtime_clock_get_wakeup_time" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceRealtimeClock" c:type="FreeSmartphoneDeviceRealtimeClock*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</callback>
				<callback name="set_wakeup_time" c:type="free_smartphone_device_realtime_clock_set_wakeup_time" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceRealtimeClock" c:type="FreeSmartphoneDeviceRealtimeClock*"/>
						</parameter>
						<parameter name="time" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
			<interface name="Audio" c:type="FreeSmartphoneDeviceAudio" glib:type-name="FreeSmartphoneDeviceAudio" glib:get-type="free_smartphone_device_audio_get_type" glib:type-struct="AudioIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.Device.Audio"/>
				<method name="get_info" c:identifier="free_smartphone_device_audio_get_info" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_info" invoker="get_info" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="get_supported_formats" c:identifier="free_smartphone_device_audio_get_supported_formats" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</method>
				<virtual-method name="get_supported_formats" invoker="get_supported_formats" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</virtual-method>
				<method name="get_available_scenarios" c:identifier="free_smartphone_device_audio_get_available_scenarios" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</method>
				<virtual-method name="get_available_scenarios" invoker="get_available_scenarios" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</virtual-method>
				<method name="play_sound" c:identifier="free_smartphone_device_audio_play_sound" throws="1">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="loop" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="length" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="play_sound" invoker="play_sound" throws="1">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="loop" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="length" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="stop_sound" c:identifier="free_smartphone_device_audio_stop_sound" throws="1">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="stop_sound" invoker="stop_sound" throws="1">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="stop_all_sounds" c:identifier="free_smartphone_device_audio_stop_all_sounds" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="stop_all_sounds" invoker="stop_all_sounds" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_scenario" c:identifier="free_smartphone_device_audio_get_scenario" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="get_scenario" invoker="get_scenario" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<method name="set_scenario" c:identifier="free_smartphone_device_audio_set_scenario" throws="1">
					<parameters>
						<parameter name="scenario" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_scenario" invoker="set_scenario" throws="1">
					<parameters>
						<parameter name="scenario" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="push_scenario" c:identifier="free_smartphone_device_audio_push_scenario" throws="1">
					<parameters>
						<parameter name="scenario" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="push_scenario" invoker="push_scenario" throws="1">
					<parameters>
						<parameter name="scenario" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="pull_scenario" c:identifier="free_smartphone_device_audio_pull_scenario" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="pull_scenario" invoker="pull_scenario" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<glib:signal name="sound_status">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="properties" transfer-ownership="none">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
				<glib:signal name="scenario">
					<parameters>
						<parameter name="scenario" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="reason" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="AudioIface" c:type="FreeSmartphoneDeviceAudioIface" glib:is-gtype-struct-for="Audio">
				<callback name="get_info" c:type="free_smartphone_device_audio_get_info" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceAudio" c:type="FreeSmartphoneDeviceAudio*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</callback>
				<callback name="get_supported_formats" c:type="free_smartphone_device_audio_get_supported_formats" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceAudio" c:type="FreeSmartphoneDeviceAudio*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</callback>
				<callback name="get_available_scenarios" c:type="free_smartphone_device_audio_get_available_scenarios" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceAudio" c:type="FreeSmartphoneDeviceAudio*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</callback>
				<callback name="play_sound" c:type="free_smartphone_device_audio_play_sound" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceAudio" c:type="FreeSmartphoneDeviceAudio*"/>
						</parameter>
						<parameter name="id" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="loop" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="length" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="stop_sound" c:type="free_smartphone_device_audio_stop_sound" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceAudio" c:type="FreeSmartphoneDeviceAudio*"/>
						</parameter>
						<parameter name="id" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="stop_all_sounds" c:type="free_smartphone_device_audio_stop_all_sounds" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceAudio" c:type="FreeSmartphoneDeviceAudio*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_scenario" c:type="free_smartphone_device_audio_get_scenario" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceAudio" c:type="FreeSmartphoneDeviceAudio*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
				<callback name="set_scenario" c:type="free_smartphone_device_audio_set_scenario" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceAudio" c:type="FreeSmartphoneDeviceAudio*"/>
						</parameter>
						<parameter name="scenario" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="push_scenario" c:type="free_smartphone_device_audio_push_scenario" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceAudio" c:type="FreeSmartphoneDeviceAudio*"/>
						</parameter>
						<parameter name="scenario" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="pull_scenario" c:type="free_smartphone_device_audio_pull_scenario" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceAudio" c:type="FreeSmartphoneDeviceAudio*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
			</record>
			<interface name="IdleNotifier" c:type="FreeSmartphoneDeviceIdleNotifier" glib:type-name="FreeSmartphoneDeviceIdleNotifier" glib:get-type="free_smartphone_device_idle_notifier_get_type" glib:type-struct="IdleNotifierIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.Device.IdleNotifier"/>
				<method name="get_state" c:identifier="free_smartphone_device_idle_notifier_get_state" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="get_state" invoker="get_state" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<method name="get_timeouts" c:identifier="free_smartphone_device_idle_notifier_get_timeouts" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="int" c:type="gint"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_timeouts" invoker="get_timeouts" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="int" c:type="gint"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="set_timeout" c:identifier="free_smartphone_device_idle_notifier_set_timeout" throws="1">
					<parameters>
						<parameter name="state" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="timeout" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_timeout" invoker="set_timeout" throws="1">
					<parameters>
						<parameter name="state" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="timeout" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="set_state" c:identifier="free_smartphone_device_idle_notifier_set_state" throws="1">
					<parameters>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_state" invoker="set_state" throws="1">
					<parameters>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<glib:signal name="state">
					<parameters>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="IdleNotifierIface" c:type="FreeSmartphoneDeviceIdleNotifierIface" glib:is-gtype-struct-for="IdleNotifier">
				<callback name="get_state" c:type="free_smartphone_device_idle_notifier_get_state" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceIdleNotifier" c:type="FreeSmartphoneDeviceIdleNotifier*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
				<callback name="get_timeouts" c:type="free_smartphone_device_idle_notifier_get_timeouts" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceIdleNotifier" c:type="FreeSmartphoneDeviceIdleNotifier*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="int" c:type="gint"/>
						</type>
					</return-value>
				</callback>
				<callback name="set_timeout" c:type="free_smartphone_device_idle_notifier_set_timeout" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceIdleNotifier" c:type="FreeSmartphoneDeviceIdleNotifier*"/>
						</parameter>
						<parameter name="state" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="timeout" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="set_state" c:type="free_smartphone_device_idle_notifier_set_state" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.DeviceIdleNotifier" c:type="FreeSmartphoneDeviceIdleNotifier*"/>
						</parameter>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
		</namespace>
		<c:include name="freesmartphone-gsm.h"/>
		<namespace name="GSM" version="1.0">
			<interface name="PDP" c:type="FreeSmartphoneGSMPDP" glib:type-name="FreeSmartphoneGSMPDP" glib:get-type="free_smartphone_gsm_pdp_get_type" glib:type-struct="PDPIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.GSM.PDP"/>
				<method name="list_gprs_classes" c:identifier="free_smartphone_gsm_pdp_list_gprs_classes" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</method>
				<virtual-method name="list_gprs_classes" invoker="list_gprs_classes" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</virtual-method>
				<method name="get_current_gprs_class" c:identifier="free_smartphone_gsm_pdp_get_current_gprs_class" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="get_current_gprs_class" invoker="get_current_gprs_class" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<method name="set_current_gprs_class" c:identifier="free_smartphone_gsm_pdp_set_current_gprs_class" throws="1">
					<parameters>
						<parameter name="device_class" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_current_gprs_class" invoker="set_current_gprs_class" throws="1">
					<parameters>
						<parameter name="device_class" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_network_status" c:identifier="free_smartphone_gsm_pdp_get_network_status" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_network_status" invoker="get_network_status" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="activate_context" c:identifier="free_smartphone_gsm_pdp_activate_context" throws="1">
					<parameters>
						<parameter name="apn" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="username" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="password" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</method>
				<virtual-method name="activate_context" invoker="activate_context" throws="1">
					<parameters>
						<parameter name="apn" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="username" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="password" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</virtual-method>
				<method name="deactivate_context" c:identifier="free_smartphone_gsm_pdp_deactivate_context" throws="1">
					<parameters>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="deactivate_context" invoker="deactivate_context" throws="1">
					<parameters>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_context_status" c:identifier="free_smartphone_gsm_pdp_get_context_status" throws="1">
					<parameters>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="get_context_status" invoker="get_context_status" throws="1">
					<parameters>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<glib:signal name="network_status">
					<parameters>
						<parameter name="status" transfer-ownership="none">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
				<glib:signal name="context_status">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="properties" transfer-ownership="none">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="PDPIface" c:type="FreeSmartphoneGSMPDPIface" glib:is-gtype-struct-for="PDP">
				<callback name="list_gprs_classes" c:type="free_smartphone_gsm_pdp_list_gprs_classes" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMPDP" c:type="FreeSmartphoneGSMPDP*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</callback>
				<callback name="get_current_gprs_class" c:type="free_smartphone_gsm_pdp_get_current_gprs_class" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMPDP" c:type="FreeSmartphoneGSMPDP*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
				<callback name="set_current_gprs_class" c:type="free_smartphone_gsm_pdp_set_current_gprs_class" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMPDP" c:type="FreeSmartphoneGSMPDP*"/>
						</parameter>
						<parameter name="device_class" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_network_status" c:type="free_smartphone_gsm_pdp_get_network_status" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMPDP" c:type="FreeSmartphoneGSMPDP*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</callback>
				<callback name="activate_context" c:type="free_smartphone_gsm_pdp_activate_context" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMPDP" c:type="FreeSmartphoneGSMPDP*"/>
						</parameter>
						<parameter name="apn" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="username" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="password" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</callback>
				<callback name="deactivate_context" c:type="free_smartphone_gsm_pdp_deactivate_context" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMPDP" c:type="FreeSmartphoneGSMPDP*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_context_status" c:type="free_smartphone_gsm_pdp_get_context_status" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMPDP" c:type="FreeSmartphoneGSMPDP*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
			</record>
			<interface name="HZ" c:type="FreeSmartphoneGSMHZ" glib:type-name="FreeSmartphoneGSMHZ" glib:get-type="free_smartphone_gsm_hz_get_type" glib:type-struct="HZIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.GSM.HZ"/>
				<method name="get_known_home_zones" c:identifier="free_smartphone_gsm_hz_get_known_home_zones" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</method>
				<virtual-method name="get_known_home_zones" invoker="get_known_home_zones" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</virtual-method>
				<method name="get_home_zone_status" c:identifier="free_smartphone_gsm_hz_get_home_zone_status" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="get_home_zone_status" invoker="get_home_zone_status" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<glib:signal name="home_zone_status">
					<parameters>
						<parameter name="name" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="HZIface" c:type="FreeSmartphoneGSMHZIface" glib:is-gtype-struct-for="HZ">
				<callback name="get_known_home_zones" c:type="free_smartphone_gsm_hz_get_known_home_zones" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMHZ" c:type="FreeSmartphoneGSMHZ*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</callback>
				<callback name="get_home_zone_status" c:type="free_smartphone_gsm_hz_get_home_zone_status" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMHZ" c:type="FreeSmartphoneGSMHZ*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
			</record>
			<interface name="Monitor" c:type="FreeSmartphoneGSMMonitor" glib:type-name="FreeSmartphoneGSMMonitor" glib:get-type="free_smartphone_gsm_monitor_get_type" glib:type-struct="MonitorIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.GSM.Monitor"/>
				<method name="get_serving_cell_information" c:identifier="free_smartphone_gsm_monitor_get_serving_cell_information" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_serving_cell_information" invoker="get_serving_cell_information" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="get_neighbour_cell_information" c:identifier="free_smartphone_gsm_monitor_get_neighbour_cell_information" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMMonitorNeighbourCell" c:type="FreeSmartphoneGSMMonitorNeighbourCell"/>
						</array>
					</return-value>
				</method>
				<virtual-method name="get_neighbour_cell_information" invoker="get_neighbour_cell_information" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMMonitorNeighbourCell" c:type="FreeSmartphoneGSMMonitorNeighbourCell"/>
						</array>
					</return-value>
				</virtual-method>
			</interface>
			<record name="MonitorIface" c:type="FreeSmartphoneGSMMonitorIface" glib:is-gtype-struct-for="Monitor">
				<callback name="get_serving_cell_information" c:type="free_smartphone_gsm_monitor_get_serving_cell_information" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMMonitor" c:type="FreeSmartphoneGSMMonitor*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</callback>
				<callback name="get_neighbour_cell_information" c:type="free_smartphone_gsm_monitor_get_neighbour_cell_information" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMMonitor" c:type="FreeSmartphoneGSMMonitor*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMMonitorNeighbourCell" c:type="FreeSmartphoneGSMMonitorNeighbourCell"/>
						</array>
					</return-value>
				</callback>
			</record>
			<interface name="MUX" c:type="FreeSmartphoneGSMMUX" glib:type-name="FreeSmartphoneGSMMUX" glib:get-type="free_smartphone_gsm_mux_get_type" glib:type-struct="MUXIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.GSM.MUX"/>
				<method name="open_session" c:identifier="free_smartphone_gsm_mux_open_session" throws="1">
					<parameters>
						<parameter name="advanced" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
						<parameter name="framesize" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="portname" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="portspeed" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="open_session" invoker="open_session" throws="1">
					<parameters>
						<parameter name="advanced" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
						<parameter name="framesize" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="portname" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="portspeed" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="close_session" c:identifier="free_smartphone_gsm_mux_close_session" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="close_session" invoker="close_session" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="alloc_channel" c:identifier="free_smartphone_gsm_mux_alloc_channel" throws="1">
					<parameters>
						<parameter name="origin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="channel" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="path" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="allocated_channel" direction="out" transfer-ownership="full">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="alloc_channel" invoker="alloc_channel" throws="1">
					<parameters>
						<parameter name="origin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="channel" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="path" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="allocated_channel" direction="out" transfer-ownership="full">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="release_channel" c:identifier="free_smartphone_gsm_mux_release_channel" throws="1">
					<parameters>
						<parameter name="origin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="release_channel" invoker="release_channel" throws="1">
					<parameters>
						<parameter name="origin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="set_status" c:identifier="free_smartphone_gsm_mux_set_status" throws="1">
					<parameters>
						<parameter name="channel" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_status" invoker="set_status" throws="1">
					<parameters>
						<parameter name="channel" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<glib:signal name="status">
					<parameters>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="MUXIface" c:type="FreeSmartphoneGSMMUXIface" glib:is-gtype-struct-for="MUX">
				<callback name="open_session" c:type="free_smartphone_gsm_mux_open_session" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMMUX" c:type="FreeSmartphoneGSMMUX*"/>
						</parameter>
						<parameter name="advanced" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
						<parameter name="framesize" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="portname" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="portspeed" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="close_session" c:type="free_smartphone_gsm_mux_close_session" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMMUX" c:type="FreeSmartphoneGSMMUX*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="alloc_channel" c:type="free_smartphone_gsm_mux_alloc_channel" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMMUX" c:type="FreeSmartphoneGSMMUX*"/>
						</parameter>
						<parameter name="origin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="channel" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="path" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="allocated_channel" direction="out" transfer-ownership="full">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="release_channel" c:type="free_smartphone_gsm_mux_release_channel" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMMUX" c:type="FreeSmartphoneGSMMUX*"/>
						</parameter>
						<parameter name="origin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="set_status" c:type="free_smartphone_gsm_mux_set_status" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMMUX" c:type="FreeSmartphoneGSMMUX*"/>
						</parameter>
						<parameter name="channel" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
			<interface name="Device" c:type="FreeSmartphoneGSMDevice" glib:type-name="FreeSmartphoneGSMDevice" glib:get-type="free_smartphone_gsm_device_get_type" glib:type-struct="DeviceIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.GSM.Device"/>
				<method name="get_info" c:identifier="free_smartphone_gsm_device_get_info" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_info" invoker="get_info" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="get_antenna_power" c:identifier="free_smartphone_gsm_device_get_antenna_power" throws="1">
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</method>
				<virtual-method name="get_antenna_power" invoker="get_antenna_power" throws="1">
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</virtual-method>
				<method name="set_antenna_power" c:identifier="free_smartphone_gsm_device_set_antenna_power" throws="1">
					<parameters>
						<parameter name="antenna_power" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_antenna_power" invoker="set_antenna_power" throws="1">
					<parameters>
						<parameter name="antenna_power" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_features" c:identifier="free_smartphone_gsm_device_get_features" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_features" invoker="get_features" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="get_speaker_volume" c:identifier="free_smartphone_gsm_device_get_speaker_volume" throws="1">
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</method>
				<virtual-method name="get_speaker_volume" invoker="get_speaker_volume" throws="1">
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</virtual-method>
				<method name="set_speaker_volume" c:identifier="free_smartphone_gsm_device_set_speaker_volume" throws="1">
					<parameters>
						<parameter name="volume" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_speaker_volume" invoker="set_speaker_volume" throws="1">
					<parameters>
						<parameter name="volume" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_microphone_muted" c:identifier="free_smartphone_gsm_device_get_microphone_muted" throws="1">
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</method>
				<virtual-method name="get_microphone_muted" invoker="get_microphone_muted" throws="1">
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</virtual-method>
				<method name="set_microphone_muted" c:identifier="free_smartphone_gsm_device_set_microphone_muted" throws="1">
					<parameters>
						<parameter name="muted" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_microphone_muted" invoker="set_microphone_muted" throws="1">
					<parameters>
						<parameter name="muted" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_sim_buffers_sms" c:identifier="free_smartphone_gsm_device_get_sim_buffers_sms" throws="1">
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</method>
				<virtual-method name="get_sim_buffers_sms" invoker="get_sim_buffers_sms" throws="1">
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</virtual-method>
				<method name="set_sim_buffers_sms" c:identifier="free_smartphone_gsm_device_set_sim_buffers_sms" throws="1">
					<parameters>
						<parameter name="sim_buffers_sms" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_sim_buffers_sms" invoker="set_sim_buffers_sms" throws="1">
					<parameters>
						<parameter name="sim_buffers_sms" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
			</interface>
			<record name="DeviceIface" c:type="FreeSmartphoneGSMDeviceIface" glib:is-gtype-struct-for="Device">
				<callback name="get_info" c:type="free_smartphone_gsm_device_get_info" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMDevice" c:type="FreeSmartphoneGSMDevice*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</callback>
				<callback name="get_antenna_power" c:type="free_smartphone_gsm_device_get_antenna_power" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMDevice" c:type="FreeSmartphoneGSMDevice*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</callback>
				<callback name="set_antenna_power" c:type="free_smartphone_gsm_device_set_antenna_power" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMDevice" c:type="FreeSmartphoneGSMDevice*"/>
						</parameter>
						<parameter name="antenna_power" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_features" c:type="free_smartphone_gsm_device_get_features" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMDevice" c:type="FreeSmartphoneGSMDevice*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</callback>
				<callback name="get_speaker_volume" c:type="free_smartphone_gsm_device_get_speaker_volume" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMDevice" c:type="FreeSmartphoneGSMDevice*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</callback>
				<callback name="set_speaker_volume" c:type="free_smartphone_gsm_device_set_speaker_volume" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMDevice" c:type="FreeSmartphoneGSMDevice*"/>
						</parameter>
						<parameter name="volume" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_microphone_muted" c:type="free_smartphone_gsm_device_get_microphone_muted" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMDevice" c:type="FreeSmartphoneGSMDevice*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</callback>
				<callback name="set_microphone_muted" c:type="free_smartphone_gsm_device_set_microphone_muted" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMDevice" c:type="FreeSmartphoneGSMDevice*"/>
						</parameter>
						<parameter name="muted" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_sim_buffers_sms" c:type="free_smartphone_gsm_device_get_sim_buffers_sms" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMDevice" c:type="FreeSmartphoneGSMDevice*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</callback>
				<callback name="set_sim_buffers_sms" c:type="free_smartphone_gsm_device_set_sim_buffers_sms" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMDevice" c:type="FreeSmartphoneGSMDevice*"/>
						</parameter>
						<parameter name="sim_buffers_sms" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
			<interface name="Call" c:type="FreeSmartphoneGSMCall" glib:type-name="FreeSmartphoneGSMCall" glib:get-type="free_smartphone_gsm_call_get_type" glib:type-struct="CallIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.GSM.Call"/>
				<method name="emergency" c:identifier="free_smartphone_gsm_call_emergency" throws="1">
					<parameters>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="emergency" invoker="emergency" throws="1">
					<parameters>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="activate" c:identifier="free_smartphone_gsm_call_activate" throws="1">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="activate" invoker="activate" throws="1">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="activate_conference" c:identifier="free_smartphone_gsm_call_activate_conference" throws="1">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="activate_conference" invoker="activate_conference" throws="1">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="release" c:identifier="free_smartphone_gsm_call_release" throws="1">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="release" invoker="release" throws="1">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="hold_active" c:identifier="free_smartphone_gsm_call_hold_active" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="hold_active" invoker="hold_active" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="join" c:identifier="free_smartphone_gsm_call_join" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="join" invoker="join" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="transfer" c:identifier="free_smartphone_gsm_call_transfer" throws="1">
					<parameters>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="transfer" invoker="transfer" throws="1">
					<parameters>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="release_held" c:identifier="free_smartphone_gsm_call_release_held" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="release_held" invoker="release_held" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="release_all" c:identifier="free_smartphone_gsm_call_release_all" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="release_all" invoker="release_all" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="initiate" c:identifier="free_smartphone_gsm_call_initiate" throws="1">
					<parameters>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="type" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</method>
				<virtual-method name="initiate" invoker="initiate" throws="1">
					<parameters>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="type" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</virtual-method>
				<method name="list_calls" c:identifier="free_smartphone_gsm_call_list_calls" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMCallStatus" c:type="FreeSmartphoneGSMCallStatus"/>
						</array>
					</return-value>
				</method>
				<virtual-method name="list_calls" invoker="list_calls" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMCallStatus" c:type="FreeSmartphoneGSMCallStatus"/>
						</array>
					</return-value>
				</virtual-method>
				<method name="send_dtmf" c:identifier="free_smartphone_gsm_call_send_dtmf" throws="1">
					<parameters>
						<parameter name="tones" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="send_dtmf" invoker="send_dtmf" throws="1">
					<parameters>
						<parameter name="tones" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<glib:signal name="call_status">
					<parameters>
						<parameter name="id" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="properties" transfer-ownership="none">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="CallIface" c:type="FreeSmartphoneGSMCallIface" glib:is-gtype-struct-for="Call">
				<callback name="emergency" c:type="free_smartphone_gsm_call_emergency" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCall" c:type="FreeSmartphoneGSMCall*"/>
						</parameter>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="activate" c:type="free_smartphone_gsm_call_activate" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCall" c:type="FreeSmartphoneGSMCall*"/>
						</parameter>
						<parameter name="id" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="activate_conference" c:type="free_smartphone_gsm_call_activate_conference" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCall" c:type="FreeSmartphoneGSMCall*"/>
						</parameter>
						<parameter name="id" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="release" c:type="free_smartphone_gsm_call_release" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCall" c:type="FreeSmartphoneGSMCall*"/>
						</parameter>
						<parameter name="id" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="hold_active" c:type="free_smartphone_gsm_call_hold_active" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCall" c:type="FreeSmartphoneGSMCall*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="join" c:type="free_smartphone_gsm_call_join" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCall" c:type="FreeSmartphoneGSMCall*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="transfer" c:type="free_smartphone_gsm_call_transfer" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCall" c:type="FreeSmartphoneGSMCall*"/>
						</parameter>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="release_held" c:type="free_smartphone_gsm_call_release_held" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCall" c:type="FreeSmartphoneGSMCall*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="release_all" c:type="free_smartphone_gsm_call_release_all" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCall" c:type="FreeSmartphoneGSMCall*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="initiate" c:type="free_smartphone_gsm_call_initiate" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCall" c:type="FreeSmartphoneGSMCall*"/>
						</parameter>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="type" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</callback>
				<callback name="list_calls" c:type="free_smartphone_gsm_call_list_calls" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCall" c:type="FreeSmartphoneGSMCall*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMCallStatus" c:type="FreeSmartphoneGSMCallStatus"/>
						</array>
					</return-value>
				</callback>
				<callback name="send_dtmf" c:type="free_smartphone_gsm_call_send_dtmf" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCall" c:type="FreeSmartphoneGSMCall*"/>
						</parameter>
						<parameter name="tones" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
			<interface name="Network" c:type="FreeSmartphoneGSMNetwork" glib:type-name="FreeSmartphoneGSMNetwork" glib:get-type="free_smartphone_gsm_network_get_type" glib:type-struct="NetworkIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.GSM.Network"/>
				<method name="register_" c:identifier="free_smartphone_gsm_network_register_" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="register_" invoker="register_" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="unregister" c:identifier="free_smartphone_gsm_network_unregister" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="unregister" invoker="unregister" throws="1">
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_status" c:identifier="free_smartphone_gsm_network_get_status" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_status" invoker="get_status" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="get_signal_strength" c:identifier="free_smartphone_gsm_network_get_signal_strength" throws="1">
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</method>
				<virtual-method name="get_signal_strength" invoker="get_signal_strength" throws="1">
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</virtual-method>
				<method name="list_providers" c:identifier="free_smartphone_gsm_network_list_providers" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMNetworkProvider" c:type="FreeSmartphoneGSMNetworkProvider"/>
						</array>
					</return-value>
				</method>
				<virtual-method name="list_providers" invoker="list_providers" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMNetworkProvider" c:type="FreeSmartphoneGSMNetworkProvider"/>
						</array>
					</return-value>
				</virtual-method>
				<method name="register_with_provider" c:identifier="free_smartphone_gsm_network_register_with_provider" throws="1">
					<parameters>
						<parameter name="operator_code" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="register_with_provider" invoker="register_with_provider" throws="1">
					<parameters>
						<parameter name="operator_code" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_network_country_code" c:identifier="free_smartphone_gsm_network_get_network_country_code" throws="1">
					<parameters>
						<parameter name="dial_code" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="country_name" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="get_network_country_code" invoker="get_network_country_code" throws="1">
					<parameters>
						<parameter name="dial_code" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="country_name" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_call_forwarding" c:identifier="free_smartphone_gsm_network_get_call_forwarding" throws="1">
					<parameters>
						<parameter name="reason" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_call_forwarding" invoker="get_call_forwarding" throws="1">
					<parameters>
						<parameter name="reason" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="enable_call_forwarding" c:identifier="free_smartphone_gsm_network_enable_call_forwarding" throws="1">
					<parameters>
						<parameter name="reason" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="class_" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="timeout" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="enable_call_forwarding" invoker="enable_call_forwarding" throws="1">
					<parameters>
						<parameter name="reason" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="class_" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="timeout" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="disable_call_forwarding" c:identifier="free_smartphone_gsm_network_disable_call_forwarding" throws="1">
					<parameters>
						<parameter name="reason" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="class_" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="disable_call_forwarding" invoker="disable_call_forwarding" throws="1">
					<parameters>
						<parameter name="reason" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="class_" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="set_calling_identification" c:identifier="free_smartphone_gsm_network_set_calling_identification" throws="1">
					<parameters>
						<parameter name="visible" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_calling_identification" invoker="set_calling_identification" throws="1">
					<parameters>
						<parameter name="visible" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_calling_identification" c:identifier="free_smartphone_gsm_network_get_calling_identification" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="get_calling_identification" invoker="get_calling_identification" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<method name="send_ussd_request" c:identifier="free_smartphone_gsm_network_send_ussd_request" throws="1">
					<parameters>
						<parameter name="request" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="send_ussd_request" invoker="send_ussd_request" throws="1">
					<parameters>
						<parameter name="request" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<glib:signal name="status">
					<parameters>
						<parameter name="status" transfer-ownership="none">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
				<glib:signal name="signal_strength">
					<parameters>
						<parameter name="signal_strength" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
				<glib:signal name="incoming_ussd">
					<parameters>
						<parameter name="mode" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="message_" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
				<glib:signal name="cipher_status">
					<parameters>
						<parameter name="gsm" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="gprs" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="NetworkIface" c:type="FreeSmartphoneGSMNetworkIface" glib:is-gtype-struct-for="Network">
				<callback name="register_" c:type="free_smartphone_gsm_network_register_" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="unregister" c:type="free_smartphone_gsm_network_unregister" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_status" c:type="free_smartphone_gsm_network_get_status" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</callback>
				<callback name="get_signal_strength" c:type="free_smartphone_gsm_network_get_signal_strength" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</callback>
				<callback name="list_providers" c:type="free_smartphone_gsm_network_list_providers" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMNetworkProvider" c:type="FreeSmartphoneGSMNetworkProvider"/>
						</array>
					</return-value>
				</callback>
				<callback name="register_with_provider" c:type="free_smartphone_gsm_network_register_with_provider" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
						<parameter name="operator_code" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_network_country_code" c:type="free_smartphone_gsm_network_get_network_country_code" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
						<parameter name="dial_code" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="country_name" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_call_forwarding" c:type="free_smartphone_gsm_network_get_call_forwarding" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
						<parameter name="reason" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</callback>
				<callback name="enable_call_forwarding" c:type="free_smartphone_gsm_network_enable_call_forwarding" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
						<parameter name="reason" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="class_" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="timeout" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="disable_call_forwarding" c:type="free_smartphone_gsm_network_disable_call_forwarding" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
						<parameter name="reason" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="class_" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="set_calling_identification" c:type="free_smartphone_gsm_network_set_calling_identification" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
						<parameter name="visible" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_calling_identification" c:type="free_smartphone_gsm_network_get_calling_identification" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
				<callback name="send_ussd_request" c:type="free_smartphone_gsm_network_send_ussd_request" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMNetwork" c:type="FreeSmartphoneGSMNetwork*"/>
						</parameter>
						<parameter name="request" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
			<interface name="SMS" c:type="FreeSmartphoneGSMSMS" glib:type-name="FreeSmartphoneGSMSMS" glib:get-type="free_smartphone_gsm_sms_get_type" glib:type-struct="SMSIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.GSM.SMS"/>
				<method name="send_message" c:identifier="free_smartphone_gsm_sms_send_message" throws="1">
					<parameters>
						<parameter name="recipient_number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="contents" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="properties" transfer-ownership="none">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
						<parameter name="transaction_index" direction="out" transfer-ownership="full">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="timestamp" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="send_message" invoker="send_message" throws="1">
					<parameters>
						<parameter name="recipient_number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="contents" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="properties" transfer-ownership="none">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
						<parameter name="transaction_index" direction="out" transfer-ownership="full">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="timestamp" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<glib:signal name="incoming_message">
					<parameters>
						<parameter name="sender_number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="contents" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="properties" transfer-ownership="none">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="SMSIface" c:type="FreeSmartphoneGSMSMSIface" glib:is-gtype-struct-for="SMS">
				<callback name="send_message" c:type="free_smartphone_gsm_sms_send_message" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSMS" c:type="FreeSmartphoneGSMSMS*"/>
						</parameter>
						<parameter name="recipient_number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="contents" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="properties" transfer-ownership="none">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
						<parameter name="transaction_index" direction="out" transfer-ownership="full">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="timestamp" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
			<interface name="CB" c:type="FreeSmartphoneGSMCB" glib:type-name="FreeSmartphoneGSMCB" glib:get-type="free_smartphone_gsm_cb_get_type" glib:type-struct="CBIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.GSM.CB"/>
				<method name="get_cell_broadcast_subscriptions" c:identifier="free_smartphone_gsm_cb_get_cell_broadcast_subscriptions" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="get_cell_broadcast_subscriptions" invoker="get_cell_broadcast_subscriptions" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<method name="set_cell_broadcast_subscriptions" c:identifier="free_smartphone_gsm_cb_set_cell_broadcast_subscriptions" throws="1">
					<parameters>
						<parameter name="channels" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_cell_broadcast_subscriptions" invoker="set_cell_broadcast_subscriptions" throws="1">
					<parameters>
						<parameter name="channels" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<glib:signal name="incoming_cell_broadcast">
					<parameters>
						<parameter name="serial" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="channel" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="encoding" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="page" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="data" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="CBIface" c:type="FreeSmartphoneGSMCBIface" glib:is-gtype-struct-for="CB">
				<callback name="get_cell_broadcast_subscriptions" c:type="free_smartphone_gsm_cb_get_cell_broadcast_subscriptions" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCB" c:type="FreeSmartphoneGSMCB*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
				<callback name="set_cell_broadcast_subscriptions" c:type="free_smartphone_gsm_cb_set_cell_broadcast_subscriptions" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMCB" c:type="FreeSmartphoneGSMCB*"/>
						</parameter>
						<parameter name="channels" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
			<interface name="SIM" c:type="FreeSmartphoneGSMSIM" glib:type-name="FreeSmartphoneGSMSIM" glib:get-type="free_smartphone_gsm_sim_get_type" glib:type-struct="SIMIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.GSM.SIM"/>
				<method name="get_auth_status" c:identifier="free_smartphone_gsm_sim_get_auth_status" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="get_auth_status" invoker="get_auth_status" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<method name="send_auth_code" c:identifier="free_smartphone_gsm_sim_send_auth_code" throws="1">
					<parameters>
						<parameter name="pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="send_auth_code" invoker="send_auth_code" throws="1">
					<parameters>
						<parameter name="pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="unlock" c:identifier="free_smartphone_gsm_sim_unlock" throws="1">
					<parameters>
						<parameter name="puk" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="new_pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="unlock" invoker="unlock" throws="1">
					<parameters>
						<parameter name="puk" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="new_pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="change_auth_code" c:identifier="free_smartphone_gsm_sim_change_auth_code" throws="1">
					<parameters>
						<parameter name="old_pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="new_pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="change_auth_code" invoker="change_auth_code" throws="1">
					<parameters>
						<parameter name="old_pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="new_pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="set_auth_code_required" c:identifier="free_smartphone_gsm_sim_set_auth_code_required" throws="1">
					<parameters>
						<parameter name="check" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
						<parameter name="pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_auth_code_required" invoker="set_auth_code_required" throws="1">
					<parameters>
						<parameter name="check" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
						<parameter name="pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_auth_code_required" c:identifier="free_smartphone_gsm_sim_get_auth_code_required" throws="1">
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</method>
				<virtual-method name="get_auth_code_required" invoker="get_auth_code_required" throws="1">
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</virtual-method>
				<method name="get_sim_ready" c:identifier="free_smartphone_gsm_sim_get_sim_ready" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="get_sim_ready" invoker="get_sim_ready" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<method name="get_sim_info" c:identifier="free_smartphone_gsm_sim_get_sim_info" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_sim_info" invoker="get_sim_info" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="send_generic_sim_command" c:identifier="free_smartphone_gsm_sim_send_generic_sim_command" throws="1">
					<parameters>
						<parameter name="command" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="send_generic_sim_command" invoker="send_generic_sim_command" throws="1">
					<parameters>
						<parameter name="command" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<method name="send_restricted_sim_command" c:identifier="free_smartphone_gsm_sim_send_restricted_sim_command" throws="1">
					<parameters>
						<parameter name="command" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="fileid" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="p1" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="p2" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="p3" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="data" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="send_restricted_sim_command" invoker="send_restricted_sim_command" throws="1">
					<parameters>
						<parameter name="command" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="fileid" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="p1" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="p2" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="p3" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="data" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<method name="get_home_zones" c:identifier="free_smartphone_gsm_sim_get_home_zones" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMSIMHomezone" c:type="FreeSmartphoneGSMSIMHomezone"/>
						</array>
					</return-value>
				</method>
				<virtual-method name="get_home_zones" invoker="get_home_zones" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMSIMHomezone" c:type="FreeSmartphoneGSMSIMHomezone"/>
						</array>
					</return-value>
				</virtual-method>
				<method name="get_issuer" c:identifier="free_smartphone_gsm_sim_get_issuer" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="get_issuer" invoker="get_issuer" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<method name="get_provider_list" c:identifier="free_smartphone_gsm_sim_get_provider_list" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="int" c:type="gint"/>
							<type name="utf8" c:type="char*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_provider_list" invoker="get_provider_list" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="int" c:type="gint"/>
							<type name="utf8" c:type="char*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="list_phonebooks" c:identifier="free_smartphone_gsm_sim_list_phonebooks" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</method>
				<virtual-method name="list_phonebooks" invoker="list_phonebooks" throws="1">
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</virtual-method>
				<method name="get_phonebook_info" c:identifier="free_smartphone_gsm_sim_get_phonebook_info" throws="1">
					<parameters>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_phonebook_info" invoker="get_phonebook_info" throws="1">
					<parameters>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="retrieve_phonebook" c:identifier="free_smartphone_gsm_sim_retrieve_phonebook" throws="1">
					<parameters>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMSIMEntry" c:type="FreeSmartphoneGSMSIMEntry"/>
						</array>
					</return-value>
				</method>
				<virtual-method name="retrieve_phonebook" invoker="retrieve_phonebook" throws="1">
					<parameters>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMSIMEntry" c:type="FreeSmartphoneGSMSIMEntry"/>
						</array>
					</return-value>
				</virtual-method>
				<method name="delete_entry" c:identifier="free_smartphone_gsm_sim_delete_entry" throws="1">
					<parameters>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="delete_entry" invoker="delete_entry" throws="1">
					<parameters>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="store_entry" c:identifier="free_smartphone_gsm_sim_store_entry" throws="1">
					<parameters>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="name" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="store_entry" invoker="store_entry" throws="1">
					<parameters>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="name" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="retrieve_entry" c:identifier="free_smartphone_gsm_sim_retrieve_entry" throws="1">
					<parameters>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="name" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="number" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="retrieve_entry" invoker="retrieve_entry" throws="1">
					<parameters>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="name" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="number" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="get_messagebook_info" c:identifier="free_smartphone_gsm_sim_get_messagebook_info" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</method>
				<virtual-method name="get_messagebook_info" invoker="get_messagebook_info" throws="1">
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</virtual-method>
				<method name="retrieve_messagebook" c:identifier="free_smartphone_gsm_sim_retrieve_messagebook" throws="1">
					<parameters>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMSIMMessage" c:type="FreeSmartphoneGSMSIMMessage"/>
						</array>
					</return-value>
				</method>
				<virtual-method name="retrieve_messagebook" invoker="retrieve_messagebook" throws="1">
					<parameters>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMSIMMessage" c:type="FreeSmartphoneGSMSIMMessage"/>
						</array>
					</return-value>
				</virtual-method>
				<method name="get_service_center_number" c:identifier="free_smartphone_gsm_sim_get_service_center_number" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</method>
				<virtual-method name="get_service_center_number" invoker="get_service_center_number" throws="1">
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</virtual-method>
				<method name="set_service_center_number" c:identifier="free_smartphone_gsm_sim_set_service_center_number" throws="1">
					<parameters>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_service_center_number" invoker="set_service_center_number" throws="1">
					<parameters>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="delete_message" c:identifier="free_smartphone_gsm_sim_delete_message" throws="1">
					<parameters>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="delete_message" invoker="delete_message" throws="1">
					<parameters>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="store_message" c:identifier="free_smartphone_gsm_sim_store_message" throws="1">
					<parameters>
						<parameter name="recipient_number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="contents" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="properties" transfer-ownership="none">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</method>
				<virtual-method name="store_message" invoker="store_message" throws="1">
					<parameters>
						<parameter name="recipient_number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="contents" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="properties" transfer-ownership="none">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</virtual-method>
				<method name="send_stored_message" c:identifier="free_smartphone_gsm_sim_send_stored_message" throws="1">
					<parameters>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="transaction_index" direction="out" transfer-ownership="full">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="timestamp" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="send_stored_message" invoker="send_stored_message" throws="1">
					<parameters>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="transaction_index" direction="out" transfer-ownership="full">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="timestamp" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="retrieve_message" c:identifier="free_smartphone_gsm_sim_retrieve_message" throws="1">
					<parameters>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="status" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="sender_number" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="contents" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="properties" direction="out" transfer-ownership="full">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="retrieve_message" invoker="retrieve_message" throws="1">
					<parameters>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="status" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="sender_number" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="contents" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="properties" direction="out" transfer-ownership="full">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<glib:signal name="auth_status">
					<parameters>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
				<glib:signal name="ready_status">
					<parameters>
						<parameter name="status" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
				<glib:signal name="incoming_stored_message">
					<parameters>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</glib:signal>
			</interface>
			<record name="SIMIface" c:type="FreeSmartphoneGSMSIMIface" glib:is-gtype-struct-for="SIM">
				<callback name="get_auth_status" c:type="free_smartphone_gsm_sim_get_auth_status" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
				<callback name="send_auth_code" c:type="free_smartphone_gsm_sim_send_auth_code" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="unlock" c:type="free_smartphone_gsm_sim_unlock" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="puk" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="new_pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="change_auth_code" c:type="free_smartphone_gsm_sim_change_auth_code" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="old_pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="new_pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="set_auth_code_required" c:type="free_smartphone_gsm_sim_set_auth_code_required" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="check" transfer-ownership="none">
							<type name="boolean" c:type="gboolean"/>
						</parameter>
						<parameter name="pin" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_auth_code_required" c:type="free_smartphone_gsm_sim_get_auth_code_required" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="boolean" c:type="gboolean"/>
					</return-value>
				</callback>
				<callback name="get_sim_ready" c:type="free_smartphone_gsm_sim_get_sim_ready" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
				<callback name="get_sim_info" c:type="free_smartphone_gsm_sim_get_sim_info" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</callback>
				<callback name="send_generic_sim_command" c:type="free_smartphone_gsm_sim_send_generic_sim_command" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="command" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
				<callback name="send_restricted_sim_command" c:type="free_smartphone_gsm_sim_send_restricted_sim_command" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="command" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="fileid" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="p1" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="p2" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="p3" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="data" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
				<callback name="get_home_zones" c:type="free_smartphone_gsm_sim_get_home_zones" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMSIMHomezone" c:type="FreeSmartphoneGSMSIMHomezone"/>
						</array>
					</return-value>
				</callback>
				<callback name="get_issuer" c:type="free_smartphone_gsm_sim_get_issuer" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
				<callback name="get_provider_list" c:type="free_smartphone_gsm_sim_get_provider_list" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="int" c:type="gint"/>
							<type name="utf8" c:type="char*"/>
						</type>
					</return-value>
				</callback>
				<callback name="list_phonebooks" c:type="free_smartphone_gsm_sim_list_phonebooks" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="utf8" c:type="char*"/>
						</array>
					</return-value>
				</callback>
				<callback name="get_phonebook_info" c:type="free_smartphone_gsm_sim_get_phonebook_info" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</callback>
				<callback name="retrieve_phonebook" c:type="free_smartphone_gsm_sim_retrieve_phonebook" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMSIMEntry" c:type="FreeSmartphoneGSMSIMEntry"/>
						</array>
					</return-value>
				</callback>
				<callback name="delete_entry" c:type="free_smartphone_gsm_sim_delete_entry" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="store_entry" c:type="free_smartphone_gsm_sim_store_entry" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="name" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="retrieve_entry" c:type="free_smartphone_gsm_sim_retrieve_entry" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="name" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="number" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="get_messagebook_info" c:type="free_smartphone_gsm_sim_get_messagebook_info" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</return-value>
				</callback>
				<callback name="retrieve_messagebook" c:type="free_smartphone_gsm_sim_retrieve_messagebook" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="category" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<array>
							<type name="FreeSmartphone.GSMSIMMessage" c:type="FreeSmartphoneGSMSIMMessage"/>
						</array>
					</return-value>
				</callback>
				<callback name="get_service_center_number" c:type="free_smartphone_gsm_sim_get_service_center_number" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="utf8" c:type="char*"/>
					</return-value>
				</callback>
				<callback name="set_service_center_number" c:type="free_smartphone_gsm_sim_set_service_center_number" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="delete_message" c:type="free_smartphone_gsm_sim_delete_message" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="store_message" c:type="free_smartphone_gsm_sim_store_message" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="recipient_number" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="contents" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="properties" transfer-ownership="none">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
					</parameters>
					<return-value transfer-ownership="full">
						<type name="int" c:type="gint"/>
					</return-value>
				</callback>
				<callback name="send_stored_message" c:type="free_smartphone_gsm_sim_send_stored_message" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="transaction_index" direction="out" transfer-ownership="full">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="timestamp" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="retrieve_message" c:type="free_smartphone_gsm_sim_retrieve_message" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.GSMSIM" c:type="FreeSmartphoneGSMSIM*"/>
						</parameter>
						<parameter name="index" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
						<parameter name="status" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="sender_number" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="contents" direction="out" transfer-ownership="full">
							<type name="utf8" c:type="char*"/>
						</parameter>
						<parameter name="properties" direction="out" transfer-ownership="full">
							<type name="GLib.HashTable" c:type="GHashTable*">
								<type name="utf8" c:type="char*"/>
								<type name="GLib.Value" c:type="GValue*"/>
							</type>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
			<record name="MonitorNeighbourCell">
				<field name="attr1">
					<type name="GLib.HashTable" c:type="GHashTable*">
						<type name="utf8" c:type="char*"/>
						<type name="GLib.Value" c:type="GValue*"/>
					</type>
				</field>
			</record>
			<record name="CallStatus">
				<field name="attr1">
					<type name="int" c:type="gint"/>
				</field>
				<field name="attr2">
					<type name="utf8" c:type="char*"/>
				</field>
				<field name="attr3">
					<type name="GLib.HashTable" c:type="GHashTable*">
						<type name="utf8" c:type="char*"/>
						<type name="GLib.Value" c:type="GValue*"/>
					</type>
				</field>
			</record>
			<record name="NetworkProvider">
				<field name="attr1">
					<type name="int" c:type="gint"/>
				</field>
				<field name="attr2">
					<type name="utf8" c:type="char*"/>
				</field>
				<field name="attr3">
					<type name="utf8" c:type="char*"/>
				</field>
				<field name="attr4">
					<type name="utf8" c:type="char*"/>
				</field>
				<field name="attr5">
					<type name="utf8" c:type="char*"/>
				</field>
			</record>
			<record name="SIMMessage">
				<field name="attr1">
					<type name="int" c:type="gint"/>
				</field>
				<field name="attr2">
					<type name="utf8" c:type="char*"/>
				</field>
				<field name="attr3">
					<type name="utf8" c:type="char*"/>
				</field>
				<field name="attr4">
					<type name="utf8" c:type="char*"/>
				</field>
				<field name="attr5">
					<type name="GLib.HashTable" c:type="GHashTable*">
						<type name="utf8" c:type="char*"/>
						<type name="GLib.Value" c:type="GValue*"/>
					</type>
				</field>
			</record>
			<record name="SIMHomezone">
				<field name="attr1">
					<type name="utf8" c:type="char*"/>
				</field>
				<field name="attr2">
					<type name="int" c:type="gint"/>
				</field>
				<field name="attr3">
					<type name="int" c:type="gint"/>
				</field>
				<field name="attr4">
					<type name="int" c:type="gint"/>
				</field>
			</record>
			<record name="SIMEntry">
				<field name="attr1">
					<type name="int" c:type="gint"/>
				</field>
				<field name="attr2">
					<type name="utf8" c:type="char*"/>
				</field>
				<field name="attr3">
					<type name="utf8" c:type="char*"/>
				</field>
			</record>
		</namespace>
		<c:include name="freesmartphone-time.h"/>
		<namespace name="Time" version="1.0">
			<interface name="Alarm" c:type="FreeSmartphoneTimeAlarm" glib:type-name="FreeSmartphoneTimeAlarm" glib:get-type="free_smartphone_time_alarm_get_type" glib:type-struct="AlarmIface">
				<requires>
					<object name="GLib.Object"/>
				</requires>
				<annotation key="dbus.name" value="org.freesmartphone.Time.Alarm"/>
				<method name="clear_alarm" c:identifier="free_smartphone_time_alarm_clear_alarm" throws="1">
					<parameters>
						<parameter name="busname" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="clear_alarm" invoker="clear_alarm" throws="1">
					<parameters>
						<parameter name="busname" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
				<method name="set_alarm" c:identifier="free_smartphone_time_alarm_set_alarm" throws="1">
					<parameters>
						<parameter name="busname" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="timestamp" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</method>
				<virtual-method name="set_alarm" invoker="set_alarm" throws="1">
					<parameters>
						<parameter name="busname" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="timestamp" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</virtual-method>
			</interface>
			<record name="AlarmIface" c:type="FreeSmartphoneTimeAlarmIface" glib:is-gtype-struct-for="Alarm">
				<callback name="clear_alarm" c:type="free_smartphone_time_alarm_clear_alarm" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.TimeAlarm" c:type="FreeSmartphoneTimeAlarm*"/>
						</parameter>
						<parameter name="busname" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
				<callback name="set_alarm" c:type="free_smartphone_time_alarm_set_alarm" throws="1">
					<parameters>
						<parameter name="self" transfer-ownership="none">
							<type name="FreeSmartphone.TimeAlarm" c:type="FreeSmartphoneTimeAlarm*"/>
						</parameter>
						<parameter name="busname" transfer-ownership="none">
							<type name="utf8" c:type="const char*"/>
						</parameter>
						<parameter name="timestamp" transfer-ownership="none">
							<type name="int" c:type="gint"/>
						</parameter>
					</parameters>
					<return-value transfer-ownership="none">
						<type name="none"/>
					</return-value>
				</callback>
			</record>
		</namespace>
		<interface name="Phone" c:type="FreeSmartphonePhone" glib:type-name="FreeSmartphonePhone" glib:get-type="free_smartphone_phone_get_type" glib:type-struct="PhoneIface">
			<requires>
				<object name="GLib.Object"/>
			</requires>
			<annotation key="dbus.name" value="org.freesmartphone.Phone"/>
			<method name="init_protocols" c:identifier="free_smartphone_phone_init_protocols" throws="1">
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</method>
			<virtual-method name="init_protocols" invoker="init_protocols" throws="1">
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</virtual-method>
			<method name="create_call" c:identifier="free_smartphone_phone_create_call" throws="1">
				<parameters>
					<parameter name="number" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="protocol" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="force" transfer-ownership="none">
						<type name="boolean" c:type="gboolean"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="DBus.ObjectPath" c:type="char*"/>
				</return-value>
			</method>
			<virtual-method name="create_call" invoker="create_call" throws="1">
				<parameters>
					<parameter name="number" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="protocol" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="force" transfer-ownership="none">
						<type name="boolean" c:type="gboolean"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="DBus.ObjectPath" c:type="char*"/>
				</return-value>
			</virtual-method>
			<glib:signal name="incoming">
				<parameters>
					<parameter name="call" transfer-ownership="none">
						<type name="DBus.ObjectPath" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</glib:signal>
		</interface>
		<record name="PhoneIface" c:type="FreeSmartphonePhoneIface" glib:is-gtype-struct-for="Phone">
			<callback name="init_protocols" c:type="free_smartphone_phone_init_protocols" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Phone" c:type="FreeSmartphonePhone*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</callback>
			<callback name="create_call" c:type="free_smartphone_phone_create_call" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Phone" c:type="FreeSmartphonePhone*"/>
					</parameter>
					<parameter name="number" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="protocol" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="force" transfer-ownership="none">
						<type name="boolean" c:type="gboolean"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="DBus.ObjectPath" c:type="char*"/>
				</return-value>
			</callback>
		</record>
		<interface name="Resource" c:type="FreeSmartphoneResource" glib:type-name="FreeSmartphoneResource" glib:get-type="free_smartphone_resource_get_type" glib:type-struct="ResourceIface">
			<requires>
				<object name="GLib.Object"/>
			</requires>
			<annotation key="dbus.name" value="org.freesmartphone.Resource"/>
			<method name="enable" c:identifier="free_smartphone_resource_enable" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="enable" invoker="enable" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<method name="disable" c:identifier="free_smartphone_resource_disable" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="disable" invoker="disable" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<method name="suspend" c:identifier="free_smartphone_resource_suspend" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="suspend" invoker="suspend" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<method name="resume" c:identifier="free_smartphone_resource_resume" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="resume" invoker="resume" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
		</interface>
		<record name="ResourceIface" c:type="FreeSmartphoneResourceIface" glib:is-gtype-struct-for="Resource">
			<callback name="enable" c:type="free_smartphone_resource_enable" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Resource" c:type="FreeSmartphoneResource*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
			<callback name="disable" c:type="free_smartphone_resource_disable" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Resource" c:type="FreeSmartphoneResource*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
			<callback name="suspend" c:type="free_smartphone_resource_suspend" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Resource" c:type="FreeSmartphoneResource*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
			<callback name="resume" c:type="free_smartphone_resource_resume" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Resource" c:type="FreeSmartphoneResource*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
		</record>
		<interface name="PhoneCall" c:type="FreeSmartphonePhoneCall" glib:type-name="FreeSmartphonePhoneCall" glib:get-type="free_smartphone_phone_call_get_type" glib:type-struct="PhoneCallIface">
			<requires>
				<object name="GLib.Object"/>
			</requires>
			<annotation key="dbus.name" value="org.freesmartphone.Phone.Call"/>
			<method name="get_peer" c:identifier="free_smartphone_phone_call_get_peer" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</method>
			<virtual-method name="get_peer" invoker="get_peer" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</virtual-method>
			<method name="initiate" c:identifier="free_smartphone_phone_call_initiate" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</method>
			<virtual-method name="initiate" invoker="initiate" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</virtual-method>
			<method name="activate" c:identifier="free_smartphone_phone_call_activate" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</method>
			<virtual-method name="activate" invoker="activate" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</virtual-method>
			<method name="release" c:identifier="free_smartphone_phone_call_release" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</method>
			<virtual-method name="release" invoker="release" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</virtual-method>
			<method name="get_status" c:identifier="free_smartphone_phone_call_get_status" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</method>
			<virtual-method name="get_status" invoker="get_status" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</virtual-method>
			<method name="remove" c:identifier="free_smartphone_phone_call_remove" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="remove" invoker="remove" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<glib:signal name="incoming">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</glib:signal>
			<glib:signal name="outgoing">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</glib:signal>
			<glib:signal name="released">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</glib:signal>
			<glib:signal name="activated">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</glib:signal>
		</interface>
		<record name="PhoneCallIface" c:type="FreeSmartphonePhoneCallIface" glib:is-gtype-struct-for="PhoneCall">
			<callback name="get_peer" c:type="free_smartphone_phone_call_get_peer" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.PhoneCall" c:type="FreeSmartphonePhoneCall*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</callback>
			<callback name="initiate" c:type="free_smartphone_phone_call_initiate" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.PhoneCall" c:type="FreeSmartphonePhoneCall*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</callback>
			<callback name="activate" c:type="free_smartphone_phone_call_activate" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.PhoneCall" c:type="FreeSmartphonePhoneCall*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</callback>
			<callback name="release" c:type="free_smartphone_phone_call_release" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.PhoneCall" c:type="FreeSmartphonePhoneCall*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</callback>
			<callback name="get_status" c:type="free_smartphone_phone_call_get_status" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.PhoneCall" c:type="FreeSmartphonePhoneCall*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</callback>
			<callback name="remove" c:type="free_smartphone_phone_call_remove" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.PhoneCall" c:type="FreeSmartphonePhoneCall*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
		</record>
		<interface name="Preferences" c:type="FreeSmartphonePreferences" glib:type-name="FreeSmartphonePreferences" glib:get-type="free_smartphone_preferences_get_type" glib:type-struct="PreferencesIface">
			<requires>
				<object name="GLib.Object"/>
			</requires>
			<annotation key="dbus.name" value="org.freesmartphone.Preferences"/>
			<method name="get_services" c:identifier="free_smartphone_preferences_get_services" throws="1">
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</method>
			<virtual-method name="get_services" invoker="get_services" throws="1">
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</virtual-method>
			<method name="get_service" c:identifier="free_smartphone_preferences_get_service" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="DBus.ObjectPath" c:type="char*"/>
				</return-value>
			</method>
			<virtual-method name="get_service" invoker="get_service" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="DBus.ObjectPath" c:type="char*"/>
				</return-value>
			</virtual-method>
			<method name="get_profiles" c:identifier="free_smartphone_preferences_get_profiles" throws="1">
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</method>
			<virtual-method name="get_profiles" invoker="get_profiles" throws="1">
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</virtual-method>
			<method name="get_profile" c:identifier="free_smartphone_preferences_get_profile" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</method>
			<virtual-method name="get_profile" invoker="get_profile" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</virtual-method>
			<method name="set_profile" c:identifier="free_smartphone_preferences_set_profile" throws="1">
				<parameters>
					<parameter name="profile" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="set_profile" invoker="set_profile" throws="1">
				<parameters>
					<parameter name="profile" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
		</interface>
		<record name="PreferencesIface" c:type="FreeSmartphonePreferencesIface" glib:is-gtype-struct-for="Preferences">
			<callback name="get_services" c:type="free_smartphone_preferences_get_services" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Preferences" c:type="FreeSmartphonePreferences*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</callback>
			<callback name="get_service" c:type="free_smartphone_preferences_get_service" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Preferences" c:type="FreeSmartphonePreferences*"/>
					</parameter>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="DBus.ObjectPath" c:type="char*"/>
				</return-value>
			</callback>
			<callback name="get_profiles" c:type="free_smartphone_preferences_get_profiles" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Preferences" c:type="FreeSmartphonePreferences*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</callback>
			<callback name="get_profile" c:type="free_smartphone_preferences_get_profile" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Preferences" c:type="FreeSmartphonePreferences*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</callback>
			<callback name="set_profile" c:type="free_smartphone_preferences_set_profile" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Preferences" c:type="FreeSmartphonePreferences*"/>
					</parameter>
					<parameter name="profile" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
		</record>
		<interface name="Usage" c:type="FreeSmartphoneUsage" glib:type-name="FreeSmartphoneUsage" glib:get-type="free_smartphone_usage_get_type" glib:type-struct="UsageIface">
			<requires>
				<object name="GLib.Object"/>
			</requires>
			<annotation key="dbus.name" value="org.freesmartphone.Usage"/>
			<method name="list_resources" c:identifier="free_smartphone_usage_list_resources" throws="1">
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</method>
			<virtual-method name="list_resources" invoker="list_resources" throws="1">
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</virtual-method>
			<method name="get_resource_policy" c:identifier="free_smartphone_usage_get_resource_policy" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</method>
			<virtual-method name="get_resource_policy" invoker="get_resource_policy" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</virtual-method>
			<method name="set_resource_policy" c:identifier="free_smartphone_usage_set_resource_policy" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="policy" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="set_resource_policy" invoker="set_resource_policy" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="policy" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<method name="get_resource_state" c:identifier="free_smartphone_usage_get_resource_state" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="boolean" c:type="gboolean"/>
				</return-value>
			</method>
			<virtual-method name="get_resource_state" invoker="get_resource_state" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="boolean" c:type="gboolean"/>
				</return-value>
			</virtual-method>
			<method name="get_resource_users" c:identifier="free_smartphone_usage_get_resource_users" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</method>
			<virtual-method name="get_resource_users" invoker="get_resource_users" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</virtual-method>
			<method name="request_resource" c:identifier="free_smartphone_usage_request_resource" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="request_resource" invoker="request_resource" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<method name="release_resource" c:identifier="free_smartphone_usage_release_resource" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="release_resource" invoker="release_resource" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<method name="suspend" c:identifier="free_smartphone_usage_suspend" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="suspend" invoker="suspend" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<method name="shutdown" c:identifier="free_smartphone_usage_shutdown" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="shutdown" invoker="shutdown" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<method name="reboot" c:identifier="free_smartphone_usage_reboot" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="reboot" invoker="reboot" throws="1">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<glib:signal name="resource_available">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="availability" transfer-ownership="none">
						<type name="boolean" c:type="gboolean"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</glib:signal>
			<glib:signal name="resource_changed">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="state" transfer-ownership="none">
						<type name="boolean" c:type="gboolean"/>
					</parameter>
					<parameter name="attributes" transfer-ownership="none">
						<type name="GLib.HashTable" c:type="GHashTable*">
							<type name="utf8" c:type="char*"/>
							<type name="GLib.Value" c:type="GValue*"/>
						</type>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</glib:signal>
			<glib:signal name="system_action">
				<parameters>
					<parameter name="action" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</glib:signal>
		</interface>
		<record name="UsageIface" c:type="FreeSmartphoneUsageIface" glib:is-gtype-struct-for="Usage">
			<callback name="list_resources" c:type="free_smartphone_usage_list_resources" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Usage" c:type="FreeSmartphoneUsage*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</callback>
			<callback name="get_resource_policy" c:type="free_smartphone_usage_get_resource_policy" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Usage" c:type="FreeSmartphoneUsage*"/>
					</parameter>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</callback>
			<callback name="set_resource_policy" c:type="free_smartphone_usage_set_resource_policy" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Usage" c:type="FreeSmartphoneUsage*"/>
					</parameter>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="policy" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
			<callback name="get_resource_state" c:type="free_smartphone_usage_get_resource_state" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Usage" c:type="FreeSmartphoneUsage*"/>
					</parameter>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="boolean" c:type="gboolean"/>
				</return-value>
			</callback>
			<callback name="get_resource_users" c:type="free_smartphone_usage_get_resource_users" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Usage" c:type="FreeSmartphoneUsage*"/>
					</parameter>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</callback>
			<callback name="request_resource" c:type="free_smartphone_usage_request_resource" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Usage" c:type="FreeSmartphoneUsage*"/>
					</parameter>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
			<callback name="release_resource" c:type="free_smartphone_usage_release_resource" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Usage" c:type="FreeSmartphoneUsage*"/>
					</parameter>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
			<callback name="suspend" c:type="free_smartphone_usage_suspend" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Usage" c:type="FreeSmartphoneUsage*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
			<callback name="shutdown" c:type="free_smartphone_usage_shutdown" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Usage" c:type="FreeSmartphoneUsage*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
			<callback name="reboot" c:type="free_smartphone_usage_reboot" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Usage" c:type="FreeSmartphoneUsage*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
		</record>
		<interface name="Network" c:type="FreeSmartphoneNetwork" glib:type-name="FreeSmartphoneNetwork" glib:get-type="free_smartphone_network_get_type" glib:type-struct="NetworkIface">
			<requires>
				<object name="GLib.Object"/>
			</requires>
			<annotation key="dbus.name" value="org.freesmartphone.Network"/>
			<method name="start_connection_sharing_with_interface" c:identifier="free_smartphone_network_start_connection_sharing_with_interface" throws="1">
				<parameters>
					<parameter name="interface" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="start_connection_sharing_with_interface" invoker="start_connection_sharing_with_interface" throws="1">
				<parameters>
					<parameter name="interface" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
		</interface>
		<record name="NetworkIface" c:type="FreeSmartphoneNetworkIface" glib:is-gtype-struct-for="Network">
			<callback name="start_connection_sharing_with_interface" c:type="free_smartphone_network_start_connection_sharing_with_interface" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Network" c:type="FreeSmartphoneNetwork*"/>
					</parameter>
					<parameter name="interface" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
		</record>
		<interface name="Events" c:type="FreeSmartphoneEvents" glib:type-name="FreeSmartphoneEvents" glib:get-type="free_smartphone_events_get_type" glib:type-struct="EventsIface">
			<requires>
				<object name="GLib.Object"/>
			</requires>
			<annotation key="dbus.name" value="org.freesmartphone.Events"/>
			<method name="add_rule" c:identifier="free_smartphone_events_add_rule" throws="1">
				<parameters>
					<parameter name="rule" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="add_rule" invoker="add_rule" throws="1">
				<parameters>
					<parameter name="rule" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<method name="remove_rule" c:identifier="free_smartphone_events_remove_rule" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="remove_rule" invoker="remove_rule" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<method name="trigger_test" c:identifier="free_smartphone_events_trigger_test" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="boolean" c:type="gboolean"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="trigger_test" invoker="trigger_test" throws="1">
				<parameters>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="boolean" c:type="gboolean"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
		</interface>
		<record name="EventsIface" c:type="FreeSmartphoneEventsIface" glib:is-gtype-struct-for="Events">
			<callback name="add_rule" c:type="free_smartphone_events_add_rule" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Events" c:type="FreeSmartphoneEvents*"/>
					</parameter>
					<parameter name="rule" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
			<callback name="remove_rule" c:type="free_smartphone_events_remove_rule" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Events" c:type="FreeSmartphoneEvents*"/>
					</parameter>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
			<callback name="trigger_test" c:type="free_smartphone_events_trigger_test" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.Events" c:type="FreeSmartphoneEvents*"/>
					</parameter>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="boolean" c:type="gboolean"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
		</record>
		<interface name="PreferencesService" c:type="FreeSmartphonePreferencesService" glib:type-name="FreeSmartphonePreferencesService" glib:get-type="free_smartphone_preferences_service_get_type" glib:type-struct="PreferencesServiceIface">
			<requires>
				<object name="GLib.Object"/>
			</requires>
			<annotation key="dbus.name" value="org.freesmartphone.Preferences.Service"/>
			<method name="get_keys" c:identifier="free_smartphone_preferences_service_get_keys" throws="1">
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</method>
			<virtual-method name="get_keys" invoker="get_keys" throws="1">
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</virtual-method>
			<method name="get_value" c:identifier="free_smartphone_preferences_service_get_value" throws="1">
				<parameters>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="GLib.Value" c:type="GValue"/>
				</return-value>
			</method>
			<virtual-method name="get_value" invoker="get_value" throws="1">
				<parameters>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="GLib.Value" c:type="GValue"/>
				</return-value>
			</virtual-method>
			<method name="set_value" c:identifier="free_smartphone_preferences_service_set_value" throws="1">
				<parameters>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="GLib.Value" c:type="GValue"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</method>
			<virtual-method name="set_value" invoker="set_value" throws="1">
				<parameters>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="GLib.Value" c:type="GValue"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</virtual-method>
			<method name="is_profilable" c:identifier="free_smartphone_preferences_service_is_profilable" throws="1">
				<parameters>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="boolean" c:type="gboolean"/>
				</return-value>
			</method>
			<virtual-method name="is_profilable" invoker="is_profilable" throws="1">
				<parameters>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="boolean" c:type="gboolean"/>
				</return-value>
			</virtual-method>
			<method name="get_type_" c:identifier="free_smartphone_preferences_service_get_type_" throws="1">
				<parameters>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</method>
			<virtual-method name="get_type_" invoker="get_type_" throws="1">
				<parameters>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</virtual-method>
			<glib:signal name="notify">
				<parameters>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="GLib.Value" c:type="GValue"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</glib:signal>
		</interface>
		<record name="PreferencesServiceIface" c:type="FreeSmartphonePreferencesServiceIface" glib:is-gtype-struct-for="PreferencesService">
			<callback name="get_keys" c:type="free_smartphone_preferences_service_get_keys" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.PreferencesService" c:type="FreeSmartphonePreferencesService*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<array>
						<type name="utf8" c:type="char*"/>
					</array>
				</return-value>
			</callback>
			<callback name="get_value" c:type="free_smartphone_preferences_service_get_value" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.PreferencesService" c:type="FreeSmartphonePreferencesService*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="GLib.Value" c:type="GValue"/>
				</return-value>
			</callback>
			<callback name="set_value" c:type="free_smartphone_preferences_service_set_value" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.PreferencesService" c:type="FreeSmartphonePreferencesService*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="GLib.Value" c:type="GValue"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
			</callback>
			<callback name="is_profilable" c:type="free_smartphone_preferences_service_is_profilable" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.PreferencesService" c:type="FreeSmartphonePreferencesService*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="boolean" c:type="gboolean"/>
				</return-value>
			</callback>
			<callback name="get_type_" c:type="free_smartphone_preferences_service_get_type_" throws="1">
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="FreeSmartphone.PreferencesService" c:type="FreeSmartphonePreferencesService*"/>
					</parameter>
					<parameter name="key" transfer-ownership="none">
						<type name="utf8" c:type="const char*"/>
					</parameter>
				</parameters>
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="char*"/>
				</return-value>
			</callback>
		</record>
	</namespace>
</repository>
